请问,除了XML SPY,还有什么工具可以验证XML文档的Schema吗?我下了Xerces-c,可能用吗?

chengsion 2004-04-25 02:01:14
接着题目.
我下了Xerces-c后,在xml.apache.org/Xerces-c/ 下面的下的,然后,使用SAXCount -v=always something.xml进行XML的验证,但有错误.
比如
<?xml version="1.0" encoding="UTF-8"?>
<?proc-inst-1 'foo' ?>
<personnel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation='personal.xsd'>

<person id="Big.Boss">
<name xml:base="foo/bar"><family xml:base="bar/bar">Boss</family> <given xml:base="car/bar">Big</given><?proc-inst-2 'foobar' ?></name>
<email>chief@foo.com</email>
<link subordinates="one.worker two.worker three.worker four.worker five.worker"/>
</person>

<person id="one.worker" xml:base="/auto/bar">
<name xml:base="/car/foo/"><family xml:base="bar/bar">Worker</family> <given>One</given></name>
<email>one@foo.com</email>
<link manager="Big.Boss"/>
</person>

<person id="two.worker" xml:base="http://www.example.com/car/car">
<name xml:base="/bar/foo/"><family xml:base="foo/bar">Worker</family> <given>Two</given></name>
<email>two@foo.com</email>
<link manager="Big.Boss"/>
</person>

<person id="three.worker">
<name><family>Worker</family> <given>Three</given></name>
<email>three@foo.com</email>
<link manager="Big.Boss"/>
</person>

<person id="four.worker">
<name><family>Worker</family> <given>Four</given></name>
<email>four@foo.com</email>
<link manager="Big.Boss"/>
</person>

<person id="five.worker">
<name><family>Worker</family> <given>Five</given></name>
<email>five@foo.com</email>
<link manager="Big.Boss"/>
</person>

</personnel>


//***************************


<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema'>

<xs:import namespace="http://www.w3.org/XML/1998/namespace">
<xs:annotation>
<xs:documentation>
The schemaLocation of the relevant file is
"http://www.w3.org/2001/xml.xsd"; however,
we don't want to assume people are always
connected to the 'net when playing with this file.
</xs:documentation>
</xs:annotation>
</xs:import>

<xs:element name="personnel">
<xs:complexType>
<xs:sequence>
<xs:element ref="person" minOccurs='1' maxOccurs='unbounded'/>
</xs:sequence>
</xs:complexType>

<xs:unique name="unique1">
<xs:selector xpath="person"/>
<xs:field xpath="name/given"/>
<xs:field xpath="name/family"/>
</xs:unique>
<xs:key name='empid'>
<xs:selector xpath="person"/>
<xs:field xpath="@id"/>
</xs:key>
<xs:keyref name="keyref1" refer='empid'>
<xs:selector xpath="person"/>
<xs:field xpath="link/@manager"/>
</xs:keyref>

</xs:element>

<xs:element name="person">
<xs:complexType>
<xs:sequence>
<xs:element ref="name"/>
<xs:element ref="email" minOccurs='0' maxOccurs='unbounded'/>
<xs:element ref="url" minOccurs='0' maxOccurs='unbounded'/>
<xs:element ref="link" minOccurs='0' maxOccurs='1'/>
</xs:sequence>
<xs:attribute name="id" type="xs:ID" use='required'/>
<xs:attribute name="note" type="xs:string"/>
<xs:attribute name="contr" default="false">
<xs:simpleType>
<xs:restriction base = "xs:string">
<xs:enumeration value="true"/>
<xs:enumeration value="false"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="salary" type="xs:integer"/>
<xs:anyAttribute namespace="http://www.w3.org/XML/1998/namespace" processContents="skip"/>
</xs:complexType>
</xs:element>

<xs:element name="name">
<xs:complexType>
<xs:all>
<xs:element ref="family"/>
<xs:element ref="given"/>
</xs:all>
<xs:anyAttribute namespace="http://www.w3.org/XML/1998/namespace" processContents="skip"/>
</xs:complexType>
</xs:element>

