3

我正在开发一些 xsd,它包含许多通过 ID 共享主数据的标识符。我不热衷于将这些标识为 positiveInteger,也不想创建额外的间接级别,而是定义我自己的类型,我只需重命名 positiveInteger

我的问题是,以下合法吗?

<xs:complexType name="masterDataKey">
    <xs:simpleContent>
      <xs:extension base="xs:positiveInteger" /> 
    </xs:simpleContent>
</xs:complexType>

如果没有,那么我有哪些选择。

干杯,达里尔

4

1 回答 1

2

好吧,您的示例不是简单的重命名。您已经创建了一个 complexType,而 xs:positiveInteger 是一个 simpleType,因此您将无法将它用作例如属性的类型(必须是简单的)。

定义一个简单的限制可能会更好:

<xs:simpleType name="masterDataKey">
    <xs:restriction base="xs:positiveInteger" /> 
</xs:simpleType>

但即便如此,您也需要注意您的类型不是 xs:positiveInteger; 的简单别名;例如,从 positiveInteger 派生的类型不能替代 masterDataKey。

于 2013-10-24T10:32:39.350 回答