2012-01-24 16 views
3

から生成されたクラスをスキップ:JAXBバインディングをカスタマイズする - 私は、次のスキーマを持つスキーマ

<xs:element name="Invoice"> 
    <xs:complexType> 
     <xs:sequence> 
     ..... 
     <xs:element name="InvoiceLines" type="InvoiceLinesType"> 
     </xs:element> 
     ..... 
    </xs:complexType> 
</xs:element> 

<xs:complexType name="InvoiceLinesType"> 
    <xs:sequence> 
    <xs:element maxOccurs="unbounded" name="InvoiceLine" type="InvoiceLineType"> 
    </xs:element> 
    </xs:sequence> 
</xs:complexType> 

<xs:complexType name="InvoiceLineType">  
<xs:sequence> 
    ..... 
</xs:sequence> 
</xs:complexType> 

問題は、それがクラスを生成することを、次のとおりです。

  • 請求書 - InvoiceLinesType
  • のメンバーが含まれていますInvoiceLinesType - InvoiceLineTypeのコレクションを含む
  • InvoiceLineType

だから1つの不要なクラス(InvoiceLinesType)があると私は、次の

  • 請求書好む - InvoiceLineTypeのコレクション
  • InvoiceLineTypeを含ま

誰もがコンパイラに伝える方法を知っていますこのパッケージ(InvoiceLinesType)を生成しません。

私の現在の外部結合ファイルさが

<jxb:bindings schemaLocation="invoice.xsd" node="/xs:schema"> 
    <jxb:globalBindings> 
     .....    
     <xjc:simple/> 
     ..... 
    </jxb:globalBindings> 
</jxb:bindings> 

は、応答していただきありがとうございます。

答えて

0

あなたのスキーマを変更する必要があります - InvoiceLinesTypeをドロップし、InvoiceLineTypeをInvoiceの無制限要素にしてください。

<xs:element name="Invoice"> 
    <xs:complexType> 
     <xs:sequence> 
     ..... 
     <xs:element maxOccurs="unbounded" name="InvoiceLine" type="InvoiceLineType"> 
     </xs:element> 
     ..... 
    </xs:complexType> 
</xs:element> 

<xs:complexType name="InvoiceLineType">  
<xs:sequence> 
    ..... 
</xs:sequence> 
</xs:complexType> 
+0

スキームを示します。私はそれを変更する権利がありません。 Webサービス内で使用されます。 – Achiles

+0

それでは、XJCでできることはあまりありません。なぜその余分なクラスがそんなにあなたを悩ませているのですか? – maximdim

関連する問題