Tôi tạo ra XSD sau (với Eclipse):Lỗi xác thực XSD: Phần tử '{http://www.example.com} Phạm vi': Phần tử này không được mong đợi. Dự kiến là (Scope)
<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="http://www.example.com" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.example.com">
<element name="Make">
<complexType>
<sequence>
<element name="Scope"></element>
</sequence>
</complexType>
</element>
</schema>
và xác nhận với XML này đơn giản
<?xml version="1.0"?>
<Make xmlns="http://www.example.com">
<Scope>
</Scope>
</Make>
cho:
xmllint.exe --noout --schema sources.xsd sources.xml
sources.xml:3: element Scope: Schemas validity error : Element '{http://www.example.com}Scope': This element is not expected. Expected is (Scope).
sources.xml fails to validate
Theo tôi, Điều này phải là chính xác: tệp XML nằm trong không gian tên http://www.example.com (điều gì cũng là trình xác thực cho biết) .
Và đối với XSD, tôi đặt không gian tên mặc định thành lược đồ XSD (đây là những gì Eclipse làm, vì vậy nó phải chính xác!) Và tôi cung cấp cho targetNamespace chính xác. Tôi cũng đã cố gắng sử dụng
<element name="tnd:Scope" />
Tuy nhiên, điều này cũng không có tác dụng.
Đây có phải là lỗi trong xmllint hoặc vấn đề ở đâu?
Trân divB
Typo? 'tnd: Scope' sẽ là' tns: Scope' – Filburt