在JAXB将xml文件解组以请求对象并将其发送给servis时,我遇到了一些问题。
它返回错误而不是正确的响应-未知用户
。
我正在使用下一个模式:
带有测试日期的xml文件=
以下是源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>
我使用JAXB解析并转换到我的RQ对象。
它返回奇怪的错误而不是响应。
我只是将未解析的请求写入xml文件:
<?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>
它有很多讨厌的ns1:nameprefix。
我想知道如何在没有冗余前缀的情况下解组?
您可以使用以下包级别@XmlSchema
注释正确映射XML文档中的命名空间限定。包级别注释放在一个名为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;
以下是我博客上的帖子链接,您可能会发现有用:
我的代码如下: 我怎样才能让它工作?如果我的xml标记有一些相关元素,如上面的“xmlns”,则JAXB解组器会抛出异常。 这是我第一次这么做,所以我对JAXB、解编等都一无所知。我在苦苦挣扎任何帮助都是好的。 编辑StackTrace:
我有下面的,我试图使用JAXB将其转换为Java对象。我在这里得到空值,请指导我这里缺少什么或做错了什么。 我不熟悉 JAXB 和命名空间
首先,我使用Camel 2.15版(在Fuse 6.2.1中)创建了一些路由。 在我的过程中,我试图从使用cxf xjc maven插件生成的pojo中创建一个XML(cxf xjc从xsd的某个地方读取了一些xsd,然后生成了带有jaxb注释的pojo)。 pojos是TempProject和TempProjects。 我可以使用以下代码生成xml: 我打电话 在我实现从pojo到xml的编组的
我有一个为安全令牌构建的XML。这些包含基于WS-Trust的名称空间,但是当我解组这个XML以创建< code > RequestSecurityTokenResponseCollection 对象时,它用< code>ns1 、< code>ns2 、< code>ns3等名称空间替换了这些名称空间。 是否有一种方法可以在不更改输入XML中的名称空间和名称空间前缀的情况下解组XML? 这是我一
我正在尝试使用JAXB解组一个xml文件。当我使用具有正确名称和命名空间的@XmlElement时,解组工作(例如@XmlElement(name=“name”,namespace=”http://www.test.com")) xml文件(test.xml)的内容: JAXBExample.java的内容是: 内容 包装stackoverflow.problem.jaxb.ns; 如果我取消注释
供应商提供的XML如下: 请注意,没有声明,供应商也没有提供模式。这不能更改,供应商将来会继续这样发布XML。 为了生成JAXB绑定,我创建了如下模式: 请注意,我已经声明了一个或多或少有意义的命名空间(“http://acme.com/schema”),以便它可以用于元素引用等。XJC 生成以下: 然后,我尝试解组XML文档: 我得到的例外是: 显然,这是因为XML元素属于一个空的名称空间,而J