首页 文章

错误:从element开始发现无效内容

提问于
浏览
0

我无法让我的文件验证 .

这是我得到的错误 .

4:14 cvc-complex-type.2.4.a:从元素'AirportList'开始发现无效内容 . 其中一个'{“”:机场}'是预期的 . 47:15 XML文档结构必须在同一实体内开始和结束 .

我将在下面发布我的XML文档代码和我的XSD架构 . 我是新手,所以我不确定我做错了什么 . 我已经改变了我的文件的格式,但我仍然得到相同的错误 .

<?xml version="1.0"?>
<AirportList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="filename.xsd"> 
<AirportList>
    <Airport>
        <name>Abbotsford International Airport</name>
        <community>Abbotsford</community>
        <province>British Columbia</province>
        <passengers>15</passengers>
    </Airport>
    <Airport>
        <name>Atlin Airport</name>
        <community>Atlin</community>
        <province>British Columbia</province>
        <passengers>15</passengers>
    </Airport>
    <Airport>
        <name>Atlin Water Aerodrome</name>
        <community>Atlin</community>
        <province>British Columbia</province>
        <passengers>15</passengers>
    </Airport>
    <Airport>
        <name>Baie-Comeau Water Aerodrome</name>
        <community>Baie-Comeau</community>
        <province>Quebec</province>
        <passengers>15</passengers>
    </Airport>
    <Airport>
        <name>Beaver Creek Airport</name>
        <community>Beaver Creek</community>
        <province>Yukon</province>
        <passengers>15</passengers>
    </Airport>
    <Airport>
        <name>Bedwell Harbour Water Aerodrome</name>
        <community>Bedwell Harbour</community>
        <province>British Columbia</province>
        <passengers>15</passengers>
    </Airport>
    <Airport>
        <name>Billy Bishop Toronto City Airport</name>
        <community>Toronto</community>
        <province>Ontario</province>
        <passengers>15</passengers>
    </Airport>
</AirportList>


<?xml version="1.0"?>
<!-- XSD Schema for simple_apoole33_IT_MUST_VALIDATE.xml -->

<xsd:schema xmlns:xsd=
    "http://www.w3.org/2001/XMLSchema">

    <xsd:element name="AirportList">
        <xsd:complexType>
        <xsd:sequence>

            <xsd:element name="Airport" 
                maxOccurs="unbounded">
                <xsd:complexType>
                <xsd:sequence>

                    <xsd:element name="name"type="xsd:string"/>

                    <xsd:element name="community"type="xsd:string"/>

                    <xsd:element name="province"type="xsd:string"/>

                    <xsd:element name="passengers"type="xsd:integer" minOccurs = "0"/>

                </xsd:sequence>
                </xsd:complexType>
            </xsd:element>

        </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
</xsd:schema>

1 回答

  • 3

    You were very close. Just make these two changes:

    • 消除XML中的额外 AirportList 元素 .

    • 在XSD中的 @name@type 属性之间添加空格 .

    Altogether, then your corrected XML,

    <?xml version="1.0"?>
    <AirportList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                 xsi:noNamespaceSchemaLocation="simple_apoole33.xsd"> 
      <Airport>
        <name>Abbotsford International Airport</name>
        <community>Abbotsford</community>
        <province>British Columbia</province>
        <passengers>15</passengers>
      </Airport>
      <Airport>
        <name>Atlin Airport</name>
        <community>Atlin</community>
        <province>British Columbia</province>
        <passengers>15</passengers>
      </Airport>
      <Airport>
        <name>Atlin Water Aerodrome</name>
        <community>Atlin</community>
        <province>British Columbia</province>
        <passengers>15</passengers>
      </Airport>
      <Airport>
        <name>Baie-Comeau Water Aerodrome</name>
        <community>Baie-Comeau</community>
        <province>Quebec</province>
        <passengers>15</passengers>
      </Airport>
      <Airport>
        <name>Beaver Creek Airport</name>
        <community>Beaver Creek</community>
        <province>Yukon</province>
        <passengers>15</passengers>
      </Airport>
      <Airport>
        <name>Bedwell Harbour Water Aerodrome</name>
        <community>Bedwell Harbour</community>
        <province>British Columbia</province>
        <passengers>15</passengers>
      </Airport>
      <Airport>
        <name>Billy Bishop Toronto City Airport</name>
        <community>Toronto</community>
        <province>Ontario</province>
        <passengers>15</passengers>
      </Airport>
    </AirportList>
    

    will validate against your corrected XSD,

    <?xml version="1.0"?>
    <!-- XSD Schema for simple_apoole33_IT_MUST_VALIDATE.xml -->
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <xsd:element name="AirportList">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element name="Airport" 
                         maxOccurs="unbounded">
              <xsd:complexType>
                <xsd:sequence>
                  <xsd:element name="name" type="xsd:string"/>
                  <xsd:element name="community" type="xsd:string"/>
                  <xsd:element name="province" type="xsd:string"/>
                  <xsd:element name="passengers" type="xsd:integer" minOccurs="0"/>
                </xsd:sequence>
              </xsd:complexType>
            </xsd:element>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
    </xsd:schema>
    

    as requested.

相关问题