validate - xml validator xsd
src-resolve: no se puede resolver el nombre ''ds: Signature'' en un componente ''element declaration'' (2)
Si tiene xmldsig-core-schema.xsd
en el mismo directorio que su XSD, y si es el mismo que este XSD , entonces no debería recibir un error sobre la falla al resolver ds:Signature
.
Por lo tanto, sospecho que su importación está fallando, y está perdiendo o ignorando una advertencia como la siguiente:
[Advertencia] try.xsd: 9: 56: schema_reference.4: Error al leer el documento de esquema ''xmldsig-core-schema.xsd'', porque 1) no pudo encontrar el documento; 2) el documento no pudo ser leído; 3) el elemento raíz del documento no es
<xsd:schema>
.
Prueba este XSD como una prueba; se carga directamente desde la URL para xmldsig-core-schema.xsd
:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
xmlns:abc="http://abc.123.com"
targetNamespace="http://abc.123.com"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:import namespace="http://www.w3.org/2000/09/xmldsig#"
schemaLocation="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd"/>
<xs:complexType name="headerType">
<xs:sequence>
<xs:element name="doorNumber" type="xs:int"/>
<xs:element ref="ds:Signature"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
Probé el XSD anterior y descubrí que elimina el error de resolución que estabas viendo.
Quiero hacer la validación de esquema usando un archivo XSD. Cuando importo el archivo XSD a Eclipse, sin ejecutar la clase de validación, aparece el siguiente error:
src-resolve: no se puede resolver el nombre ''ds: Signature'' en un componente ''element declaration''
Soy un poco nuevo en el proceso de validación XML vs XSD. Aunque he buscado preguntas similares en google, no pude entender qué sucede aquí.
El archivo XSD es el siguiente:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xerces="http://xerces.apache.org"
xmlns:xades="http://uri.etsi.org/01903/v1.3.2#" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
xmlns:abc="http://abc.123.com" targetNamespace="http://abc.123.com"
xmlns:xades141="http://uri.etsi.org/01903/v1.4.1#" elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:import namespace="http://uri.etsi.org/01903/v1.3.2#" schemaLocation="XAdES.xsd"/>
<xs:import namespace="http://uri.etsi.org/01903/v1.4.1#" schemaLocation="XAdESv141.xsd"/>
<xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd"/>
<xs:complexType name="headerType">
<xs:sequence>
<xs:element name="doorNumber" type="xs:int"/>
<xs:element ref="ds:Signature"/>
</xs:sequence>
</xs:complexType>
¿Cómo debo modificar el XSD para corregir este error?
Como alternativa, puede almacenar en caché localmente el xmldsig-core-schema.xsd
, colocarlo en el mismo directorio de su esquema xsd, y luego dejar su original
<xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd"/>
Esto resolverá su problema de importar un archivo del sitio web de W3C y ahorrará tiempo de ejecución.