0
我想創建一個XSD,其中一個項目需要指定至少一個標識符,或兩者都不是none。 這在第一時刻正常工作:XSD「一個或兩個」的選擇不適用於類型限制
<xs:choice>
<xs:sequence>
<xs:element name="OneIdType">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="AnotherIdType" type="xs:string" minOccurs="0"/>
</xs:sequence>
<xs:element name="AnotherIdType" type="xs:string"/>
但兩者IdTypes應該有(不同的)長度的限制。 所以,當我嘗試以下方法我的XSD無效:
<xs:choice>
<xs:sequence>
<xs:element name="OneIdType">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="AnotherIdType" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="20"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
<xs:element name="AnotherIdType">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="20"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
我得到的錯誤
元素 'AnotherIdType' 不符合元素「AnotherIdType的一致。
那麼在XSD中是否有可能實現限制類型的「one or both choice」?
感謝, 最大
是,並嘗試避免用'Type'後綴命名*元素*。 – kjhughes
謝謝,伊恩,工作。 「類型」僅僅是這裏的例子。在我真正的XSD中,他們有更好的名字。 – Max