0
有AppData元素包含一個抽象元素Document。XSD:如何用具體的抽象類型實現聲明元素?
<xs:element name="AppData">
<xs:complexType>
<xs:sequence>
<xs:element ref="tns:Document"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Document" type="tns:TDocument" abstract="true"/>
<xs:complexType name="TDocument">
<xs:sequence>
<xs:any namespace="##any" processContents="lax"/>
</xs:sequence>
</xs:complexType>
也有文獻的兩個不同的實例中的元素:
<xs:element name="Rq3" type="tns:Y" substitutionGroup="smev:Document"/>
<xs:element name="Rq4" type="tns:Z" substitutionGroup="smev:Document"/>
<xs:complexType name="Y">
<xs:complexContent>
<xs:restriction base="smev:TDocument">
<xs:sequence>
<xs:element ref="rq3:Doc"/>
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="Z">
<xs:complexContent>
<xs:restriction base="smev:TDocument">
<xs:sequence>
<xs:element ref="rq4:Doc"/>
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
而挑戰是定義應用程序數據元素相應於文獻(RQ3)的具體實例的類型:
架構屏幕截圖:http://i54.tinypic.com/ab74ls.png
如何爲以下xml(包含Rq3的AppData)定義類型:
<x:MessageData>
<x:AppData>
<rq3:Doc>...</rq3:Doc>
</x:AppData>
</x:MessageData>
請提出解決方案。
是的,你的理解是正確的。感謝您的幫助,我決定不使用替換,並將包含TAppDataBase definiton的模式包含到實現MessageData的許多類型的新模式中。 – il86