2013-11-05 2 views
0

이 XML 파일이 있는데 모든 데이터가 있는지 확인하고 xsd 파일과 비교하여 XML의 유효성을 검사하는 코드를 작성하는 xsd 파일을 만들어야합니다. 오류가 없으면 출력에 "Valid"가 표시됩니다. 오류가 있고 출력에 오류가 표시되면 출력에 "유효하지 않음"이 표시됩니다.XSD 파일이 제대로 작동하는 데 문제가 있습니다.

<Student gradYear="2014"> <!--GraduationYear is required--> 
<FirstName> 
    John 
</FirstName><!--FirstName is required--> 
<LastName> 
    Smith 
</LastName><!--LastName is required--> 
<SocialSecurity> 
123-45-6789 
</SocialSecurity><!--SocialSecurity is required and must be in the format shown--> 
<Phone type="Home"> <!--HomePhone is required and must match the format shown--> 
     <Number> 
    724-555-5454 
    </Number> 
</Phone> 
<PhoneNumber type="Cell"> <!--Cell Phone is optional, but must be in the correct format if used--> 
     <Number> 
    724-555-5858 
    </Number> 
</PhoneNumber> 
</Student> 

유효하거나 불필요하지만 필요한 필수 필드를 만들거나 형식을 확인하는 xsd 파일이 있습니다. XML 파일에 모든 요소가 포함되어 있는지 확인할 수 있습니다.

+0

XSD에서 필수 입력란을 설정하는 방법은 무엇입니까? – Raptor

+0

속성 필드에서 "use ="required ""를 사용 하겠지만 단순 유형에서는 사용할 수 없습니다. – Xentriovun

답변

0

이 XSD는 필수 및 형식 모두를 확인하지만 표시되는 오류는 유효성 확인을 수행하는 대상에 따라 달라집니다.

<?xml version="1.0" encoding="utf-16"?> 
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="Student"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element name="FirstName"> 
      <xs:simpleType> 
      <xs:restriction base="xs:string"> 
       <xs:minLength value="1" /> 
      </xs:restriction> 
      </xs:simpleType> 
     </xs:element> 
     <xs:element name="LastName"> 
      <xs:simpleType> 
      <xs:restriction base="xs:string"> 
       <xs:minLength value="1" /> 
      </xs:restriction> 
      </xs:simpleType> 
     </xs:element> 
     <xs:element name="SocialSecurity"> 
      <xs:simpleType> 
      <xs:restriction base="xs:string"> 
       <xs:pattern value="[0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9]" /> 
      </xs:restriction> 
      </xs:simpleType> 
     </xs:element> 
     <xs:element name="Phone"> 
      <xs:complexType> 
      <xs:sequence> 
       <xs:element name="Number"> 
       <xs:simpleType> 
        <xs:restriction base="xs:string"> 
        <xs:pattern value="[0-9][0-9][0-9]-[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]" /> 
        </xs:restriction> 
       </xs:simpleType> 
       </xs:element> 
      </xs:sequence> 
      <xs:attribute name="type" use="required"> 
       <xs:simpleType> 
       <xs:restriction base="xs:string"> 
        <xs:enumeration value="Home" /> 
       </xs:restriction> 
       </xs:simpleType> 
      </xs:attribute> 
      </xs:complexType> 
     </xs:element> 
     <xs:element minOccurs="0" name="PhoneNumber"> 
      <xs:complexType> 
      <xs:sequence> 
       <xs:element name="Number"> 
       <xs:simpleType> 
        <xs:restriction base="xs:string"> 
        <xs:pattern value="[0-9][0-9][0-9]-[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]" /> 
        </xs:restriction> 
       </xs:simpleType> 
       </xs:element> 
      </xs:sequence> 
      <xs:attribute name="type" use="required"> 
       <xs:simpleType> 
       <xs:restriction base="xs:string"> 
        <xs:enumeration value="Cell" /> 
       </xs:restriction> 
       </xs:simpleType> 
      </xs:attribute> 
      </xs:complexType> 
     </xs:element> 
     </xs:sequence> 
     <xs:attribute name="gradYear" type="xs:unsignedShort" use="required" /> 
    </xs:complexType> 
    </xs:element> 
</xs:schema> 
관련 문제