次のXSDを(Eclipseを使用して)作成しました。
<?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>
この単純なXMLで検証します
<?xml version="1.0"?>
<Make xmlns="http://www.example.com">
<Scope>
</Scope>
</Make>
与える:
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
私の意見では、これは正しくなければなりません。XMLファイルは名前空間http://www.example.comにあります(バリデーターも言っています)。
XSDの場合、デフォルトの名前空間をXSDスキーマに設定し(これはEclipseが行うことなので、正しいはずです!)、正しいtargetNamespaceを指定します。私も使ってみました
<element name="tnd:Scope" />
ただし、これも機能しません。
これはxmllintのバグですか、それともどこに問題がありますか?
よろしくdivB