我想合并到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>
谢谢,如果有人可以提供帮助。
答案 0 :(得分:1)
其中一个模式强制执行序列1,2,3,4,另一个模式强制执行序列2,1,3,4,3。你是说合并架构应该允许这两个序列中的任何一个?在这种特殊情况下,您可以在两个序列之间定义一个选择。但在一般情况下,选择将是模糊的,因此组合模式将无效。解决这个问题需要一些严肃的计算机科学。