0

所以,我正在尝试创建一个模式,其中我使用一个模式作为参考并且从不触摸以及另一个模式,我可以触摸、扩展、限制等。所以我现在遇到的问题是我面临一个约束rcase-NameAndTypeOK3.2.5。

<!--Msg -->
<xs:complexType name="Main">
    <xs:complexContent>
        <xs:restriction base="B">
            <xs:sequence>
                <xs:element name="B1" type="BType"/>
                <xs:element name="B2" type="BType"/>
                <xs:element name="B3" type="B3-Type"/>
            </xs:sequence>
        </xs:restriction>
    </xs:complexContent>
</xs:complexType>
<!-- Types -->
<xs:complexType name="B3-Type">
    <xs:complexContent>
        <xs:extension base="BType">
            <xs:sequence>
                <xs:element name="B-4"/>
            </xs:sequence>
        </xs:extension>
    </xs:complexContent>
</xs:complexType>

<!-- Source -->
<xs:complexType name="BType">
    <xs:sequence>
        <xs:element name="B-1"/>
        <xs:element name="B-2"/>
        <xs:element name="B-3"/>
    </xs:sequence>
</xs:complexType>
<xs:complexType name="B">
    <xs:sequence>
        <xs:element name="B1" type="BType"/>
        <xs:element name="B2" type="BType"/>
        <xs:element name="B3" type="BType"/>
    </xs:sequence>
</xs:complexType>

我有一个解决方法,那就是消除 Main 中的限制。在不取消 Main 限制的情况下是否有另一种解决方法?有什么我做错了吗?

4

1 回答 1

0

我没有看到另一种解决方法 - 问题是Main定义不是限制也不是扩展B- 因为它可以包含一个元素B3B但有一个额外的 sub-element B-4

If you want to have a fixed base schema and then a derived schema with some declaration equal to the base one and some other different probably you should use xsd:redefine

于 2012-04-14T17:19:23.870 回答