Frage

Ich habe ein Schema, das ich mit XML Editor "abgeflacht" habe. Nachdem ich es abgeflacht habe, bekomme ich einen Validierungsfehler. Was kann ich tun, um es zu beheben?

Fehlermeldung:

F [Xerces] Element oder Attribut nicht übereinstimmen QNAME -Produktion: 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>

Hier ist ein Screenshot, der meinen Fehler besser veranschaulichen könnte:enter image description here

BEARBEITEN:

Entfernen Sie den Dickdarm irgendwie. Was genau soll das "Abflachende" tun?

Die Abflachung des XSD nimmt eine xsd Mit vielen Einflüssen und Einfügen alles in eine Datei (ohne Include).

War es hilfreich?

Lösung

xmlns:= ist ungültige Syntax. Der Dickdarm ist extra oder der Namespace -Präfix, nachdem der Dickdarm fehlt. Richtige Syntax wäre xmlns="http://some.uri" oder xmlns:something="http://some.uri"

Beachten Sie, dass Sie haben 2 Un benötigte Kolons: Erster online 1002 (wo der rote Pfeil zeigt) und der zweite ist in der Zeile 1003. Dies gibt einen Hinweis darauf, dass es noch mehr von ihnen geben könnte.

"Qname" bezieht sich auf "qualifizierter Name" und "ncname" bezieht sich auf "nicht kolonisierten Namen". Der nicht kolonisierte Name ist ein XML-Name, der kein Dickdarmcharakter enthält (:). Der qualifizierte Name ist entweder ein nicht kolonisierter Name oder eine Kombination aus zwei nicht kolonisierten Namen, die mit einem Dickdarm getrennt sind. Zum Beispiel "ABC: Defgh". Der Teil vor dem Dickdarm wird als Namespace -Präfix bezeichnet und der Teil nach dem Dickdarm wird als lokaler Name bezeichnet. Wenn ein qualifizierter Name ein Namespace -Präfix hat, dann dieses Präfix muss Seien Sie beispielsweise an einen Namespace-URI mit einer vorangestellten Namespace-Deklaration xmlns:abc="http://some.uri".

Andere Tipps

Für den Fall, dass es für andere hilfreich ist, habe ich die gleiche Fehlermeldung erhalten und erkannte, dass das, was es verursachte, der Dickdarm im Namespace -Uri, dh ", der Dickdarm war".http: // was auch immer". Ich hatte den Namespace URI zu den Ressourcen und Eigenschaften direkt verkettet, anstatt den Namespace als Symbol zu registrieren, sodass eine Ressource oder eine Eigenschaft so aussieht."http://hl7.org/fhir/:observation"Welches hat natürlich zwei Kolons und folgt daher nicht dem Produktionsformat" qname :: = (ncname ':')? NcName ".

Ich habe es behoben, indem ich zuerst den Namespace mit dem Modell registriert habe:

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

und dann den Namespace in meinen Ressourcen und Eigenschaften vorbereiten:

Resource root = model.getResource("fhir:Patient");
root.addProperty(model.createProperty("fhir:Patient.identifier"), patient.identifier);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top