2

以下のXSDのように、Name属性のタイプをからに変更したいxs:stringxs:int

<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

いいえ、型派生の原則は、基本型から新しい型を派生させる場合でも、派生型のインスタンスは基本型の有効なインスタンスでなければならないということです。したがって、属性をstringからintに変更することはできません。

于 2013-02-26T14:38:18.217 に答える