簡體   English   中英

JAXB:如何指定由另一個XSD生成complexType的綁定規則?

[英]JAXB: how to specify that a binding rule that a complexType is generated by a different XSD?

我有幾個全面的XSD,其中包括針對同一成員的相同complexType定義。 每個XSD都有自己的名稱空間。 因此,當我在xsds上運行xjc時,我會在每個命名空間中生成相同的complexType類。

最終導致處理起來極為混亂和復雜。 我想創建一個綁定,該綁定告訴XJC不要為其中一個XSD生成complexType,而是使用另一個xsd已經生成的類。

我已經嘗試了以下方法,但均未成功:

   <jaxb:bindings schemaLocation="../xsd/sandboxlist.xsd">
        <jaxb:bindings node="/xsd:schema">
            <jaxb:schemaBindings>
                <jaxb:package name="com.domain.schema.model.v4_0.sandboxlist"/>
            </jaxb:schemaBindings>
        </jaxb:bindings>
        <jaxb:bindings node="//xsd:complexType[@name='SandboxType']">
            <jaxb:class name="com.domain.schema.model.v4_0.sandboxinfo.SandboxType" />
        </jaxb:bindings>
    </jaxb:bindings>

我想告訴XJC, SandboxType中的SandboxType實際上應該是com.domain.schema.model.v4_0.sandboxinfo.SandboxType類(來自不同的XSD)。

正確的語法是什么?

您可以通過jaxb:class/@ref

<jaxb:class ref="com.domain.schema.model.v4_0.sandboxinfo.SandboxType" />

但是,最好使用情節 使用-episode CLI參數生成,然后將JAR添加到xjc命令行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM