所以我目前工作的一個XSD文件包含一個簡單類型稱爲ipaddress
:如何爲xs:simpleType提供多個值?
<xs:simpleType name="ipaddress">
<xs:restriction base ="xs:string">
<xs:pattern value="((1?[0-9]?[0-9]|2[0-4][0-9]|25[0-5]).){3}(1?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])"/>
</xs:restriction>
</xs:simpleType>
這一個很適合我使用的所有IP地址。 但我想讓ipaddress接受ipaddress本身或字符串「localhost」。我怎麼做?我已經嘗試過這樣的事情
<xs:simpleType name="ipaddress">
<xs:restriction base ="xs:string">
<xs:choice minOccurs="1" maxOccurs="1">
<xs:pattern value="((1?[0-9]?[0-9]|2[0-4][0-9]|25[0-5]).){3}(1?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])"/>
<xs:enumeration value="localhost"/>
<xs:choice>
</xs:restriction>
</xs:simpleType>
或類似的
<xs:complexType name="ipaddress">
<xs:choice minOccurs="1" maxOccurs="1">
<xs:pattern value="((1?[0-9]?[0-9]|2[0-4][0-9]|25[0-5]).){3}(1?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])" type="xs:string"/>
<xs:enumeration value="localhost" type="xs:string"/>
<xs:choice>
</xs:complexType>
但驗證我的XML文件XSD架構時,這些解決方案的工作。我想通過使用xs:choice
,我不知道怎麼做 - 我剛開始學習XSD,我仍然對所有這些標籤和元素以及如何正確連接它們感到困惑。