2017-01-30 3 views
2

Ich möchte die von ArcGIS 10.1 und GoogleEarthPRO (GE) generierte KML-Datei als zusätzliche Daten für meine Arbeit in Elsevier einreichen.Debug KML: Namespacepräfix xsi für schemaLocation am Dokument ist nicht definiert

Allerdings schrieb mir der Reviewer: "Hier ist ein Fehler im Präfix" xsi "für das Attribut" xsi: schemaLocation ".

Wenn ich die einfache Validierung von KML-Datei versucht, durch Erweiterung .xml Add- und Drop-Chrome (nach: http://kml4earth.appspot.com/kmlBestPractice.html), habe ich einen Fehler bekam:

error on line 3 at column 217: Namespace prefix xsi for schemaLocation 
on Document is not defined 

ich die KML von ArcGIS generiert 10.1 (shp to KML, Werkzeug: Layer To KML), welches die gezippte .kmz-Datei erzeugte. Ich habe die .kmz-Datei in GoogleEarthPRO geöffnet und meinen Platz erneut als .kml-Datei gespeichert. Offensichtlich funktioniert die .kml-Datei gut, da ich die Datei in GE öffnen und sie zwischen PC teilen kann.

enter image description here

Ich habe auch versucht die KMLvalidator hier: http://www.kmlvalidator.org/validate.htm mit Fehler:

File upload request was rejected. (/data/tomcat/base-kml-validator/temp/upload_2a88fa18_1591832a38f__7fff_00001631.tmp (No such file or directory)). 

Ich verstehe nicht, warum meine .kml Datei scheint in GoogleEarthPRO auf mehreren PCs zu funktionieren, aber es scheint enthält den Fehler in xsi for schemaLocation? Die wichtigste, was ist der einfachste Weg, um es zu beheben?

Ich bin nicht vertraut mit Scripting der KML-Code, ich bin nur ein Anfänger und Benutzer von GE. Bitte, wie kann ich meine SchemaLocation einfach reparieren?

Datei zum Download: https://www.dropbox.com/s/azmc6m1ksvtau7o/high_tatra_mts.kml?dl=0

Vielen Dank!

Antwort

2

Google Earth ignoriert im Allgemeinen Namespaces und XML-Elemente, die nicht bekannt sind, sodass eine KML-Datei, die eine ungültige XML-Datei enthält, möglicherweise noch in Google Earth angezeigt werden kann. Um die Fehlerprüfung in Google Earth zu aktivieren, öffnen Sie Extras/Optionen/Allgemein und aktivieren Sie die Option "Eingabeaufforderungen für alle Fehler anzeigen" und öffnen Sie dann Ihre KML-Datei.

Wenn in Ihrer KML-Datei ein Namespace-Fehler auftritt, müssen Sie ihn in der KML-Datei deklarieren - normalerweise im Stammelement. Hier

ist der Header einer gültigen KML-Datei:

<?xml version="1.0" encoding="UTF-8"?> 
<kml xmlns="http://www.opengis.net/kml/2.2" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
... 
</kml> 

Beachten Sie, dass Google Earth nicht ungültig Namespace Referenzen in Ihrer KML beheben, so dass diese in einem Texteditor festgelegt werden müssen und von außen auf Google Earth validiert.

In Ihrem speziellen Beispiel die xsi Erklärung und schema Elemente sind nicht erforderlich, so sollten Sie Ihre KML sein:

<kml xmlns="http://www.opengis.net/kml/2.2"> 
.. 
</kml> 
+0

you @ JasonM1 danken. Bitte, wo in meinem Code sollte ich die xmlns einfügen: xsi = "http://www.w3.org/2001/XMLSchema-instance">? ist .kml Einrückung und Speicherplatz spezifisch? Gibt es eine Möglichkeit, eine korrekte .kml-Datei von GE zu speichern, ohne meine manuelle Anpassung der Codierung vornehmen zu müssen? – maycca

+0

GE wird Namespaces in Ihrer KML nicht hinzufügen/reparieren. Ungebundene Namespaces bleiben bestehen. Muss im Texteditor geöffnet werden und manuell hinzufügen und dann außerhalb von GE validieren. – JasonM1

+0

Bitte, welchen Teil eines Codes sollte ich einfügen und wo in meinem Code? leider habe ich keine erfahrungen mit klm .. bitte, brauche ich nur xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance" in meinem code? Bitte, würde es Ihnen etwas ausmachen, es an der richtigen Stelle in meiner angehängten Datei einzufügen? – maycca

Verwandte Themen