Domanda

Ho uno schema che mi sono "appiattiti" utilizzo di XML Editor.Dopo appiattire lo ricevo un errore di convalida.Cosa posso fare per risolvere il problema?

Messaggio Di Errore:

F [Xerces] Elemento o di un attributo non partita QName di produzione:QName::=(NCName':')?NCName.

codice:

<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>

Ecco uno screenshot che potrebbe illustrare meglio il mio errore:enter image description here

EDIT:

Rimuovere il colon in qualche modo.Che cosa esattamente questo "appiattimento" che deve fare?

L'appiattimento delle xsd prende un xsd con un sacco di comprende e mette tutto in un unico file (senza alcun include).

È stato utile?

Soluzione

xmlns:= è una sintassi non valida.I due punti extra o il prefisso dello spazio dei nomi dopo i due punti mancanti.La sintassi corretta sarebbe xmlns="http://some.uri" o xmlns:something="http://some.uri"

Nota che hai 2 onu necessari due punti:primo sulla linea 1002 (dove la freccia rossa che punta) e la seconda è sulla linea 1003.Questo dà un suggerimento che ci potrebbe essere anche più di loro.

"QName" si riferisce alla "nome completo" e "NCName" si riferisce a "non colonizzato nome".Non colonizzato nome è un nome XML che non contiene un carattere due punti (:).Nome completo è un non-colonizzato il nome o la combinazione di due non colonizzato nomi separati da due punti.Per esempio "abc:defgh".La parte prima del colon è chiamato il prefisso dello spazio dei nomi e la parte dopo i due punti è chiamato con il nome locale.Se un nome completo, ha un prefisso dello spazio dei nomi, poi il prefisso deve essere associato a un namespace URI con un prefisso dichiarazione dello spazio dei nomi, per esempio xmlns:abc="http://some.uri".

Altri suggerimenti

Nel caso In cui è utile a nessuno, ho avuto lo stesso messaggio di errore e si rese conto che cosa stava causando era il colon in URI dello spazio dei nomi, cioè"http://whatever".Mi era stato concatenando l'URI dello spazio dei nomi per le risorse e le proprietà direttamente, piuttosto che la registrazione dei nomi come un simbolo, quindi, una risorsa o una proprietà potrebbe apparire come "http://hl7.org/fhir/:Observation", che ovviamente ha i due punti e, pertanto, non seguire le "QName::=(NCName':')?NCName" produzione formato.

Ho risolto con una prima registrazione dei nomi con il modello:

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

e poi aggiungendo lo spazio dei nomi in le mie risorse e le proprietà:

Resource root = model.getResource("fhir:Patient");
root.addProperty(model.createProperty("fhir:Patient.identifier"), patient.identifier);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top