将2个xsd加入到一个中

时间:2011-06-09 13:20:49

标签: xml xsd schema

我想合并到xsd,因此如果存在一个或另一个捆绑,则可以进行验证。 不是某些元素是可选的,而是当一个元素或另一个元素时。两者都有相同的根元素。例如像这样

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"targetNamespace="http://www.example.org/test" xmlns:tns="http://www.example.org/test" elementFormDefault="qualified">

<element name="example">
    <complexType>
        <sequence>
            <element name="field1" type="string" />
            <element name="field2" type="string" />
            <element name="field3" type="string" />
            <element name="field4" type="string" />
        </sequence>
    </complexType>
</element>

也可以这样     

<element name="example">
    <complexType>
        <sequence>
            <element name="field2" type="string" />
            <element name="field1" type="string" />
            <element name="field5" type="string" />
            <element name="field4" type="string" />
            <element name="field3" type="string" />
        </sequence>
    </complexType>
</element>

谢谢,如果有人可以提供帮助。

1 个答案:

答案 0 :(得分:1)

其中一个模式强制执行序列1,2,3,4,另一个模式强制执行序列2,1,3,4,3。你是说合并架构应该允许这两个序列中的任何一个?在这种特殊情况下,您可以在两个序列之间定义一个选择。但在一般情况下,选择将是模糊的,因此组合模式将无效。解决这个问题需要一些严肃的计算机科学。