Pregunta

Tengo un esquema que he "aplastado" usando el editor XML. Después de aplanarlo, recibo un error de validación. ¿Que puedo hacer para arreglarlo?

Mensaje de error:

F [Xerces] Elemento o atributo No coincida con QName Production: Qname :: = (NCName ':')? NCNAME.

código:

<xs:import namespace="http://www.opengis.net/gml"
    schemaLocation="http://schemas.opengis.net/gml/3.1.1/base/gml.xsd"
    xmlns:="http://www.opengis.net/gml/3.1.1" />
<xs:annotation xmlns:="http://www.opengis.net/sps/1.0">
    <xs:documentation>
        <copyright>                 SPS is an OGC Standard.                 Copyright (c)
            2007,2010 Open Geospatial Consortium, Inc. All Rights Reserved.                 To
            obtain additional rights of use, visit http://www.opengeospatial.org/legal/ .
        </copyright>
    </xs:documentation>
</xs:annotation>

Aquí hay una captura de pantalla que podría ilustrar mejor mi error:enter image description here

EDITAR:

Retire el colon de alguna manera. ¿Qué se supone que debe hacer este "aplanador" exactamente?

El aplanamiento del XSD toma un XSD con muchas incluyas y lo pone todo en un archivo (sin ningún incluido).

¿Fue útil?

Solución

xmlns:= es sintaxis no válida. El colon es extra o el prefijo de espacio de nombres después de que falta el colon. La sintaxis correcta sería xmlns="http://some.uri" o xmlns:something="http://some.uri"

Tenga en cuenta que tiene 2 COLONAS DE NECESITADO: Primero en la línea 1002 (donde apunta la flecha roja) y la segunda está en la línea 1003. Esto da una pista de que puede haber aún más de ellos.

"Qname" se refiere al "nombre calificado" y "ncname" se refiere al "nombre no colonizado". El nombre no colonizado es un nombre XML que no contiene un carácter de colon (:). El nombre calificado es un nombre no colonizado o una combinación de dos nombres no colonizados separados con un colon. Por ejemplo, "ABC: Defgh". La parte anterior al colon se llama prefijo de espacio de nombres y la parte después de que el colon se llama nombre local. Si un nombre calificado tiene un prefijo de espacio de nombres, entonces ese prefijo deber estar vinculado a un espacio de nombres con una declaración de espacio de nombres prefijada, por ejemplo xmlns:abc="http://some.uri".

Otros consejos

En caso de que sea útil para cualquier otra persona, recibí el mismo mensaje de error y me di cuenta de que lo que lo estaba causando era el colon en el espacio de nombres Uri, es decir, "http: // lo que sea". Había estado concatenando el URI del espacio de nombres a los recursos y propiedades directamente en lugar de registrar el espacio de nombres como símbolo, por lo que un recurso o una propiedad podría parecerse"http://hl7.org/fhir/:observation", ¿Qué, por supuesto, tiene dos colons y, por lo tanto, no sigue el formato de producción" Qname :: = (NCName ':')? NCName ".

Lo arreglé primero registrando el espacio de nombres con el modelo:

model.setNsPrefix("fhir","http://hl7.org/fhir/");

y luego preparando el espacio de nombres en mis recursos y propiedades:

Resource root = model.getResource("fhir:Patient");
root.addProperty(model.createProperty("fhir:Patient.identifier"), patient.identifier);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top