我想将Name
属性的类型从xs:string
更改为xs:int
,就像在下面的XSD中一样
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.my.own/2013/XMLSchema">
<xs:complexType name="AType">
<xs:attribute name="Name" type="xs:string" use="required" />
</xs:complexType>
<xs:complexType name="BType">
<xs:complexContent>
<xs:extension base="AType">
<xs:sequence>
<xs:choice>
<xs:element name="Content" type="xs:string"/>
</xs:choice>
</xs:sequence>
<xs:attribute name="Name" type="xs:int" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:schema>
此XSD有效吗?如果没有,是否存在其他改变属性类型的解决方案?
答案 0 :(得分:1)
不,类型派生的原则是,如果从基类型派生新类型,派生类型的实例仍必须是基类型的有效实例。因此,您无法将属性从字符串更改为int。