有人可以帮我解决下面的XML吗?
<?xml version="1.0" encoding="UTF-8" ?>
<xs:collection-list xmlns:xs="http://www.hp.com/hpsim7.5.0.0"
elementFormDefault="qualified">
<xs:collection name="abc"
type="system"
parent="Systems by Type">
<member name="All Servers"
type="query"
display-status="0"default-view="tableview"
hidden="false" />
</collection>
</collection-list>
我不确定它有什么问题。
答案 0 :(得分:1)
您的XML出了什么问题,它不是 格式良好 。
也就是说,它不符合XML的基本要求。然后,根据您对错误的评论,指出无法找到collection-list
,您的XML也不是有效。也就是说,它不符合模式指定的附加要求。您可能希望了解有关Well-formed vs Valid XML的更多信息。
下面,我将帮助您解决特定情况下的每一类问题。我将使用Xerces-J错误消息具体,但任何符合标准的XML解析器都会发出类似的错误。
[致命错误] try.xml:9:31:元素类型“成员”必须后跟属性规范“&gt;”或“/&gt;”。
member
的处理,表明在解析属性时出现问题(在到达之前)
由>
或/>
标记的开始标记的结尾。default-view="tableview"
属性之前添加空格。[致命错误] try.xml:12:5:元素类型“xs:collection”必须由匹配的结束标记
"</xs:collection>"
终止。
</xs:collection>
,因为</collection>
上缺少名称空间前缀。collection
标记。重复collection-list
。
其他说明:
xs
名称空间前缀
元素(虽然这不是绝对必要的)。elementFormDefault
中删除hp:collection-list
属性,因为它似乎错误地从XSD复制过来。member
元素也位于http://www.hp.com/hpsim7.5.0.0
命名空间中,以便在下一节简化演示XML的XSD。然后,这里,您的文字变成了格式良好的XML :
<?xml version="1.0" encoding="UTF-8" ?>
<hp:collection-list xmlns:hp="http://www.hp.com/hpsim7.5.0.0">
<hp:collection name="abc"
type="system"
parent="Systems by Type">
<hp:member name="All Servers"
type="query"
display-status="0"
default-view="tableview"
hidden="false"/>
</hp:collection>
</hp:collection-list>
既然你有完善的XML,你可以继续尝试验证它,但是当你这样做时,你会遇到另一个错误:
[错误] try.xml:3:52:cvc-elt.1.a:找不到声明 element'hp:collection-list'。
hp:collection-list
开始。xsi:schemaLocation
在哪里查找XSD,其值由命名空间 - 位置对组成,以空格分隔。 以下是您的XML xsi:schemaLocation
暗示XSD位置:
<?xml version="1.0" encoding="UTF-8" ?>
<hp:collection-list xmlns:hp="http://www.hp.com/hpsim7.5.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.hp.com/hpsim7.5.0.0 try.xsd">
<hp:collection name="abc"
type="system"
parent="Systems by Type">
<hp:member name="All Servers"
type="query"
display-status="0"
default-view="tableview"
hidden="false" />
</hp:collection>
</hp:collection-list>
这是一个验证上述XML的XSD:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.hp.com/hpsim7.5.0.0">
<xs:element name="collection-list">
<xs:complexType>
<xs:sequence>
<xs:element name="collection" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="member">
<xs:complexType>
<xs:sequence/>
<xs:attribute name="name"/>
<xs:attribute name="type"/>
<xs:attribute name="display-status" type="xs:integer"/>
<xs:attribute name="default-view"/>
<xs:attribute name="hidden" type="xs:boolean"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="name"/>
<xs:attribute name="type"/>
<xs:attribute name="parent"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>