2012-11-09 48 views
22

我想用xsd來驗證一個非常簡單的xml,但出於某種原因,我得到這個錯誤。 如果有人能解釋我爲什麼,我會非常感激。cvc-elt.1:找不到元素'MyElement'的聲明

XML文件

<?xml version="1.0" encoding="utf-8"?> 
<MyElement>A</MyElement> 

XSD文件

<?xml version="1.0" encoding="UTF-8"?> 
<schema xmlns="http://www.w3.org/2001/XMLSchema" 
     targetNamespace="http://www.example.org/Test" 
     xmlns:tns="http://www.example.org/Test" 
     elementFormDefault="qualified"> 

    <simpleType name="MyType"> 
     <restriction base="string"></restriction> 
    </simpleType> 

    <element name="MyElement" type="tns:MyType"></element> 
</schema> 
+0

@ O.Jones錯誤消息是帖子的標題:) –

回答

21

你的架構是其目標命名空間http://www.example.org/Test所以它定義了在目標命名空間http://www.example.org/TestMyElement的元素。然而,您的實例文檔中有一個名稱爲MyElement的元素,其中沒有名稱空間。這就是爲什麼驗證解析器告訴你它找不到該元素的聲明,你沒有爲沒有名稱空間的元素提供模式。

您可能需要更改模式以根本不使用目標名稱空間,或者您需要更改實例以使用例如<MyElement xmlns="http://www.example.org/Test">A</MyElement>

相關問題