我有以下架构:

<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


因此,有一个不必要的类(InvoiceLinesType),我更喜欢以下内容


发票-包含InvoiceLineType的集合
InvoiceLineType


有谁知道如何告诉编译器不要生成此程序包(InvoiceLinesType)。

我当前的外部绑定文件在那里

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


谢谢您的回复。

最佳答案

您将必须修改架构-删除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>

08-06 05:27