2014-03-27 4 views
0

XML을 처음 접하고 인스턴스가있는 XML 스키마를 확인하는 데 문제가 있습니다.XML 스키마의 문제점 Nillable

XSD :

<?xml version="1.0"?> 
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="result"> 
    <xs:complexType> 
     <xs:all> 
     <xs:element name="response"> 
      <xs:complexType> 
      <xs:all> 
       <xs:element minOccurs="0" name="status" type="xs:string" /> 
       <xs:element minOccurs="0" name="messages" nillable="true"> 
       <xs:complexType> 
        <xs:sequence> 
        <xs:element minOccurs="0" maxOccurs="unbounded" name="item"> 
         <xs:complexType> 
         <xs:all> 
          <xs:element maxOccurs="1" minOccurs="0" name="date" type="xs:string"/> 
          <xs:element maxOccurs="1" minOccurs="0" name="department" type="xs:string"/> 
          <xs:element maxOccurs="1" minOccurs="0" name="msg-from" type="xs:string"/> 
          <xs:element maxOccurs="1" minOccurs="0" name="reply1" type="xs:string"/> 
          <xs:element maxOccurs="1" minOccurs="0" name="reply2" type="xs:string"/> 
         </xs:all> 
         </xs:complexType> 
        </xs:element> 
        </xs:sequence> 
       </xs:complexType> 
       </xs:element> 
      </xs:all> 
      </xs:complexType> 
     </xs:element> 
     </xs:all> 
    </xs:complexType> 
    </xs:element> 
</xs:schema> 

내 XML 인스턴스 :

내가 this 같은 도구를 사용하여 XSD에 대한 인스턴스를 확인하기 위해 노력하고있어
<result xmlns:xsi="http://www.w3.org/2001/XMLSchema"> 
    <response> 
     <status>No new messages</status> 
     <messages xsi:nil="true"/> 
    </response> 
</result> 

, 나는군요 다음 오류 :

cvc-complex-type.3.2.2: Attribute 'xsi:nil' is not allowed to appear in element 'messages'. 

messages 요소에 이미 nillable="true"을 입력했기 때문에 이해할 수없는 부분이 있습니다.

도움을 주실 수 있습니다. 감사.

+0

XML 인스턴스에'xmlns : xsi = "http://www.w3.org/2001/XMLSchema-instance"'를 넣어두면 XML 인스턴스의 유효성을 확인할 수 있습니다! 그러나 제가 사용하고있는 도서관은 이것을 생성하지 않습니다. – giga

+2

예, 네임 스페이스가 잘못되었습니다. 귀하의 질문에 대답하고 답변을 수락했음을 표시하십시오. –

답변

2

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"을 XML 인스턴스에 넣으면 XML 인스턴스의 유효성이 확인됩니다.