我正在尋找描述一類實例的XSD。我將用一個實例來解釋我想要完成的事情。我想有一個XSD類型(姑且稱之爲FormBaseType)描述這種情況:XSD繼承和xhtml表格
<form method="post" action="someaction" name="acme">
<input name="EXACTLY FOO" value="EXACT ENUMERATION" type="CONST STRING" />
<input name="SOME RANDOM STRING" value="SOME RANDOM STRING" type="CONST STRING" />
<input name="SOME RANDOM STRING" value="SOME RANDOM STRING" type="CONST STRING" />
... (input element repeats up to 30 times) ...
</form>
比我想的一個OneKindOfMyFormType繼承和限制FormBaseType,使其只這樣的情況下匹配:
<form method="post" action="someaction" name="acme">
<input name="EXACTLY FOO" value="EXACT ENUMERATION" type="CONST STRING" />
<input name="EXACTLY BAR" value="SOME RANDOM STRING RESTRICTION" type="CONST STRING" />
<input name="EXACTLY BAZ" value="SOME OTHER RANDOM STRING RESTRICTION" type="CONST STRING" />
... (input element repeats up to 30 times) ...
</form>
當我嘗試定義以不同方式限制的多個輸入元素時,我遇到了問題。我能有這樣的相同類型的多個輸入元素:
<xs:complexType name="FormBaseType">
<xs:sequence>
<xs:element name="input" type="ns0:InputType" minOccurs="1" maxOccurs="33"/>
</xs:sequence>
</xs:complexType>
但當我嘗試這個辦法:
<xs:complexType name="RequestType">
<xs:complexContent>
<xs:restriction base="RequestTypeBase">
<xs:sequence>
<xs:element name="input" type ="ns0:AlphaNumericInputType" minOccurs="1" maxOccurs="1" />
<xs:element name="input" type ="ns0:NumericInputType" minOccurs="1" maxOccurs="1" />
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
存在一個問題,即同名的元素(「輸入」),並在相同的範圍必須具有相同的類型。 (AlphaNumericInputType和NumericInputType是InputType的限制,但除了可能闡明我的意圖之外,它對這個例子無關緊要)。
長話短說我想有多種形式,其中一些輸入的元素是在整個各種形式(基本)相同的XSD描述,並且還派生XSD類型輸入元素具有類型的基本屬性加上確切的名稱屬性值並且對於該確切名稱a 值屬性類型限制。
這可能嗎?怎麼樣?
TIA