2012-11-09 27 views
22

Tôi đang cố gắng xác thực xml thực sự đơn giản bằng xsd, nhưng vì một lý do nào đó tôi nhận được lỗi này. Tôi thực sự sẽ đánh giá cao nếu ai đó có thể giải thích cho tôi lý do.cvc-elt.1: Không thể tìm thấy phần khai báo của phần tử 'MyElement'

XML File

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

XSD file

<?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 Thông báo lỗi là tiêu đề của bài đăng :) –

Trả lời

21

schema của bạn là dành cho namespace mục tiêu của nó http://www.example.org/Test nên nó định nghĩa một phần tử với tên MyElement trong đó mục tiêu namespace http://www.example.org/Test. Tuy nhiên tài liệu cá thể của bạn có phần tử có tên MyElement trong không có không gian tên. Đó là lý do tại sao trình phân tích cú pháp xác thực cho bạn biết nó không thể tìm thấy một khai báo cho phần tử đó, bạn chưa cung cấp một lược đồ cho các phần tử không có vùng tên.

Bạn cần thay đổi giản đồ để không sử dụng không gian tên đích hoặc bạn cần thay đổi cá thể để sử dụng ví dụ: <MyElement xmlns="http://www.example.org/Test">A</MyElement>.