0
我有使用cxf和jaxb綁定實現的jax-ws服務。它從另一個下游服務接收xml,將此xml解組到一個POJO並將其保存到持久性緩存存儲。未來的請求由這個持久存儲提供。有時從下游服務接收到的xml包含xmlns =「」。該服務能夠從持久緩存存儲中解組xml,但是當它將響應編組回來時,xml格式不正確。 這是xml,即從下游服務接收的。注意帶有xmlns =「」的PolicyID元素。當數據包含xmlns時,Jaxb輸出無效的Xml =「」
<message:RetrieveOrderResponse
xmlns:common="urn:xyz:om:common:defn:v1" xmlns:message="urn:xyz:om:order:messages:v1"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<common:MessageInfo CreateDateTime="2015-04-17T13:13:36.819-07:00"
MessageGUID="d8ad2956-ff69-45ff-9d57-c30dc50569a1" TransactionGUID="a772169a-b138-40e7-8d16-ca86b68d38b8">
<common:DebugTraceBoolean>true</common:DebugTraceBoolean>
</common:MessageInfo>
<common:MessageStatus>
<common:Status>Success</common:Status>
</common:MessageStatus>
<common:OrderList>
<common:Order>
<common:OrderLineList>
<common:OrderLine>
<common:OrderLineData namespace="urn:xyz:e3:data:abc:types:v1"
type="xyzProduct">
<ns2:xyzProduct xmlns:datatype="urn:xyz:om:supply:datatype:defn:v1"
xmlns:finance="urn:xyz:e3:data:financetypes:defn:v4"
xmlns:internal="urn:xyz:cc:es:order:internal" xmlns:min="xalan://org.jaxen.function.MinDateTimeFunction"
xmlns:ns2="urn:xyz:e3:data:abc:types:v1" xmlns:ns3="urn:xyz:e3:data:basetypes:defn:v4"
xmlns:ns4="urn:xyz:e3:data:financetypes:defn:v4" xmlns:ns5="urn:xyz:e3:data:timetypes:defn:v4"
xmlns:ns6="urn:xyz:e3:data:messagetypes:defn:v5" xmlns:ns7="urn:xyz:e3:data:placetypes:defn:v4"
xmlns:ns8="urn:xyz:om:supply:messages:defn:v1">
<PolicyID xmlns="" />
<ns2:abcProduct>
<ns2:DiningSeatingInformation>
<BookingStatusCode xsi:nil="true" />
<DinSeatingCode xsi:nil="true" />
</ns2:DiningSeatingInformation>
</ns2:abcProduct>
</ns2:xyzProduct>
</common:OrderLineData>
</common:OrderLine>
</common:OrderLineList>
</common:Order>
</common:OrderList>
此XML進行以下步驟。
- 解組到一個POJO
- 編組的POJO回XML
- 解組來自步驟2回POJO 的XML
編組從步驟3 POJO爲xml 從步驟生成的XML 4沒有很好地形成。在下面的示例中,OrderLineData的開始標記綁定到有效的命名空間前綴,但結束標記未綁定。如果我從xml中刪除xmlns =「」,那麼step4會輸出格式良好的xml。這是嚴重形成的XML。
真正 成功
任何提示如何處理這種XML?
出於某種原因,我無法得到不好的XML在我的問題中出現。上傳到s3。希望每個人都能看到它。 https://s3.amazonaws.com/uploads.hipchat.com/28219/710237/b5vCWEeGmEYIOBF/xmlfile2.out.xml –