18

JAXBxjcのドキュメントには次のように書かれています。

-b処理する1つ以上の外部バインディングファイルを指定します。(各バインディングファイルには、独自の「-b」スイッチが必要です。)外部バインディングファイルの構文は非常に柔軟です。複数のスキーマのカスタマイズを含む単一のバインディングファイルがある場合もあれば、カスタマイズを複数のバインディングファイルに分割する場合もあります。

   xjc schema1.xsd schema2.xsd schema3.xsd -b bindings123.xjb

   xjc schema1.xsd schema2.xsd schema3.xsd 
         -b bindings1.xjb -b bindings2.xjb -b bindings3.xjb 

さらに、コマンドラインでのスキーマファイルとバインディングファイルの順序は重要ではありません。

しかし、この「外部バインディングファイル」のドキュメントはどこにありますか?

4

1 に答える 1

9

外部バインディング ファイルは、oracle.com のJAXB バインディングのカスタマイズページに記載されています。

見積もり:

外部バインディング カスタマイズ ファイル

バインディング宣言を含む外部ファイルを使用して行われる JAXB バインディングのカスタマイズは、以下に示す一般的な形式をとります。

<jxb:bindings schemaLocation = "xs:anyURI">
   <jxb:bindings node = "xs:string">*
      <binding declaration>
   <jxb:bindings>
</jxb:bindings> 

schemaLocation は、リモート スキーマ ノードへの URI 参照です。指定されたバインディング宣言が関連付けられている schemaLocation 内のスキーマ ノードを識別する XPath 1.0 式です。たとえば、JAXB バインディング宣言ファイルの最初の schemaLocation/node 宣言は、スキーマ名とルート スキーマ ノードを指定します。

<jxb:bindings schemaLocation="po.xsd" node="/xs:schema"> 

上記のスキーマの ZipCodeType という名前の simpleType 要素など、後続の schemaLocation/node 宣言は、次の形式を取ります。

<jxb:bindings node="//xs:simpleType[@name='ZipCodeType']"> 

も参照してください。JAXBコンパイラ オプション


外部バインディング ファイルに関する情報を得るには、もう 1 つの優れたリソースとしてoreillyがあります。oreillyのバインディング ファイルの例は次のとおりです。

見積もり:

リスト 11. 外部バインディング ファイルの使用

<jxb:bindings version="1.0" 
  xmlns:jxb="http://java.sun.com/xml/ns/jaxb" 
  xmlns:xs="http://www.w3.org/2001/XMLSchema" 
  xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" 
  jxb:extensionBindingPrefixes="xjc">
    <jxb:bindings schemaLocation="po4.xsd" node="/xs:schema">
        <jxb:globalBindings>
            <xjc:superClass name="com.syh.Shape"/>
            <xjc:serializable uid="12343"/>
        </jxb:globalBindings>
        <jxb:bindings node="//xs:element[@name='Widgets']//xs:complexType//xs:choice">
            <jxb:property name="Shapes"/>
        </jxb:bindings>
    </jxb:bindings>
</jxb:bindings>
于 2016-03-25T21:39:03.220 に答える