1

jaxb を使用して非整列化したい xml ファイルのペイロードがあり、非整列化用の pojo クラスを作成し、その pojo に xml 属性と要素を定義しましたが、名前空間、注釈の付け方について少し混乱しています彼ら?

私のxmlファイル:

<ns1:ContractLinkEvent xmlns:ns0="http://Enterprise.BizTalk.Canonical.Schemas/v2.0/ESB" xmlns:ns1="http://Enterprise.BizTalk.MCF.Core.Schemas/v2.0/ESB">

<Header xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

</Header>

<ContractLink xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<ContractLinkId>1509148</ContractLinkId>

<BillingProfile>

<BillingProfileId>173886</BillingProfileId>

<BillingProfileCode xsi:nil="true"/>

</BillingProfile>

</ContractLink>

</ns1:ContractLinkEvent>

私の Jaxb アノテーション付き Pojo は次のとおりです。

@XmlRootElement(name = "ContractLinkEvent", namespace="http://Enterprise.BizTalk.Canonical.Schemas/v2.0/ESB")
@XmlAccessorType(XmlAccessType.FIELD)
public class ContractLinkPojo { 

    @XmlElement(name="Header")
    private String Header;

    @XmlElement(name="ContractLink")
    private String ContractLink;

. . . に行く

アンマーシャリング中に次の例外が発生します。

java.io.IOException: javax.xml.bind.UnmarshalException
 - with linked exception:
[com.sun.istack.SAXParseException2; lineNumber: 1; columnNumber: 1; unexpected element (uri:"http://Enterprise.BizTalk.MCF.Core.Schemas/v2.0/ESB", local:"ContractLinkEvent"). Expected elements are (none)]

まだ混乱しているので名前空間をまだ定義していないため、名前空間を正しく定義したとは思いません。何かアイデアはありますか?

編集: これは、アンマーシャリングのための私のルーティングです

rest("/readXml")
    .consumes("application/xml")
    .post()
    .to("direct:xmlread");

    from("direct:xmlread").streamCaching()
    .doTry().unmarshal(xmlDataFormat)
    .process(readAndInsertXml)
    .to("mock:result").end();
}
4

1 に答える 1