2016-06-01 92 views
1

xmlとxsdを記述するとエラーが発生します。 私はstudents.xsd書いた:(無効なコンテンツが要素 '学生' で始まるいた私は、エラーを持っているstudents.xmlで要素で始まる無効なコンテンツが見つかりました

<?xml version="1.0" encoding="utf-8" ?> 
<students xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:noNamespaceSchemaLocation="students.xsd"> 
    <student id="1"> 
     <name> 
      <firstName>Ivan</firstName> 
      <lastName>Ivanov</lastName> 
     </name> 
     <faculty>fksis</faculty> 
     <address> 
      <country>Belarus</country> 
      <city>Minsk</city> 
      <street>Rokossovskogo 24</street> 
     </address> 
     <phone>6677088</phone> 
    </student> 
    <student id="2"> 
     <name> 
      <firstName>Petr</firstName> 
      <lastName>Petrov</lastName> 
     </name> 
     <faculty>fre</faculty> 
     <address> 
      <country>Belarus</country> 
      <city>Mogilev</city> 
      <street>Leninskaya 25</street> 
     </address> 
     <phone>5467043</phone> 
    </student> 
</students> 

<?xml version="1.0" encoding="UTF-8" ?> 
<xs:schema attributeFormDefault="unqualified" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    elementFormDefault="qualified"> 
    <xs:element name="students"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element name="student"> 
        <xs:complexType> 
         <xs:sequence> 
          <xs:element name="name"> 
           <xs:complexType> 
            <xs:sequence> 
             <xs:element name="firstName" type="xs:string"/> 
             <xs:element name="lastName" type="xs:string"/> 
            </xs:sequence> 
           </xs:complexType> 
          </xs:element> 
          <xs:element name="faculty"> 
           <xs:simpleType> 
            <xs:restriction base="xs:string"> 
             <xs:enumeration value="fkp"/> 
             <xs:enumeration value="fitu"/> 
             <xs:enumeration value="fre"/> 
             <xs:enumeration value="fksis"/> 
             <xs:enumeration value="ftk"/> 
             <xs:enumeration value="fnido"/> 
            </xs:restriction> 
           </xs:simpleType> 
          </xs:element> 
          <xs:element name="address"> 
           <xs:complexType> 
            <xs:sequence> 
             <xs:element name="country"> 
              <xs:simpleType> 
               <xs:restriction base="xs:string"> 
                <xs:minLength value="2"/> 
                <xs:maxLength value="20"/> 
               </xs:restriction> 
              </xs:simpleType> 
             </xs:element> 
             <xs:element name="city"> 
              <xs:simpleType> 
               <xs:restriction base="xs:string"> 
                <xs:minLength value="2"/> 
                <xs:maxLength value="20"/> 
               </xs:restriction> 
              </xs:simpleType> 
             </xs:element> 
             <xs:element name="street"> 
              <xs:simpleType> 
               <xs:restriction base="xs:string"> 
                <xs:minLength value="2"/> 
                <xs:maxLength value="30"/> 
               </xs:restriction> 
              </xs:simpleType> 
             </xs:element> 
            </xs:sequence> 
           </xs:complexType> 
          </xs:element> 
          <xs:element name="phone"> 
           <xs:simpleType> 
            <xs:restriction base="xs:positiveInteger"> 
             <xs:length value="6"/> 
             <xs:pattern value="[0-9]"/> 
            </xs:restriction> 
           </xs:simpleType> 
          </xs:element> 
         </xs:sequence> 
         <xs:attribute name="id" type="xs:int" use="required"/> 
        </xs:complexType> 
       </xs:element> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> 
</xs:schema> 

をそして私は、ファイルstudents.xmlを持っています。この時点で子要素はありません)。部分的には:

<student id="2"> 
     <name> 
      <firstName>Petr</firstName> 
      <lastName>Petrov</lastName> 
     </name> 
     <faculty>fre</faculty> 
     <address> 
      <country>Belarus</country> 
      <city>Mogilev</city> 
      <street>Leninskaya 25</street> 
     </address> 
     <phone>5467043</phone> 
    </student> 

問題は何ですか?このエラーを修正するには? ありがとうございました!

答えて

1

スキーマの設定方法は、デフォルトでは「students」の「student」要素が1つだけ許可されます。 1つまたは複数のstudent要素が必要な場合は、maxOccursを無制限に設定する必要があります。

<xs:element name="student" maxOccurs="unbounded"> 

(1までのmaxOccursのデフォルト省略された場合)

関連する問題