2012-03-26 147 views
1

我在嘗試將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> 

在此先感謝。

回答

0

假設你的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