XML验证失败,错误“顶级未完成”

时间:2010-12-14 22:13:32

标签: html web-services

我有一个非常简单的xsd和xml文件示例,其中xml文件无法验证。

这两个文件的副本如下。

id ='fixMe'的第一个xml元素会出现错误   顶级未完成。   有效的xml文档必须具有根标记

如果我删除了它的id属性或使用“idx”而不是“id”,那就没关系了。但我无法弄清楚为什么。 'id'应该是有效的属性。

有任何见解。

XML:

<question id="fixMe" />
<question idx="ok"/>
<question />

XSD:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"
           targetNamespace="perceptive.com/mi/analysis"
           xmlns="perceptive.com/mi/analysis"
           elementFormDefault="qualified" attributeFormDefault="unqualified">

<xs:element name="test" type="test"/>

<xs:complexType name="test">
    <xs:sequence minOccurs="1" maxOccurs="10">
        <xs:element name="question" type="question_type"/>
    </xs:sequence>
</xs:complexType>

<xs:complexType name="question_type">
    <xs:attribute name="idx" type="xs:string" use="optional"/>
    <xs:attribute name="id"  type="xs:string" use="optional"/>
</xs:complexType>

</xs:schema>

1 个答案:

答案 0 :(得分:2)

XML文档在格式正确之前无法生效。

因此,您应该在XML文档中指定根标记,例如:

<root>
    <question id="fixMe" />
    <question idx="ok"/>
    <question />
</root>