2

我想将Name属性的类型从更改xs:stringxs: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 有效吗?如果没有,是否存在其他解决方案来更改属性类型?

4

1 回答 1

2

不,类型派生的原则是,如果从基类型派生新类型,则派生类型的实例仍然必须是基类型的有效实例。因此,您不能将属性从字符串更改为 int。

于 2013-02-26T14:38:18.217 回答