XML-Schemavalidierung (Conversion)
Zusammenfassung
Verwendet die XML-Software von .NET Framework 3.5, um die Metadaten eines ArcGIS-Elements oder eine beliebige XML-Datei zu überprüfen. Die XML-Daten werden daraufhin überprüft, ob sie die Struktur- und Inhaltsregeln eines XML-Schemas einhalten. In Verbindung mit diesem Werkzeug können Sie per DTD (Document Type Definition) oder W3C-XML-Schema-Sprache geschriebene Schemas verwenden.
ArcGIS-Metadaten sind nicht so formatiert, dass sie anhand eines XML-Schemas direkt überprüft werden können. Andere Metadaten-Geoverarbeitungswerkzeuge können jedoch ArcGIS-Metadaten in XML-Dateien exportieren, die gemäß dem XML-Schema oder der DTD eines Metadatenstandards formatiert wurden. Verwenden Sie dieses Werkzeug, um die exportierte XML-Datei oder eine eigenständige Metadaten-XML-Datei zu überprüfen, die bereits ordnungsgemäß für das XML-Schema eines Metadatenstandards formatiert ist.
Falls die Metadaten oder die XML-Datei für das angegebene XML-Schema oder die DTD nicht gültig sind, werden von der XML-Software zurückgegebene Warnungen oder Fehler in den Meldungen des Werkzeugs angezeigt.
Verwendung
Bei einigen XML-Schemas ist es erforderlich, den zu überprüfenden XML-Namespace anzugeben, während dies bei anderen nicht nötig ist. Wenn für den Parameter "Namespace-URI" ein Wert angegeben wird, dies jedoch nicht erforderlich ist, beziehen sich alle Warnungen oder Fehler auf die nicht erfolgreiche Suche nach den korrekten Informationen im XML-Schema und geben nicht an, ob das XML-Dokument gültig ist oder nicht.
Beispiel: Wenn Sie mit dem XML-Schema http://www.fgdc.gov/schemas/metadata/fgdc-std-001-1998.xsd ein XML-Dokument überprüfen möchten, das dem Federal Geographic Data Committee (FGDC) Content Standard for Digital Geospatial Metadata (CSDGM) entspricht, sollten Sie für den Parameter "Namespace-URI" keinen Wert angeben.
Bei der Überprüfung eines XML-Dokuments mit einer DTD (Document Type Definition) muss der Name des Elements, das überprüft wird, im Parameter "Namespace-URI" angegeben werden. Beispiel: Wenn einem XML-Dokument, das auf eine externe DTD verweist, eine DOCTYPE-Deklaration hinzugefügt wird, sieht die Syntax wie folgt aus: <!DOCTYPE metadata SYSTEM "http://www.fgdc.gov/schemas/metadata/fgdc-std-001-1998.dtd">. Um ein XML-Dokument mit derselben externen DTD mit diesem Werkzeug zu überprüfen, sollten Sie den Wert http://www.fgdc.gov/schemas/metadata/fgdc-std-001-1998.dtd für den Parameter "Schema-URL" angeben. Geben Sie den Namen des Stammelements im XML-Dokument im Parameter "Namespace-URI" ein: metadata. Der Inhalt des Stammelements wird überprüft.
Wenn das XML-Dokument, das überprüft wird, einen eingebetteten Verweis auf ein externes XML-Schema oder eine XML-DTD enthält, wird dieses Schema nicht zur Validierung verwendet. Das Schema sowie der Namespace oder das Stammelement für die Validierung müssen explizit in den Parametern "Schema-URL" und "Namespace-URI" dieses Werkzeugs angegeben werden.
Die Meldung Schema hinzufügen... gibt an, dass das Schema geladen wird. Alle im Schema gefundenen Fehler oder Warnungen werden hier gemeldet.
Die Meldung Dokument wird gelesen... gibt an, wann die Validierung der Metadaten- oder XML-Datei beginnt. Alle in der Metadaten- oder XML-Datei gefundenen Fehler oder Warnungen werden hier gemeldet.
Wenn Sie Metadaten-XML-Dateien haben, die formatiert wurden, um dem ISO 19139-Metadatenstandard zu entsprechen, Geographic information — Metadata — XML schema implementation, und falls Sie diese anhand der Version 2005 des XML-Schemas für diesen Standard überprüfen, meldet das Werkzeug ein Problem mit den XML-Schemadateien. Diese Warnung wird nur von der .NET Framework 3.5-XML-Software ausgegeben und wie folgt in den Meldungen des Werkzeugs angezeigt: validation warning (423:8): Empty choice cannot be satisfied if 'minOccurs' is not equal to 0. Die Warnung gibt an, dass ein Problem mit dem 8. Zeichen in Zeile 423 vorliegt (im XML-Schema "coverage.xsd"). Andere XML-Parser melden bei den gleichen XML-Schemas keine Probleme.
-
Der Parameter Metadatenquelle verfügt über einen komplexen Datentyp. Wenn Sie dieses Werkzeug in einem Modell verwenden, erstellen Sie für den Parameter Metadatenquelle in ModelBuilder eine Variable, indem Sie mit der rechten Maustaste auf das Werkzeug klicken und Variable erstellen > Aus Parameter > Metadatenquelle wählen.
-
Beim Verwenden dieses Werkzeugs in ModelBuilder wird der Parameter Ausgabe-Metadaten vom Parameter Metadatenquelle abgeleitet.
Syntax
Parameter | Erläuterung | Datentyp |
source |
Das Element, dessen Metadaten überprüft werden sollen, oder eine eigenständige XML-Datei, die überprüft werden soll. | Data Element; Layer |
schemaurl |
Das XML-Schema oder die XML-DTD, das bzw. die die Struktur und den Inhalt eines gültigen XML-Dokuments beschreibt. | String |
nsuri (optional) |
Der XML-Namespace, der für ein XML-Schema überprüft wird, oder das Stammelement des Dokuments für eine XML-DTD. Wenn dieser Wert für das verwendete XML-Schema ungeeignet ist, geben Sie statt eines Namespace-URIs ein Rautenzeichen (#) an. | String |
Codebeispiel
Überprüft mithilfe des online verfügbaren XML-Schemas ISO 19139 eine eigenständige XML-Datei, die nach ISO 19139 formatierte Metadaten enthält. Bei diesen XML-Schemas ist es erforderlich, den zu überprüfenden XML-Namespace anzugeben.
import arcpy
from arcpy import env
env.workspace = "C:/data"
#set local variables
schema = "http://www.isotc211.org/schemas/2005/gmd/metadataEntity.xsd"
namespace = "http://www.isotc211.org/2005/gmd"
arcpy.XMLSchemaValidator_conversion("metadata_19139.xml", schema, namespace)
Überprüft mithilfe einer lokalen Kopie der FGDC-XML-Schema-Dateien eine eigenständige XML-Datei, die nach FGDC CSDGM formatierte Metadaten enthält. Sie können diese Dateien von der Website der FGDC-Metadatenstandards herunterladen. Bei diesen XML-Schemas ist es nicht erforderlich, den zu überprüfenden XML-Namespace anzugeben.
import arcpy
from arcpy import env
env.workspace = "C:/data"
#set local variables
schema = "c:/metadata/FGDCxsd/non-annotated/fgdc-std-001-1998.xsd"
arcpy.XMLSchemaValidator_conversion("metadata_fgdc.xml", schema, "#")