2012-09-18 74 views
1

我在爲XML文檔生成XML模式時遇到了一些問題。 XML文檔應該是這樣的:XML Schema氧氣驗證問題

<HEADER> 
    <ID>64639</ID> 
    .... 
    <INCIDENT> 
     <HEADER>64639</HEADER> 
    </INCIDENT> 
    <INCIDENT> 
     <HEADER>64639</HEADER> 
    </INCIDENT> 
    .... 
</HEADER> 

到目前爲止,我取得了以下結構:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
     elementFormDefault="qualified"> 

<xsd:element name="HEADER"> 
    <xsd:complexType> 
     <xsd:all> 
      <xsd:element minOccurs="1" name="ID" nillable="false" type="xsd:integer"/> 
     </xsd:all> 
    </xsd:complexType> 
    <xsd:key name="SYS_C0032500"> 
     <xsd:selector xpath="."/> 
     <xsd:field xpath="ID"/> 
    </xsd:key> 
    <xsd:keyref name="SYS_C0032500_HEADER.ID_INCIDENT.HEADER_" refer="SYS_C0032500"> 
     <xsd:selector xpath="INCIDENT"/> 
     <xsd:field xpath="HEADER"/> 
    </xsd:keyref> 
</xsd:element> 

<xsd:element name="INCIDENT"> 
    <xsd:complexType> 
     <xsd:all> 
      <xsd:element minOccurs="1" name="HEADER" nillable="false" type="xsd:integer"/> 
     </xsd:all> 
    </xsd:complexType> 
    <xsd:key name="IDK"> 
     <xsd:selector xpath="."/> 
     <xsd:field xpath="HEADER"/> 
    </xsd:key> 
</xsd:element> 

</xsd:schema> 

這個任務的標準使用和元素,以模擬數據庫約束。目前,我得到一個錯誤,指出消息:

引擎名稱:Xerces的 嚴重錯誤 說明:CVC-複雜type.2.4.d:無效的含量被發現開始元素「事件」。預計在這一點上不會有子元素。 開始位置:3:6 結束位置:3:14 網址:http://www.w3.org/TR/xmlschema-1/#cvc-complex-type

我的另一個問題配備了更多的入射光部分。當沒有maxOccurs屬性時,如何添加更多的INCIDENT元素?

感謝您的幫助!

問候, 喬

回答

2

在您的例子實例文檔,對於標頭中的內容模型看起來是「的ID之後是一個或更多的事件」。在XSD中是:

<xsd:element name="HEADER"> 
    <xsd:complexType> 
     <xsd:sequence> 
      <xsd:element name="ID" nillable="false" type="xsd:integer"/> 
      <xsd:element name="INCIDENT" minOccurs="1" maxOccurs="unbounded" type="..."/> 
     </xsd:all> 
    </xsd:complexType> 
    ...