XSLT-Transformation (Conversion)
Zusammenfassung
Verwendet die XML-Software von .NET 3.5, um die Metadaten eines ArcGIS-Elements oder eine beliebige XML-Datei mithilfe eines XSLT 1.0-Stylesheets zu transformieren und das Ergebnis in einer XML-Datei zu speichern.
Sie können XSLT-Stylesheets verwenden, um an ArcGIS-Metadaten oder einer XML-Datei verschiedene Änderungen vorzunehmen. Im Lieferumfang von ArcGIS sind mehrere XSLT-Stylesheets enthalten. Einige davon transformieren Metadaten für die Anzeige in HTML-Seiten. Andere werden von den Geoverarbeitungswerkzeugen des Metadatenmodells verwendet, um Teile der Import-, Export- und Aktualisierungsvorgänge für Metadaten-Prozesse durchzuführen oder um bekannte Metadaten-Tasks auszuführen. Die Stylesheets befinden sich im Ordner <ArcGIS-Installationsverzeichnis>\Metadata\Stylesheets.
Sie können eigene XSLT-Stylesheets erstellen, um Tasks auszuführen, indem Sie die bereitgestellten Stylesheets als Beispiele verwenden. Beispielsweise können Sie Stylesheets für folgende Tasks schreiben:
- Aktualisieren von Adressen oder Telefonnummern. Erstellen Sie ein Modell, das diesen Prozess ausführt, und verwenden Sie dann das Werkzeug Metadatenimport, um die aktualisierten Metadaten unter dem ursprünglichen ArcGIS-Element zu speichern.
- Entfernen von Informationen, die nicht öffentlich verfügbar sein sollen, vor dem Exportieren oder Veröffentlichen der Metadaten. Erstellen Sie ein Modell, das diesen Prozess ausführt, bevor die Werkzeuge Metadaten exportieren oder Metadaten-Publisher ausgeführt werden.
- Erstellen einer HTML-Seite zum Anzeigen von Informationen zu einem ArcGIS-Element als Teil einer Website. Verwenden Sie das Stylesheet ArcGIS.xsl zum Anzeigen von Metadaten in ArcGIS, oder schreiben Sie ein eigenes Stylesheet.
XSLT-Stylesheets, die ArcGIS-Metadaten ändern, sollten keine Informationen aus den Metadatenelementen "Esri" und "Binary" entfernen, es sei denn, die XML-Ausgabedaten werden außerhalb von ArcGIS verwendet.
Verwendung
-
Die von einem XSLT-Stylesheet erzeugte Ausgabedatei kann z. B. als XML-, HTML- oder Textdatei formatiert werden. Der Standardname der Ausgabedatei, der von diesem Werkzeug vergeben wird, hat die Dateierweiterung .xml. Falls das verwendete XSLT-Stylesheet keine XML-Datei erzeugt, sollten Sie einen Dateinamen mit der jeweils passenden Dateierweiterung angeben.
Dieses Werkzeug kann die Metadaten eines ArcGIS-Elements oder eine eigenständige Metadaten-XML-Datei nicht mit den XSL-Stylesheets verarbeiten, die von ArcGIS Desktop 9.3.1 und älteren Versionen bereitgestellt werden, da sie keine XSLT 1.0-Technologie verwenden. Sie verwenden eine ältere Technologie, die von .NET Framework 3.5 nicht unterstützt wird. Außerdem können diese XSL-Stylesheets nicht mit dem ArcGIS-Metadateneditor verwendet werden.
-
Der XSLT-Parameter kann verwendet werden, um eine Zeichenfolge oder einen XML-Dateinamen an ein XSLT-Stylesheet zu übergeben, das damit dann die Metadaten eines Elements ändern kann. Ein XSLT-Stylesheet kann z. B. eine als Zeichenfolge übergebene Telefonnummer zum Aktualisieren aller Telefonnummern in den Metadaten verwenden. Falls zusammen mit diesem Parameter eine XML-Datei übergeben wird, kann ein XSLT-Stylesheet die darin enthaltenen Informationen mit den Quellmetadaten zusammenführen.
In der im Lieferumfang von ArcGIS enthaltenen Datei add unique identifier.xslt finden Sie ein Beispiel für das Übergeben eines Wertes, und in der Datei merge upgraded FGDC with existing.xslt finden Sie ein Beispiel für das Zusammenführen von Informationen in einer separaten XML-Datei mit den Metadaten eines ArcGIS-Elements.
Falls Sie ein benutzerdefiniertes XSLT-Stylesheet erstellen möchten, um Metadaten oder XML-Dateien in ArcGIS anzuzeigen oder zu exportieren, können Sie die Informationen in der Microsoft-Dokumentation zu .NET 3.5 Framework verwenden. Dort finden Sie eine vollständige Liste der unterstützten XSLT- und XPath-Elemente sowie der Funktionen und Syntax. Dies sind die einzigen Funktionen, die zusammen mit diesem Werkzeug und im ArcGIS-Metadateneditor verwendet werden können.
Falls Sie Ihr benutzerdefiniertes Stylesheet sowohl innerhalb als auch außerhalb von ArcGIS verwenden möchten, erzielen Sie die besten Ergebnisse, wenn Sie sich auf die Verwendung von XSLT 1.0- und XPath 1.0-Elemente, -Funktionen und -Syntax beschränken. Es ist eher unwahrscheinlich, dass andere Anwendungen als Microsoft-Anwendungen die Microsoft-spezifischen Funktionen, XSLT-Funktionen und XPath-Funktionen unterstützen.
Für XSLT-Stylesheets, die ausschließlich mit diesem Geoverarbeitungswerkzeug und dem ArcGIS-Metadateneditor verwendet werden, können einige benutzerdefinierte XSLT-Funktionen von ArcGIS genutzt werden, um die Verarbeitung und Anzeige von Metadaten zu verbessern. Um diese Funktionen verwenden zu können, muss das XSLT-Stylesheet auf den Namespace-URI der ESRI XSLT-Funktion (http://www.esri.com/metadata/) verweisen. Beispiel: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:esri="http://www.esri.com/metadata/">.
Den ArcGIS-XSLT-Funktionen muss das Präfix vorangestellt werden, das dem Namespace der ESRI XSLT-Funktion zugewiesen ist. Wenn dem Namespace der ESRI XSLT-Funktion wie im obigen Beispiel das Präfix esri zugewiesen ist, wird die Funktion "GuidGen()" wie folgt verwendet: <xsl:value-of select="esri:GuidGen()" />.
- GuidGen(): Gibt einen neuen Wert vom Typ Globally Unique Identifier (GUID) ohne Klammern ({ und }) zurück. Beispielsweise kann eine GUID in die Metadaten eingebunden werden, um das Metadatendokument oder die damit beschriebene Ressource eindeutig zu identifizieren. Ein ArcGIS-Beispiel hierzu finden Sie in der Datei add unique identifier.xslt.
- strtoupper(): Ändert die Eingabetextzeichenfolge so, dass sie nur Großbuchstaben enthält. Ein ArcGIS-Beispiel hierzu finden Sie in der Datei add unique identifier.xslt.
- strtolower(): Ändert die Eingabetextzeichenfolge so, dass sie nur Kleinbuchstaben enthält.
- striphtml(): Wenn ein XML-Element mit Escapezeichen versehene HTML-Daten enthält, gibt diese Funktion den darin enthaltenen Text ohne HTML-Markup zurück. Ein ArcGIS-Beispiel hierzu finden Sie in der Datei ESRIISO2.xslt.
- decodenodeset(): Wenn ein XML-Element mit Escapezeichen versehene XHTML- oder XML-Daten enthält, gibt diese Funktion in Kombination mit der Funktion "msxsl:node-set" eine Knotengruppe zurück, mit der die einzelnen Elemente verarbeitet werden können, die zuvor mit Escapezeichen versehen wurden. Ein ArcGIS-Beispiel hierzu finden Sie in der Datei ESRIISO2.xslt.
-
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.
-
Wenn ein ArcGIS-Element über Metadaten verfügt, die unter ArcGIS Desktop 9.3.1 oder älter mit dem FGDC-Metadateneditor oder in der aktuellen ArcGIS Desktop-Version mit dem FGDC-Metadateneditor-Add-In erstellt wurden, und wenn die Metadaten des Elements auf ArcGIS-Metadaten aktualisiert wurden, enthalten die ArcGIS-Metadaten weiterhin die ursprünglichen FGDC-Metadaten-XML-Elemente. Die Metadaten enthalten auch andere ArcGIS-Metadatenelemente.
Sie können die ursprünglichen FGDC-Metadatenelemente exportieren, indem Sie dieses Werkzeug mit der Datei _MPXML2.xsl von ArcGIS verwenden. Im obigen Beispiel exportiert diese Datei nur die ursprünglichen FGDC-Metadaten des Elements, also die Informationen, die auf der Registerkarte Beschreibung im Abschnitt mit den FGDC-Metadaten angezeigt werden. Die FGDC-Elemente haben in der XML-Ausgabedatei die richtige Reihenfolge.
Die exportierte Datei kann in einem Metadatenkatalog veröffentlicht werden, der Informationen erfordert, die im FGDC CSDGM-XML-Metadatenformat bereitgestellt werden. Die exportierte Datei kann mit dem FGDC-XML-Schema bzw. der DTD oder mit dem USGS-Metadaten-Dienstprogramm (mp) überprüft werden. Der USGS-MP-Metadaten-Konverter führt diesen Vorgang vor dem Verarbeiten der Metadaten intern durch.
-
Metadaten, die im HTML-Format auf einer externen Website veröffentlicht werden, werden von Internet-Suchmaschinen wie Google indiziert, wenn die Website ihren Inhalt ordnungsgemäß verfügbar macht.
Syntax
Parameter | Erläuterung | Datentyp |
source |
Das Element, dessen Metadaten konvertiert werden, oder eine eigenständige XML-Datei, die konvertiert werden soll. | Data Element; Layer |
xslt |
Eine W3C-kompatible XSLT 1.0-Stylesheet-Datei, mit der die durchzuführende Transformation definiert wird. | File |
output |
Eine Datei, die mit den konvertierten Metadaten erstellt wird. Der Typ der erstellten Datei hängt von der Ausgabemethode ab, die im XSLT-Stylesheet angegeben ist. | File |
xsltparam (optional) |
Eine XML-Datei oder eine Zeichenfolge, die an das XSLT-Stylesheet übergeben wird. Um diesen Parameter im XSLT-Stylesheet zu erfassen, fügen Sie am Anfang des XSLT-Stylesheets nach dem "xsl:output"-Element und vor dem ersten "xsl:template"-Element den Code <xsl:param name="gpparam" /> hinzu. Ein Beispiel hierzu finden Sie in der Datei merge upgraded FGDC with existing.xslt. | File; String |
Codebeispiel
Verwendet das XSLT-Stylesheet ArcGIS.xsl von ArcGIS zum Exportieren von Metadaten in eine HTML-Datei in eine Website.
import arcpy from arcpy import env env.workspace = "C:/data" #set local variables dir = arcpy.GetInstallInfo("desktop")["InstallDir"] xslt = dir + "Metadata/Stylesheets/ArcGIS.xsl" arcpy.XSLTransform_conversion("vegetation", xslt, "vegetation.html", "#")