我正在开发一些xsd,它包含许多按ID共享主数据的标识符。 我并不热衷于将这些标识为positiveInteger,也不是创建一个额外的间接级别,而是宁愿定义我自己的类型,我只需重命名positiveInteger
我的问题是,以下是合法的吗?
<xs:complexType name="masterDataKey">
<xs:simpleContent>
<xs:extension base="xs:positiveInteger" />
</xs:simpleContent>
</xs:complexType>
如果没有,那么我可以选择哪些选项。
干杯, 达里尔
答案 0 :(得分:1)
嗯,您的示例不是简单的重命名。您创建了一个complexType,而xs:positiveInteger是一个simpleType,因此您将无法将其用作属性的类型(必须简单)。
定义一个微不足道的限制可能更好:
<xs:simpleType name="masterDataKey">
<xs:restriction base="xs:positiveInteger" />
</xs:simpleType>
但即便如此,你需要知道你的类型不是xs的简单别名:positiveInteger;例如,从positiveInteger派生的类型不能替代masterDataKey。