2011-06-09 77 views
0

我想合并到xsd,因此如果出现一个或另一个包,就可以进行验证。 当某些元素是可选元素时,而不是当一个元素是另一个元素时。两者都有相同的根元素。例如像这样将2个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

这些模式之一强加序列1,2,3,4,另一个强加序列2,1,3,4,3。你是说合并的模式应该允许这两个序列中的任何一个?在这种特殊情况下,您可以在两个序列之间定义一个选择。但是在一般情况下,选择将是不明确的,因此组合模式将无效。解决这个问题涉及到一些严重困难的计算机科学。

+0

感谢您的回答,如果第一个字段是两个序列中的同义词,那么它可能会含糊不清。因此,在这两组之间进行选择可以。 – 2011-06-10 09:55:39