我在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>
提前致谢!
答案 0 :(得分:1)
没有;如果要删除某些元素并添加其他元素,则需要两个派生步骤:一个通过删除一些可选元素来限制类型,另一个通过在末尾添加其他元素来扩展它。
但是,在这种情况下,ParentType的所有元素都不是可选的,因此没有任何限制是合法的。 [嗯,纠正:唯一可能的限制是将较小类型分配给元素p1,p2或p3的限制;没有涉及删除任何这些元素的限制将是合法的。]