我有以下架构:
<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>