2015-01-13 21 views
1

即时通讯我的代码中的最后一个内容有问题,它说“http://www.w3.org/2001/XMLSchema”不支持!我如何解决这个问题?XML模式 - “在这种情况下不支持元素”

Screenshoot上问题:http://gyazo.com/ae50e9f14628210ce0a63317e2cf94c0

<?xml version="1.0" encoding="utf-8"?> 
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" 
xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
<xs:element name="Ansökan"> 
<xs:complexType> 
    <xs:sequence> 
    <xs:element name="hejsanförskolan"> 
     <xs:complexType> 
     <xs:sequence> 
      <xs:element name="elev"> 
      <xs:complexType> 
       <xs:sequence> 
       <xs:element name="personnummer" 
     type="datatypPersonnummer"minOccurs="1" /> 
       <xs:element name="förnamn" type="xs:string" minOccurs="1" /> 
       <xs:element name="efternamn" type="xs:string" minOccurs="1" /> 
       <xs:element name="Adress" type="xs:string" minOccurs="1" /> 
       </xs:sequence> 
      </xs:complexType> 
      </xs:element> 
      <xs:element maxOccurs="2" name="vårdnadstagare"> 
      <xs:complexType> 
       <xs:sequence> 
       <xs:element name="personnummer" 
       type="datatypPersonnummer"minOccurs="1" /> 
       <xs:element name="förnamn" type="xs:string" minOccurs="1" /> 
       <xs:element name="efternamn" type="xs:string" minOccurs="1" /> 
       <xs:element name="Adress" type="xs:string" minOccurs="1" /> 
       <xs:element name="Telefonnummer" type="xs:unsignedInt" minOccurs="1" /> 
       </xs:sequence> 
      </xs:complexType> 
      </xs:element> 
      <xs:element name="syskon" minOccurs="1"> 
      <xs:complexType> 
       <xs:sequence> 
       <xs:element name="personnummer" type="datatypPersonnummer" /> 
       </xs:sequence> 
      </xs:complexType> 
      </xs:element> 
      <xs:element name="ömmandeskäl"> 
      <xs:complexType> 
       <xs:sequence> 
       <xs:element name="allergi" type="xs:string" /> 
       </xs:sequence> 
      </xs:complexType> 
      </xs:element> 
     </xs:sequence> 
     </xs:complexType> 
    </xs:element> 
    <xs:simpleType name="datatypPersonnummer"> 
     <xs:restriction base="xs:string"> 
     <xs:pattern value="[0-9]{10}"/> 
     </xs:restriction> 
    </xs:simpleType> 
    </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
    </xs:schema> 

回答

1

看看其他直列类型(元件vårdnadstagare):有一个包含其中包含类型的元素的序列。

但在出现错误的情况下,您已将简单类型直接排序。

你需要一个元素。

例如,

<xs:sequence> 
    … 
    <xs:element name="datatypPersonnummer"> 
    <xs:simpleType> 
     <xs:restriction base="xs:string"> 
     <xs:pattern value="[0-9]{10}"/> 
     </xs:restriction> 
    </xs:simpleType> 
    </xs:element> 

即,将现有的<xs:simpleType name="datatypPersonnummer">换成新的<xs:element>,将name属性移至新元素。

+0

在XML内我是极端新的如何做到这一点:)? – supbro

+0

@supbro就像在XSD中定义的其他元素一样。 – Richard

+0

您能否展示您的意思,因为我不知道:/ – supbro

0

类型datatypPersonnummer在错误的位置。这个作品:

 </xs:complexType> 
    </xs:element> 
    <xs:simpleType name="datatypPersonnummer"> 
     <xs:restriction base="xs:string"> 
      <xs:pattern value="[0-9]{10}"/> 
     </xs:restriction> 
    </xs:simpleType> 
</xs:schema>