¿Cómo puedo validar XML contra un XSD con importaciones y espacios de nombres distintos?
-
23-10-2019 - |
Pregunta
Estoy tratando de validar algunos archivos XML y estoy fallando debido a varios problemas con la definición XSD y los espacios de nombres ...
Esta es información pública, por lo que no hay problemas para compartir datos: el XSD principal está en http://bioinformatics.ua.pt/euadr/euadr_types.xsd e importa otro XSD en la misma ubicación nombrada común_types.xsd, Los validé en validador W3C y pasaron.
El XML
<?xml version="1.0"?>
<relationship xmlns="http://euadr.biosemantic.erasmusmc.org/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://euadr.biosemantic.erasmusmc.org/ http://bioinformatics.ua.pt/euadr/euadr_types.xsd">
<sourceId>
<source>SMILE</source>
<code>[S]1(=O)(=O)N(C(</code>
</sourceId>
<targetId>
<source>UP</source>
<code>P35354</code>
</targetId>
<creator>http://cgl.imim.es</creator>
<observationDateTime>2010-05-12T19:03:40.097+02:00</observationDateTime>
<informationSources>
<informationSource>
<relationshipType>BINDS</relationshipType>
<interaction>
<type>pIC50</type>
<value>6.55</value>
</interaction>
<evidence>
<type>OBSERVATIONAL</type>
<value>1.0</value>
</evidence>
<databaseIds>
<databaseId>
<source>PDSP</source>
<code>
P35354</code>
</databaseId>
</databaseIds>
</informationSource>
</informationSources>
</relationship>
es sencillo y bien formado! He probado algunos validadores en línea y recibo el siguiente error
cvc-elt.1: Cannot find the declaration of element 'relationship'.
¿Alguien tiene alguna idea de cuál es el problema? ¿Está en la declaración de los espacios de nombres? Del XSD?
¡Gracias de antemano por tu ayuda!
¡Salud!
Solución
Su esquema define un tipo complejo llamado relationship
Pero no define ningún elemento llamado relationship
. Querrás agregar algo como esto a tu primer XSD:
<xs:element name="relationship" type="relationship" />