元素声明
问题描述:
我在尝试将XSD文件链接到XML文件。在验证过程中,我不断收到相同的错误:第3行第167列:cvc-elt.1:找不到元素'SecondQ'的声明。元素声明
我正在使用:http://xmlvalidator.new-studio.org/验证文档。
我也注意到这是一个常见的问题,但是我没能通过阅读其他帖子来解决我的问题。
这两个文件位于相同的文件夹中,并且没有该域的网站,只有两个本地文件。
XML文档:
<SecondQ xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2001/XMLSchema q2x.xsd">
<Medicine MID="60004">
<MedicineName>Thorazin</MedicineName>
<MedicineDetails>
<Manufacturer>Pfiezer</Manufacturer>
<Strength>200</Strength>
<PatientMedInfo>
<RefillLeft>3</RefillLeft>
<Repetition>1</Repetition>
<Duration>30</Duration>
</PatientMedInfo>
</MedicineDetails>
</Medicine>
<Medicine MID="60005">
<MedicineName>Ciprodex</MedicineName>
<MedicineDetails>
<Manufacturer>Alcon Laboratories Inc.</Manufacturer>
<Strength>6</Strength>
<PatientMedInfo>
<RefillLeft>1</RefillLeft>
<Repetition>3</Repetition>
<Duration>21</Duration>
</PatientMedInfo>
</MedicineDetails>
</Medicine>
</SecondQ>
XSD文件:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="SecondQ">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Medicine" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="MedicineName" type="xsd:string"/>
<xsd:element name="MedicineDetails">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Manufacturer" type="xsd:string"/>
<xsd:element name="Strength" type="xsd:integer"/>
<xsd:element name="PatientMedInfo">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="RefillLeft" type="xsd:integer"/>
<xsd:element name="Repetition" type="xsd:integer"/>
<xsd:element name="Duration" type="xsd:integer"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="MID" type="xsd:string" use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
在此先感谢。
答
假设你的XSD是“好”的一个,那么你有一对夫妇的问题,在你的XML修复:
- 摆脱默认的命名空间,即去掉
xmlns="http://www.w3.org/2001/XMLSchema"
的;您的XSD没有声明目标名称空间,您的XML文档元素应该是不合格的。 - 更改
xsi:schemaLocation="http://www.w3.org/2001/XMLSchema q2x.xsd"
到xsi:noNamespaceSchemaLocation="q2x.xsd"
感谢,这解决了我的问题! – parasl 2012-03-26 23:17:57