XSD: ¿Cómo se importa un tipo de datos de otro XSD?
-
01-10-2019 - |
Pregunta
Tengo el siguiente inicio de un XSD:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:no="http://www.sychophants.com">
<xs:import namespace="http://www.sychophants.com" schemaLocation="current_obs.xsd"/>
... y luego algunas otras definiciones ...
<xs:element name="noInDatPletd" ref="no:in_dat"/>
Cuando in_dat existe en un esquema escrito por otra organización. Lo que básicamente quiero hacer a crear un esquema que contendrá un elemento de la in_dat tipo que se define en XSD del otro ogranization.
Am I ni siquiera cerca de tener esto correcto? Soy bastante nuevo a XML.
Sigo recibiendo
http://location_of_my_xsd/temp.xsd:79:9: Invalid: Undefined element
no{http://www.sychophants.com}:in_dat referenced from content model
http://www.w3.org/2001/03/webdata/ XSV , que es un validador de esquema.
Gracias.
editar: Gracias a los dos, que han contestado. El problema parece ser que la otra organización no define un atributo targetNamespace en su esquema. El resultado es que no puedo importar el espacio de nombres en mi esquema, lo que significa que no puedo usar el tipo previsto.
tuve que copiar / pegar el código, que es lo que quería evitar ... pero no se puede tener todo lo que quiere, supongo.
Solución
Veo un solo error evidente: se utiliza para hacer referencia a ref="no:in_dat"
un tipo. Debe utilizar type="no:in_dat"
allí. ref
haría referencia a un elemento global (y no debe ser utilizado junto con el
atributo name
).
Aparte de eso, ¿ha pasado el esquema externo al validador al lado de su propio esquema? Por supuesto, es necesaria para validar con su esquema.
Otros consejos
Además de cambiar ref = type = , su aspecto de definición de esquema correcto. Desde el mensaje de error, supongo que el validador de esquema no es capaz de cargar el current_obs.xsd en la schemaLocation proporcionado, lo cual tendría sentido. El validador no tendría forma de verificar si hay un tipo llamado in_dat ya que no pudo importar el esquema.