2011-06-09 116 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