我在使用XML Schema时遇到了麻烦

时间:2016-01-07 12:47:06

标签: xml xsd

我的XML Schema一直出现错误,说不支持“Personelement”。我不知道这里的问题是什么。我是初学者,所以我可能错过了一些明显的东西,但我怎么能纠正这个?这是我的XML:

<?xml version="1.0" encoding="UTF-8"?>
<Ansökan xmlns="http://www.w3schools.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3schools.com XMLSchema1.xsd">
   <Förskolenamn>Hovhultsförskola</Förskolenamn>
   <Barn>
      <Förnamn>Erik</Förnamn>
      <Efternamn>Andersson</Efternamn>
      <Personnummer>20101106</Personnummer>
      <Syskon>
         <Förnamn>Axel</Förnamn>
         <Efternamn>Andersson</Efternamn>
         <Personnummer>20051217</Personnummer>
      </Syskon>
      <Övrigt>
         <Allergier>Inga allergier</Allergier>
      </Övrigt>
   </Barn>
   <Vårdnadshavare>
      <Person personnummer="19850724">
         <Förnamn>Johan</Förnamn>
         <Efternamn>Andersson</Efternamn>
         <Adress>Balladvägen 20, Uddevalla</Adress>
         <Mobilnummer>0700000000</Mobilnummer>
         <Tel.arbete>0522-00000</Tel.arbete>
      </Person>
      <Person personnummer="19881217">
         <Förnamn>Johanna</Förnamn>
         <Efternamn>Andersson</Efternamn>
         <Adress>Balladvägen 20, Uddevalla</Adress>
         <Mobilnummer>0700000000</Mobilnummer>
         <Tel.arbete>0522-00000</Tel.arbete>
      </Person>
   </Vårdnadshavare>
</Ansökan>

这是我的XML Schema:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3schools.com" targetNamespace="http://www.w3schools.com" elementFormDefault="qualified">
   <xs:element name="Ansökan">
      <xs:complexType>
         <xs:sequence>
            <xs:element name="Förskolenamn">
               <xs:simpleType>
                  <xs:restriction base="xs:string" />
               </xs:simpleType>
            </xs:element>
            <xs:element name="Barn">
               <xs:complexType>
                  <xs:sequence>
                     <xs:element name="Förnamn" maxOccurs="10" />
                     <xs:element name="Efternamn" maxOccurs="10" />
                     <xs:element name="Personnummer" maxOccurs="10" />
                  </xs:sequence>
               </xs:complexType>
            </xs:element>
            <xs:element name="Syskon">
               <xs:complexType>
                  <xs:sequence>
                     <xs:element name="Förnamn" maxOccurs="unbounded" />
                     <xs:element name="Efternamn" maxOccurs="unbounded" />
                     <xs:element name="Personunmmer" maxOccurs="unbounded">
                        <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:element name="Övrigt">
                        <xs:complexType>
                           <xs:sequence>
                              <xs:element name="Allergier" maxOccurs="1" />
                           </xs:sequence>
                        </xs:complexType>
                     </xs:element>
                     <xs:element name="Vårdnadshavare">
                        <xs:complexType>
                           <xs:sequence>
                              <xs:Person name="personnummer">
                                 <xs:complexType>
                                    <xs:sequence>
                                       <xs:restriction base="xs:int">
                                          <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:sequence>
                                 </xs:complexType>
                                 <xs:element name="Förnamn" max0ccurs="2" />
                                 <xs:element name="Efternamn" max0ccurs="2" />
                                 <xs:element name="Adress" max0ccurs="2" />
                                 <xs:element name="Mobilnummer" max0ccurs="1" />
                                 <xs:element name="Tel.arbete" max0ccurs="10" />
                              </xs:Person>
                              <xs:Person name="personnummer">
                                 <xs:complexType>
                                    <xs:restriction base="xs:int">
                                       <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:complexType>
                                 <xs:element name="Förnamn" max0ccurs="2" />
                                 <xs:element name="Efternamn" max0ccurs="2" />
                                 <xs:element name="Adress" max0ccurs="2" />
                                 <xs:element name="Mobilnummer" max0ccurs="1" />
                                 <xs:element name="Tel.arbete" max0ccurs="10" />
                              </xs:Person>
                           </xs:sequence>
                        </xs:complexType>
                     </xs:element>
                  </xs:sequence>
               </xs:complexType>
            </xs:element>
         </xs:sequence>
      </xs:complexType>
   </xs:element>
</xs:schema>

1 个答案:

答案 0 :(得分:1)

在xml架构中,<xs:Person name="personnumber">不正确。你需要定义一个元素&#39; Person&#39;具有属性&#39; personnumber&#39;。同样,Person元素的其他子元素也必须是Person元素的类型定义的一部分。见下文:

<xs:element name="Person" maxOccurs="unbounded" minOccurs="0">
   <xs:complexType>
      <xs:sequence>
         <xs:element type="xs:string" name="Förnamn" />
         <xs:element type="xs:string" name="Efternamn" />
         <xs:element type="xs:string" name="Adress" />
         <xs:element type="xs:int" name="Mobilnummer" />
         <xs:element type="xs:string" name="Tel.arbete" />
      </xs:sequence>
      <xs:attribute type="xs:int" name="personnummer" use="optional">
         <xs:simpleType>
            <xs:restriction base="xs:int">
               <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:attribute>
   </xs:complexType>
</xs:element>