2016-10-18 25 views
0

以下是我的XML和驗證的XSD。看起來像id字段的xs:unique約束有問題。XSD該元素不能包含文本。添加xs後內容模型爲空:唯一

<?xml version='1.0' encoding='utf-8'?> 
<records> 
    <record> 
    <date>2016-02-01</date> 
    <id>3</id>  
    </record> 
    <record> 
    <date>2016-02-01</date> 
    <id>4</id> 
    </record> 
    <record> 
    <date>2016-02-01</date> 
    <id>7</id> 
    </record> 
</records> 

XSD:

<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
     <xs:element name="records"> 
     <xs:complexType> 
      <xs:sequence> 
      <xs:element name="record" maxOccurs="unbounded" minOccurs="0"> 
       <xs:complexType> 
       <xs:sequence> 
        <xs:element type="xs:date" name="date"/> 
        <xs:element name="id" maxOccurs="unbounded"> 
        <xs:complexType> 
         <xs:attribute name="recordid" type="xs:integer"/> 
        </xs:complexType> 
        </xs:element> 
       </xs:sequence> 
       </xs:complexType> 
       <xs:unique name="Unique-id"> 
       <xs:selector xpath="id" /> 
       <xs:field xpath="@recordid" /> 
       </xs:unique> 
      </xs:element> 
      </xs:sequence> 
     </xs:complexType> 
     </xs:element> 
    </xs:schema> 

回答

1

您的XSD是不完全與您的XML:在你的XSD你提到不會在你的代碼

存在假設你的XML是一個屬性的recordId正確,這裏是相應的XSD應該給你正確的結果

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema attributeFormDefault="unqualified" elementFormDefault="unqualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
<xs:element name="records"> 
    <xs:complexType> 
     <xs:sequence> 
      <xs:element name="record" maxOccurs="unbounded" minOccurs="0"> 
       <xs:complexType> 
        <xs:sequence> 
         <xs:element type="xs:date" name="date"/> 
         <xs:element name="id" type="xs:integer"/>        
        </xs:sequence> 
       </xs:complexType> 
      </xs:element> 
     </xs:sequence>    
    </xs:complexType> 
    <xs:unique name="Unique-id"> 
     <xs:selector xpath="record" /> 
     <xs:field xpath="id" /> 
    </xs:unique>         
</xs:element> 

+0

這是驗證在記錄級別,即當我得到一個錯誤行號指向父級元素而不是子元素。無論如何,我可以直接驗證子元素嗎?我正在使用錯誤行號進行顯示。 – Srini

相關問題