這就是我的xsd的樣子。空氣和汽車延伸段。XML自動生成問題
<xs:element name="PNR" type="PNR" />
<xs:element minOccurs="0" maxOccurs="1" name="Segments" >
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Segment" type="Segment"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="Air">
<xs:complexContent>
<xs:extension base="Segment">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="Departure" type="AirportInfo" />
<xs:element minOccurs="0" maxOccurs="1" name="Arrival" type="AirportInfo" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="Car">
<xs:complexContent>
<xs:extension base="Segment">
<xs:sequence>
<xs:element name="PickUp" type="AddressInfo" minOccurs="0" maxOccurs="1"/>
<xs:element name="DropOff" type="AddressInfo" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
我想要的輸出,看起來像這樣:
<Segments>
<Segment xsi:type="Air">
<Departure></Departure>
<Arrival></Arrival>
</Segment>
<Segment xsi:type="Car">
<PickUp></PickUp>
<DropOff></DropOff>
</Segment>
</Segments>
但是,當我使用的工具,例如XMLSpy的或.NET庫(或其他)自動生成從我的XSD XML,我得到這個(空氣產生多次W/O車)。
<Segments>
<Segment xsi:type="Air">
<Departure></Departure>
<Arrival></Arrival>
</Segment>
<Segment xsi:type="Air">
<Departure></Departure>
<Arrival></Arrival>
</Segment>
</Segments>
我的XSD有問題嗎?
它爲什麼會生成你想要的XML?它根據您的模式生成有效的XML。您的架構不會阻止兩個「Air」元素。 – 2012-01-10 20:52:57
我不介意它是否會產生兩個「空氣」......我需要它來產生「汽車」......我該怎麼做? – Laguna 2012-01-10 20:56:42
你爲什麼要做自動生成?目的是什麼?自動生成僅用於生成示例文檔。 – 2012-01-10 20:57:50