我正在开发一些 xsd,它包含许多标识符以通过 ID 共享主数据。
我并不热衷于将这些标识为 positiveInteger 也不想创建额外的间接级别,而是希望定义我自己的类型,我只需将这些类型重命名为 positiveInteger
我的问题是,以下合法吗?
<xs:complexType name="masterDataKey">
<xs:simpleContent>
<xs:extension base="xs:positiveInteger" />
</xs:simpleContent>
</xs:complexType>
如果没有,那么我可以选择哪些选项。
干杯,
达里尔
最佳答案
好吧,您的示例不是简单的重命名。您已经创建了一个 complexType,而 xs:positiveInteger 是一个 simpleType,因此您将无法将其用作例如属性的类型(它必须是简单的)。
定义一个简单的限制可能更好:
<xs:simpleType name="masterDataKey">
<xs:restriction base="xs:positiveInteger" />
</xs:simpleType>
但即便如此,您仍需要注意您的类型不是 xs:positiveInteger; 的简单别名;例如,从 positiveInteger 派生的类型将不能替代 masterDataKey。
关于xml - 是否可以在 XSD 中重命名基本类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19561059/