Erro de validação XSD: elemento '{http://www.example.com} escopo': este elemento não é esperado. Esperado é (escopo)
Eu criei o seguinte XSD (com o Eclipse):
<code> <?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> </code>
e validando com este XML simples
<code> <?xml version="1.0"?> <Make xmlns="http://www.example.com"> <Scope> </Scope> </Make> </code>
dá:
<code> 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 </code>
Na minha opinião, issodevo estar correto: o arquivo XML está no namespacehttp://www.example.com (o que também o validador diz).
E para o XSD, defino o namespace padrão para o esquema XSD (isso é o que o Eclipse faz, portanto, deve estar correto!) E forneço o targetNamespace correto. Eu também tentei usar
<code><element name="tnd:Scope" /> </code>
No entanto, isso não funciona também.
Isso é um bug no xmllint ou onde está o problema?
Atenciosamente divB