<xs:element name="family">
<xs:complexType>
<xs:simpleContent>
<xs:extension base='xs:string'>
<xs:anyAttribute namespace="http://www.w3.org/XML/1998/namespace" processContents="skip"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>

<xs:element name="given" >
<xs:complexType>
<xs:simpleContent>
<xs:extension base='xs:string'>
<xs:anyAttribute namespace="http://www.w3.org/XML/1998/namespace" processContents="skip"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>

<xs:element name="email" type='xs:string'/>

<xs:element name="url">
<xs:complexType>
<xs:attribute name="href" type="xs:string" default="http://"/>
</xs:complexType>
</xs:element>

<xs:element name="link">
<xs:complexType>
<xs:attribute name="manager" type="xs:IDREF"/>
<xs:attribute name="subordinates" type="xs:IDREFS"/>
</xs:complexType>
</xs:element>

<xs:notation name='gif' public='-//APP/Photoshop/4.0' system='photoshop.exe'/>

</xs:schema>



...全文
73 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
chengsion 2004-04-25
  • 打赏
  • 举报
回复
错误信息:

D:\xerces-c\samples\data>saxcount -v=always personal-schema.xml

Error at file D:\xerces-c\samples\data/personal-schema.xml, line 3, char 11
Message: Unknown element 'personnel'

Error at file D:\xerces-c\samples\data/personal-schema.xml, line 3, char 22
Message: Attribute 'xmlns:xsi' is not declared for element 'personnel'

Error at file D:\xerces-c\samples\data/personal-schema.xml, line 4, char 35
Message: Attribute 'xsi:noNamespaceSchemaLocation' is not declared for elemen
'personnel'

Error at file D:\xerces-c\samples\data/personal-schema.xml, line 6, char 10
Message: Unknown element 'person'

Error at file D:\xerces-c\samples\data/personal-schema.xml, line 6, char 14
Message: Attribute 'id' is not declared for element 'person'

Error at file D:\xerces-c\samples\data/personal-schema.xml, line 7, char 10
Message: Unknown element 'name'

Error at file D:\xerces-c\samples\data/personal-schema.xml, line 7, char 20
Message: Attribute 'xml:base' is not declared for element 'name'

Error at file D:\xerces-c\samples\data/personal-schema.xml, line 7, char 37
Message: Unknown element 'family'

Error at file D:\xerces-c\samples\data/personal-schema.xml, line 7, char 48
Message: Attribute 'xml:base' is not declared for element 'family'

Error at file D:\xerces-c\samples\data/personal-schema.xml, line 7, char 78
Message: Unknown element 'given'

Error at file D:\xerces-c\samples\data/personal-schema.xml, line 7, char 88
Message: Attribute 'xml:base' is not declared for element 'given'

Error at file D:\xerces-c\samples\data/personal-schema.xml, line 8, char 11
Message: Unknown element 'email'

Error at file D:\xerces-c\samples\data/personal-schema.xml, line 9, char 10
Message: Unknown element 'link'

Error at file D:\xerces-c\samples\data/personal-schema.xml, line 9, char 24
Message: Attribute 'subordinates' is not declared for element 'link'

Error at file D:\xerces-c\samples\data/personal-schema.xml, line 12, char 10
Message: Unknown element 'person'

Error at file D:\xerces-c\samples\data/personal-schema.xml, line 12, char 14
Message: Attribute 'id' is not declared for element 'person'

Error at file D:\xerces-c\samples\data/personal-schema.xml, line 12, char 36
Message: Attribute 'xml:base' is not declared for element 'person'

Error at file D:\xerces-c\samples\data/personal-schema.xml, line 13, char 10
Message: Unknown element 'name'

Error at file D:\xerces-c\samples\data/personal-schema.xml, line 13, char 20
Message: Attribute 'xml:base' is not declared for element 'name'

Error at file D:\xerces-c\samples\data/personal-schema.xml, line 13, char 39

是什么原因?

8,906

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