元素声明

问题描述:

我在尝试将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"
+0

感谢,这解决了我的问题! – parasl 2012-03-26 23:17:57