Xml 可以在XSD中重命名基类型吗

Xml 可以在XSD中重命名基类型吗,xml,xsd,Xml,Xsd,我正在开发一些xsd,它包含许多标识符,用于按ID共享主数据。 我不想仅仅将它们识别为positiveInteger,也不想创建额外的间接层次,而是定义我自己的类型,在这里我只是简单地重命名positiveInteger 我的问题是,以下是合法的吗 <xs:complexType name="masterDataKey"> <xs:simpleContent> <xs:extension base="xs:positiveInteger" /&g

我正在开发一些xsd,它包含许多标识符,用于按ID共享主数据。 我不想仅仅将它们识别为positiveInteger,也不想创建额外的间接层次,而是定义我自己的类型,在这里我只是简单地重命名positiveInteger

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

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

如果没有,我还有什么选择

干杯,
Daryl

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

最好定义一个简单的限制:

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


但即使这样,您也需要知道,您的类型不是xs:positiveInteger的简单别名;例如,从positiveInteger派生的类型不能替代masterDataKey。

嗨,Michael,非常感谢您的建议。