2013-06-20 77 views
0

我的xsd中有以下兩個元素。兩者都通過擴展相關。我只是想知道在ChildType中使用它時是否可能從ParentType中刪除/排除一個或多個元素。這意味着雖然ChildType擴展了ParentType,但它不包含ParentType的所有元素,我可以從ChildType中刪除元素name =「p3」type =「boolean」嗎?從xsd中的ChildType元素中排除parentType元素

<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

否;如果要刪除某些元素並添加其他元素,則需要兩個推導步驟:一個通過消除某些可選元素來限制該類型,另一個通過在最後添加其他元素來擴展它。

然而,在這種情況下,ParentType的元素都不是可選的,所以沒有任何限制是合法的。 [修正:唯一可能的限制是將較小類型分配給元素p1,p2或p3的限制;不涉及放棄任何這些元素的限制將是合法的。]