2014-12-04 79 views
0

我從一個大學課程的XML和模式開始,今天我遇到了這個問題,但我一直沒有弄明白。在針對XSD驗證XML文檔時,出現如下錯誤:XML模式:無法找到元素的聲明

cvc-elt.1:無法找到元素'info:SubmitForm'的聲明。 [8]

下面我提供我的XML文檔:

<?xml version="1.0" encoding="UTF-8"?> 

<info:SubmitForm  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:info="http://www.nielsvandeven.nl/assignmentxml" 
    xsi:SchemaLocation= "http://www.nielsvandeven.nl/assignmentxml 
        EleFoDefAssignment.xsd"> 
    <CustomerInfo> 
     <name>John Johnson</name> 
     <country>United Kingdom</country> 
     <age>40</age> 
     <registrated>1</registrated> 
    </CustomerInfo> 

    <CustomerInfo> 
     <name>Jan Jansen</name> 
     <country>Belgium</country> 
     <age>40</age> 
     <registrated>0</registrated> 
    </CustomerInfo> 

</info:SubmitForm> 

我的架構文件看起來是這樣的:

<?xml version="1.0" encoding="UTF-8"?> 
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
     xmlns:info="http://www.nielsvandeven.nl/assignmentxml" 
     targetNamespace="http://www.nielsvandeven.nl/assignmentxml" 
     elementFormDefault="unqualified"> 

<xsd:element name="SubmitForm"> 
    <xsd:complexType> 
     <xsd:sequence> 
      <xsd:element name="CustomerInfo" type="info:custinfo" minOccurs="0" maxOccurs="unbounded" /> 
     </xsd:sequence> 
    </xsd:complexType> 
</xsd:element> 

<xsd:complexType name="custinfo"> 
    <xsd:sequence> 
     <xsd:element name="name" type="xsd:string" /> 
     <xsd:element name="country" type="xsd:string" /> 
     <xsd:element name="age" type="xsd:integer" /> 
     <xsd:element name="registrated" type="xsd:boolean" /> 
    </xsd:sequence> 
</xsd:complexType> 

</xsd:schema> 

由於我還在學習,請隨時指出任何錯誤我並沒有提到我早先的問題。

感謝, 尼爾斯

+1

嘗試將'xsi:SchemaLocation'更改爲'xsi:schemaLocation'。這是一個錯誤,但我不確定這是否全部。 – lexicore 2014-12-04 22:21:29

+1

建議您更改@lexicore之後,您應該全部設置。 (發現這裏就是這種情況。)讓我們知道你是否有其他麻煩。 – kjhughes 2014-12-04 22:41:14

+0

我已經實施了@lexicore建議的更改,它的工作原理!很容易錯過這樣的錯誤。謝謝,希望這對其他用戶有用。 – 2014-12-05 08:10:08

回答

1

嘗試改變xsi:SchemaLocationxsi:schemaLocation

相關問題