0

我的 xsd 中有以下两个元素。两者都通过扩展相关。我只是想知道在 ChildType 中使用它时是否可以从 ParentType 中删除/排除一个或多个元素。这意味着尽管 ChildType 扩展了 ParentType,但它不包括 ParentType 中的所有元素,我可以从 ChildType 中删除元素名称="p3" type="boolean" 吗?

<complexType name="ChildType">
    <complexContent>
        <extension base="tns:ParentType">
            <sequence>
                <element name="a" type="boolean"/>
                <element name="b" type="string"/>
            </sequence>
        </extension>
    </complexContent>
</complexType>


<complexType name="ParentType" abstract="true">
    <sequence>
        <element name="p1" type="integer"/>
        <element name="p2" type="string"/>
        <element name="p3" type="boolean"/>         
    </sequence>
</complexType>

提前致谢 !

4

1 回答 1

1

不; 如果要删除一些元素并添加其他元素,则需要两个派生步骤:一个通过删除一些可选元素来限制类型,另一个通过在末尾添加其他元素来扩展它。

然而,在这种情况下,ParentType 的所有元素都不是可选的,因此没有任何限制是合法的。[好吧,更正:唯一可能的限制是为元素 p1、p2 或 p3 分配较小类型的限制;任何涉及删除这些元素的限制都是合法的。]

于 2013-06-20T14:42:16.800 回答