Xsd 扩展受限类型

Xsd 扩展受限类型,xsd,Xsd,您能否拥有一个allready受限类型,然后通过扩展从此类型派生并添加不适合基类型的元素 <xsd:complexType name="absHcontainerType"> <xsd:complexContent> <xsd:restriction base="e:urContentType"> <xsd:sequence> <xsd:element ref="

您能否拥有一个allready受限类型,然后通过扩展从此类型派生并添加不适合基类型的元素

<xsd:complexType name="absHcontainerType">
    <xsd:complexContent>
        <xsd:restriction base="e:urContentType">
            <xsd:sequence>
                <xsd:element ref="e:absMcontainer" minOccurs="0"
                    maxOccurs="1" />
                <xsd:element ref="e:absHtitle" minOccurs="1" maxOccurs="unbounded" />
                <xsd:choice minOccurs="1" maxOccurs="unbounded">
                    <xsd:element ref="e:absMcontainer" />
                    <xsd:element ref="e:absHcontainer" />
                    <xsd:element ref="e:absContainer" />
                </xsd:choice>
            </xsd:sequence>
            <xsd:attributeGroup ref="e:typehcontainer" />
            <xsd:attributeGroup ref="e:anyattr" />
        </xsd:restriction>
    </xsd:complexContent>
</xsd:complexType>

然后像这样导出:

<xsd:complexType name="absHcontainerType2">
  <xsd:complexContent>
        <xsd:extension base="absHcontainerType">
            <xs:sequence> 
               <xs:element name="xy" type="xs:string"/> 
               <xs:element name="xyz" type="xs:string"/> 
             </xs:sequence>
        </xs:extension>  
  </xsd:complexContent>
</xsd:complexType>


只要你不把那些受到限制的东西放回去,我就不认为会有问题。您在尝试时是否确实遇到了错误?

谢谢您的回答。我不明白的是:好的,您有absHcontainerType类型,它只允许absMcontainer、absHtitle、absHcontainer和absContainer元素。你怎么能用其他元素来扩展它?您可以添加一个新类型,该类型是从其基限制中的一个类型继承的。因此,我只能使用继承自的类型来扩展它:absMcontainer、absHtitle、absHcontainer和absContainer。没有别的。或者我的想法有什么问题?在这个例子中,我用string做了一个扩展。这未列在基本限制中。