使用元素属性和子元素验证xsd文件

时间:2017-10-13 09:38:31

标签: xml xsd

我正在尝试使用具有属性和三个子元素的元素编写XSD文件。我收到以下错误消息:

  

内容无效。预期是(注释?,(限制扩展名))。   adress_validator.xsd:18:element complexType:架构解析器错误:元素“{http://www.w3.org/2001/XMLSchema}元素”:内容无效。期望是(注释?,((simpleType | complexType)?,(unique | key | keyref)*))。   WXS架构adress_validator.xsd无法编译

有人能告诉我我做错了吗?

以下是我的尝试:

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
 targetNamespace="https://www.w3schools.com"
 xmlns:tns="https://www.w3schools.com"
 elementFormDefault="qualified">
<xsd:element name="adress_book">
       <xsd:complexType>
        <xsd:sequence>
          <xsd:element name="house" maxOccurs="unbounded">
            <xsd:complexType>
             <xsd:simpleContent>-
            <xsd:extension base="xsd:string">
               <xsd:attribute name="id" type="xsd:int"
                 use="required"></xsd:attribute>
             </xsd:extension>
           </xsd:simpleContent>
         </xsd:complexType>
         <xsd:complexType>
         <xsd:sequence>
          <xsd:element name="surname"></xsd:element>
          <xsd:element name="first_name"></xsd:element>
          <xsd:element name="phone_number"></xsd:element>
        </xsd:sequence>
       </xsd:complexType>
      </xsd:element>
     </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
 </xsd:schema>

1 个答案:

答案 0 :(得分:0)

这对你有用吗?具有三个子元素和一个属性的元素:

<element name="top">
    <complexType>
      <sequence>
        <element name="one" type="string"/>
        <element name="two" type="string"/>
        <element name="three" type="string"/>
      </sequence>
      <attribute name="something" type="string"/>
    </complexType>
</element>