XML-根元素后面的文档中的标记必须格式正确

时间:2015-02-08 22:54:56

标签: xml xsd

我刚开始学习XML,但我无法找到错误的解决方案。我收到此错误:"根元素后面的文档中的标记必须格式正确。

任何帮助都会很棒。谢谢

    <?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsd:element name="inventory">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="cd" type="cdType"/>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>

    <xsd:complexType name="cdType">
            <xsd:sequence>    
                <xsd:element name="title" type="xsd:string"/>
                <xsd:element name="artist" type="xsd:string"/>
                <xsd:element name="contact" type="xsd:string" minOccurs="0" maxOccurs="1"/>
            </xsd:sequence>
    </xsd:complexType>
</xsd:schema>

<inventory>
  <cd>
    <title>American Beauty</title>
    <artist>Grateful Dead</artist>
    <contact>KC Daily</contact>
  </cd>

  <cd>
     <title>Dare to be Stupid</title>
     <artist>Al Yankovic</artist>
  </cd>

  <cd>
     <title>Skeletons from the Closet</title>
     <artist>Grateful Dead></artist>
     <contact>KC Daily</contact>
  </cd>
</inventory>

1 个答案:

答案 0 :(得分:0)

单独存储架构。它认为有两个根元素。

格式良好的XML的规则是:

  1. 只有一个根元素。
  2. 所有元素都已正确关闭
  3. 元素嵌套正确
  4. 规则3的一个例子:

    <!-- WRONG Way -->
    <b><i></b></i>
    
    <!-- Right Way -->
    <b><i></i></b>
    

    对于规则1,以下是非法的:

    <root1>
      <element />
    </root1>
    <!-- Notice that a new element has been opened at the top level -->
    <root2>
    </root2>
    

    对于规则2,有两种方法可以关闭元素:

    如果没有内容(例如html的img元素),您可以这样关闭它:

    <element />
    

    否则,您必须使用以下格式的单独关闭标记:

    <element>
    <!-- Precede the opening tag's name with a forward slash (/) -->
    </element>
    

    注意:将架构(xsd:架构部分)存储在扩展名为.xsd的单独文件中。然后在文档的根元素中引用它。