2013-04-17 90 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样式表中,针对基类型验证的元素将不匹配预期为派生类型实例的模板规则。