Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用JAXB解组定制xml名称空间?_Java_Xml_Jaxb_Unmarshalling - Fatal编程技术网

Java 如何使用JAXB解组定制xml名称空间?

Java 如何使用JAXB解组定制xml名称空间?,java,xml,jaxb,unmarshalling,Java,Xml,Jaxb,Unmarshalling,我在JAXB将xml文件解组以请求对象并将其发送给servis时遇到了一些问题 它返回的不是正确的响应,而是错误-未知用户 我正在使用下一个模式: xml文件,测试日期=>解析到RQ对象=>发送到servis=>获取响应并检查它 以下是源xml文件: <OTA_AirLowFareSearchRQ EchoToken="50987" SequenceNmbr="1" Target="Production" TimeStamp="2003-11-19T19:44:10-05:00"

我在JAXB将xml文件解组以请求对象并将其发送给servis时遇到了一些问题

它返回的不是正确的响应,而是错误-
未知用户

我正在使用下一个模式:

xml文件,测试日期=>解析到RQ对象=>发送到servis=>获取响应并检查它

以下是源xml文件:

<OTA_AirLowFareSearchRQ EchoToken="50987" SequenceNmbr="1" Target="Production" TimeStamp="2003-11-19T19:44:10-05:00"
                        Version="2.001"
                        xsi:schemaLocation="http://www.opentravel.org/OTA/2003/05 OTA_AirLowFareSearchRQ.xsd"
                        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                        xmlns="http://www.opentravel.org/OTA/2003/05">

    <POS>
        <TPA_Extensions>
            <TPA_Extension>
                <PromoRatesRequired Value="false"/>
                <UserName Value="342561"/>
                <UserPassword Value="1234"/>
                <ClearCache Value="true"/>
            </TPA_Extension>
        </TPA_Extensions>
    </POS>

    <OriginDestinationInformation>
        <DepartureDateTime>2015-04-13T00:00:00</DepartureDateTime>
        <OriginLocation LocationCode="DUB"/>
        <DestinationLocation LocationCode="CDG"/>
    </OriginDestinationInformation>

    <TravelPreferences>
        <CabinPref PreferLevel="Preferred" Cabin="Economy"/>
    </TravelPreferences>

    <TravelerInfoSummary>
        <AirTravelerAvail>
            <PassengerTypeQuantity Code="ADT" Quantity="1"/>
            <PassengerTypeQuantity Code="CHD" Quantity="0"/>
            <PassengerTypeQuantity Code="INF" Quantity="1"/>
        </AirTravelerAvail>
    </TravelerInfoSummary>
</OTA_AirLowFareSearchRQ>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<ns1:OTA_AirLowFareSearchRQ xmlns:ns1="http://www.opentravel.org/OTA/2003/05" Version="2.001" EchoToken="50987"
                            SequenceNmbr="1" TimeStamp="2003-11-20T00:44:10.000Z" Target="Production"
                            DirectFlightsOnly="false">
    <ns1:POS>
        <ns1:TPA_Extensions>
            <ns1:TPA_Extension>
                <ns1:PromoRatesRequired Value="false"/>
                <ns1:UserName Value="342561"/>
                <ns1:UserPassword Value="1234"/>
                <ns1:ClearCache Value="true"/>
            </ns1:TPA_Extension>
        </ns1:TPA_Extensions>
    </ns1:POS>
    <ns1:OriginDestinationInformation>
        <ns1:DepartureDateTime>2015-04-13T00:00:00</ns1:DepartureDateTime>
        <ns1:OriginLocation LocationCode="DUB" CodeContext="IATA"/>
        <ns1:DestinationLocation LocationCode="CDG" CodeContext="IATA"/>
    </ns1:OriginDestinationInformation>
    <ns1:TravelPreferences OriginDestinationRPHs="" ETicketDesired="false" SmokingAllowed="false">
        <ns1:CabinPref PreferLevel="Preferred" Cabin="Economy"/>
    </ns1:TravelPreferences>
    <ns1:TravelerInfoSummary>
        <ns1:AirTravelerAvail>
            <ns1:AirTravelerAvail>
                <ns1:PassengerTypeQuantity Code="ADT" Quantity="1"/>
                <ns1:PassengerTypeQuantity Code="CHD" Quantity="0"/>
                <ns1:PassengerTypeQuantity Code="INF" Quantity="1"/>
            </ns1:AirTravelerAvail>
        </ns1:AirTravelerAvail>
    </ns1:TravelerInfoSummary>
    <ns1:dataStatus>SUCCESS_LOW_FARE_SEARCH_REQUEST</ns1:dataStatus>
</ns1:OTA_AirLowFareSearchRQ>
它有很多讨厌的名字前缀


我想知道如何在没有冗余前缀的情况下解组?您可以使用以下包级别的
@XmlSchema
注释在XML文档中正确映射命名空间限定。package级别的注释放在一个名为
package info
的特殊类中

package.info.java

下面是
包信息
类的完整源代码

@XmlSchema( 
    namespace = "http://www.opentravel.org/OTA/2003/05", 
    elementFormDefault = XmlNsForm.QUALIFIED) 
package example;

import javax.xml.bind.annotation.XmlNsForm;
import javax.xml.bind.annotation.XmlSchema;
有关JAXB和名称空间的更多信息 以下是我博客上的帖子链接,您可能会发现这些帖子很有用:


实际上,此软件包是由wsimport自动生成的。它的外观与您编写的
@javax.xml.bind.annotation.XmlSchema(名称空间=”http://www.opentravel.org/OTA/2003/05“,elementFormDefault=javax.xml.bind.annotation.XmlNsForm.QUALIFIED)包com.aerlingus.ta.models.b2b.faresearch
@nazar_art-您的XML是直接由JAXB构建的(如果是的话,您是如何构建
JAXBContext
),还是通过JAX-WS web服务间接由JAXB构建的?我使用
wsimport
从wsdl生成模型。它应该在内部使用JAXB。我试着根据这个模型从xml文件中解组这个文件。是否可以使用一些类并将它的名称空间重写为no-ns?Smt
@XmlSchema(namespace=”“)