我有一個XSD文件,我已經定義了一個類似於這樣的枚舉限制的簡單類型。在正則表達式中使用枚舉限制類型
<xs:simpleType name="myEnumStrings">
<xs:restriction base="xs:string">
<xs:enumeration value="first"/>
<xs:enumeration value="second"/>
...
<xs:enumeration value="last"/>
</xs:restriction>
</xs:simpleType>
我有一個第二簡單類型,它的值取決於在複雜的方式myEnumStrings的可能值,我可以帶有圖案只描述。
<xs:simpleType name="patternRestrictedType">
<xs:restriction base="xs:string">
<xs:pattern value="..."/>
</xs:restriction>
</xs:simpleType>
目前我使用字符串
(first|second|...|last)
每當我想指的是myEnumStrings複製在正則表達式的信息。這雖然是一個麻煩製造者和錯誤的來源,因爲當我修改myEnumStrings類型時,我需要保持所有正則表達式都是最新的。
有沒有辦法在正則表達式中引用myEnumStrings的可能值來避免這種重複?如果這是不可能的,是否有辦法定義globaly字符串(第一|第二| ... |最後)在正則表達式中重用,以限制重複僅在兩個地方,並使正則表達式更具可讀性?
謝謝你的回答。我想要做的事情遠比制定限制某些枚舉值的模式複雜得多。我想要的是使用正則表達式,如「[0-9] +(myEnumStrings)( - (myEnumStrings))*」。它開始看起來不可能用XML Schema。 – user1441798
那,沒辦法! –
是的,這就是我所害怕的。謝謝你確認。 – user1441798