2013-04-17 111 views
3

有沒有辦法在XSD中定義一個具有空限制的類型別名/ strong typedef/simpleType?XML架構類型別名?

<xsd:simpleType name="identifier"> 
    <xsd:restriction base="xsd:string"> 
    <xsd:pattern value="^[a-zA-Z_][a-zA-Z0-9_]*$" /> 
    </xsd:restriction> 
</xsd:simpleType> 

<xsd:simpleType name="type"> 
    <xsd:restriction base="identifier" /> 
</xsd:simpleType> 

我想以後應用上類型的屬性一些驗證邏輯「類型」比一個類型的屬性的更多具體的「識別符」。

+0

補充說明,在XSD使用的正則表達式中,模式在兩端隱式錨定,所以^和$是多餘的。 –

回答

4

是的,用空限制派生類似這樣的類型是非常合法的。但是,儘管這兩種類型具有相同的價值空間,但它們不是同義詞。派生類型可以替代基類型,但不能用其他方式。例如,在支持模式的XSLT樣式表中,針對基類型驗證的元素將不匹配預期爲派生類型實例的模板規則。