Question

J'ai un schéma que j'ai « aplati » en utilisant XML Editor. Après i aplatissez-je obtenir une erreur de validation. Que puis-je faire pour y remédier?

Message d'erreur:

F [Xerces] Élément ou attribut ne le font pas adapter la production QName: QName :: = (NCName ':')?. NCName

code:

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

Voici une capture d'écran qui pourrait mieux illustrer mon erreur: entrer image description ici

EDIT:

Supprimer le côlon en quelque sorte. Quoi exactement que cela « aplanissant » censé faire?

L'aplatissement de la XSD prend une XSD avec beaucoup de comprend et met tout en un seul fichier (sans Includes).

Était-ce utile?

La solution

xmlns:= est une syntaxe incorrecte. Le côlon est supplémentaire ou le préfixe d'espace de noms après les deux points est manquant. La syntaxe correcte serait xmlns="http://some.uri" ou xmlns:something="http://some.uri"

Notez que vous avez 2 côlons non nécessaires: première ligne 1002 (où la flèche rouge pointe) et le second est sur la ligne 1003. Cela donne une indication qu'il pourrait y avoir être encore plus d'entre eux.

« QName » fait référence à « nom qualifié » et « NCName » fait référence à « nom non colonisée ». Nom non colonisé est un nom XML qui ne contient pas de caractère deux-points (:). nom qualifié est soit un nom non colonisé ou une combinaison de deux noms de non colonisé séparés par deux points. Par exemple, "abc: DEFGH". La partie avant que le colon est appelé le préfixe d'espace de noms et la partie après le côlon est appelé le nom local. Si un nom qualifié a un préfixe d'espace de noms, puis ce préfixe doit être lié à un espace de noms URI avec une déclaration d'espace de noms préfixée, par exemple xmlns:abc="http://some.uri".

Autres conseils

Dans le cas où il est utile à quelqu'un d'autre, je suis le même message d'erreur et rendu compte que ce qui était à l'origine était le côlon dans l'URI espace de noms, par exemple « http: // tout". J'avais concaténer l'espace de noms URI aux ressources et aux propriétés directement plutôt que d'enregistrer l'espace de noms comme un symbole, donc une ressource ou une propriété pourrait ressembler à « http://hl7.org/fhir/:Observation "qui a bien sûr deux et donc ne côlons suit pas la" QName :: = (NCName ':')? NCName "format de production.

Je l'ai fixé d'abord l'enregistrement de l'espace de noms avec le modèle:

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

et puis préfixer l'espace de noms dans mes ressources et propriétés:

Resource root = model.getResource("fhir:Patient");
root.addProperty(model.createProperty("fhir:Patient.identifier"), patient.identifier);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top