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 for Desktop sind mehrere XSLT-Stylesheets enthalten. Die Stylesheets befinden sich im Ordner <ArcGIS-Installationsverzeichnis>\Metadata\Stylesheets. Diese Stylesheets werden in den folgenden Tabellen näher beschrieben.
Die folgenden Stylesheets erzeugen die HTML-Dokumente, die verwendet werden, um Informationen zu einem Element auf der Beschreibung anzuzeigen. Sie extrahieren den Inhalt aus den Metadaten des Elements und fügen HTML-Formatierungsbefehle hinzu. Diese Stylesheets importieren viele XSLT-Vorlagen aus anderen Dateien in den Ordner ArcGIS_Imports. Die importierten Vorlagen führen die meiste Arbeit durch. Falls Sie benutzerdefinierte Stylesheets zur Anzeige erstellen möchten, finden Sie weitere Informationen zu diesen Stylesheets in der Dokumentation zum ArcGIS Metadaten-Toolkit.
ArcGIS.xsl | Zeigt den vollständigen Metadateninhalt eines Elements an. Es wird von allen Metadaten-Styles referenziert, mit Ausnahme des Standardstyles "Elementbeschreibung". |
ArcGIS_ItemDescription.xsl | Zeigt eine kurze, präzise Beschreibung des Elements an. Es wird vom Metadaten-Standardstyle "Elementbeschreibung" referenziert. |
Die folgenden Stylesheets, die im Ordner <ArcGIS-Installationsverzeichnis>\Metadata\Stylesheets\gpTools zur Verfügung stehen, nehmen die Metadaten eines Elements, verarbeiten sie und speichern das entstandene XML-Dokument in einer neuen XML-Datei. Das Ziel dieses Vorgangs ist, die Metadaten des Elements zu filtern, bevor sie außerhalb von ArcGIS verwendet werden. Das Ziel kann auch darin bestehen, die Metadaten zu ändern. In diesem Fall wird die entstandene XML-Datei mithilfe des Werkzeugs Metadatenimport wieder in den Metadaten des ursprünglichen Elements gespeichert. Sie können ein Modell oder Skript erstellen, das dieses Werkzeug zuerst mit einem Stylesheet ausführt, um den Metadateninhalt zu aktualisieren, und anschließend die Änderungen wieder im Element speichert. Die folgenden Stylesheets werden mit ArcGIS for Desktop bereitgestellt, um einige gut definierte Metadaten-Tasks auszuführen.
add unique identifier.xslt | Hinzufügen oder Ändern der eindeutigen Kennung, die in den Metadaten des Elements gespeichert ist. Die von diesem Stylesheet geänderte Kennung wird im Esri Metadatenelement "PublishedDocID" gespeichert und dient zur Identifizierung des Dokuments in einem Metadatenkatalog wie ArcIMS-Metadaten-Service oder einem Geoportal. |
exact copy of.xslt | Erstellt eine exakte Kopie der Metadaten des Elements als XML-Datei. Sie können dieses Stylesheet beispielsweise verwenden, um eine Kopie der Metadaten eines Geodatabase-Elements zur Überprüfung in einer lokalen Datei zu speichern. |
generate metadata template.xslt | Kopiert ArcGIS-Metadateninhalte in eine neue XML-Datei, die in andere Elemente wie eine Metadatenvorlage importiert werden kann. Synchronisierte Metadateninhalte werden aus der Vorlage ausgeschlossen, leere Elemente werden entfernt. |
remove empty elements.xslt | Entfernt leere XML-Elemente. Nachdem unerwünschte Metadateninhalte mit anderen Stylesheets entfernt wurden, bleiben leere XML-Elemente zurück. Leere XML-Elemente können zu Problemen führen, wenn Sie später versuchen, die Metadaten eines Elements zu validieren. Wenn ein Element beispielsweise optional aber leer ist, erhalten Sie häufig eine Fehlermeldung, da das Element keinen Wert enthält, wohingegen die Metadaten gültig wären, wenn das leere Element entfernt wird. |
remove entries from FGDC lineage.xslt | Entfernt Bearbeitungsschritte, die zur Herkunft im FGDC-Format von ArcGIS for Desktop 9.3.1 hinzugefügt wurden. Bearbeitungsschritte wurden zur Herkunft im FGDC-Format hinzugefügt, wenn Metadaten in ein Element importiert wurden und das Element an eine neue Position kopiert wurde. Diese Herkunftsinformation wird in der aktuellen Version von ArcGIS nicht mehr zum Element hinzugefügt und wird nicht zusammen mit dem Rest der Elementherkunft auf das ArcGIS-Metadatenformat aktualisiert. |
remove FGDC required hints.xslt | Entfernt Metadatenelemente im FGDC-Format, die den Text REQUIRED enthalten. Dieser Text wurde von ArcGIS for Desktop 9.3.1 hinzugefügt, wenn Metadaten im FGDC-Format erstellt wurden, um anzugeben, welche Metadatenelemente zum Erstellen gültiger FGDC CSDGM-Metadaten erforderlich sind. Diese Textzeichenfolgen können jedoch zu Problemen führen, wenn Sie später versuchen, die Metadaten eines Elements zu validieren. Wenn der Standardtext vorhanden ist, wird das Element als gültig betrachtet, da es Text enthält, selbst wenn der Text keine Informationen zum Element bietet. Standardtextzeichenfolgen werden in der aktuellen Version von ArcGIS nicht hinzugefügt, und diese Textzeichenfolgen werden nicht zusammen mit dem Rest der Metadateninhalte des Elements auf das ArcGIS-Metadatenformat aktualisiert. |
remove geoprocessing history.xslt | Entfernt den Geoverarbeitungsverlauf eines Elements. Während alle Metadaten-Geoverarbeitungswerkzeuge so konzipiert sind, dass sie den Geoverarbeitungsverlauf eines Elements beibehalten, kann dieser Verlauf im Laufe der Zeit so groß werden, dass die Elementmetadaten schwierig als XML-Dokument zu verarbeiten sind. Unter diesen Umständen kann es erforderlich sein, den Geoverarbeitungsverlauf eines Elements zu entfernen. |
remove local storage info.xslt | Entfernt den Computernamen, der eventuell in den Metadaten des Elements vorhanden ist. Je nachdem, wo sich der Computername befindet, kann das Metadatenelement, das die Informationen enthält, entfernt werden, oder der Computername wird aus dem UNC-Pfad entfernt, oder der Wert des Elements wird aktualisiert, um das lokale Verzeichnis als "Zurückgehalten" festzulegen. |
remove pre94 metadata elements.xslt | Entfernt alle XML-Elemente im ESRI-ISO-Format sowie XML-Elemente im FGDC CSDGM-Format aus den Metadaten des Elements, die nicht im ArcGIS-Metadatenformat vorliegen. |
remove synchronized elements.xslt | Entfernt alle Informationen, die vom ArcGIS-Metadaten-Synchronisierungsprozess zu den Metadaten des Elements hinzugefügt wurden. |
remove thumbnail.xslt | Entfernt die Miniaturansicht eines Elements. Während alle Metadaten-Geoverarbeitungswerkzeuge so konzipiert sind, dass die Miniaturansicht eines Elements beibehalten wird, möchten Sie unter Umständen die Miniaturansicht des Elements entfernen. Sie können die Miniaturansicht eines Elements entfernen, indem Sie seine Metadaten auf der Registerkarte "Beschreibung" bearbeiten. Mit diesem Skript können Sie einen Batch-Prozess ausführen, um Miniaturansichten von mehreren Elementen zu entfernen. |
remove unique identifiers.xslt | Entfernt alle eindeutigen Kennungen aus den Metadaten eines Elements, einschließlich aller Kennungen, die von ArcGIS hinzugefügt wurden, sowie Kennungen, die mithilfe eines Metadateneditors bereitgestellt wurden. Kennungen sollten niemals in ein anderes Element kopiert werden. |
_MPXML2.xsl | Extrahiert XML-Elemente im FGDC CSDGM-Format aus den Metadaten eines Elements (falls vorhanden) und ordnet diese in der richtigen Reihenfolge an. Die von diesem Stylesheet extrahierten Informationen bilden den Inhalt, der unter der Überschrift FGDC-Metadata (schreibgeschützt) auf der Beschreibung angezeigt wird. |
Einige der mit ArcGIS for Desktop bereitgestellten Stylesheets werden von den Metadaten-Geoverarbeitungswerkzeugen verwendet, um Teile der Import-, Export- und Aktualisierungsvorgänge durchzuführen:
- _MPXML2.xsl
- merge imported metadata with existing.xslt
- merge upgraded FGDC with existing.xslt
- prep metadata for export.xslt
- remove empty elements.xslt
- remove FGDC required hints.xslt
- remove synchronized elements.xslt
- remove unique identifiers.xslt
- upgrade ESRI-ISO to ArcGIS94.xslt
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 Sie 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.
- Exportieren Sie Informationen in eine HTML-Datei, sodass Sie diese Informationen in eine Website einbeziehen können. Erstellen Sie ein Skript, das diesen Vorgang regelmäßig ausführt.
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 weiterzugeben, 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 der Metadatenquelle zusammenführen.
In der im Lieferumfang von ArcGIS enthaltenen Datei add unique identifier.xslt finden Sie ein Beispiel für das Weitergeben 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. Zusätzlich zu einigen Standard-XSLT-Funktionen sind außerdem einige .NET-spezifische Funktionen verfügbar.
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-Elementen, -Funktionen und -Syntax beschränken. Es ist eher unwahrscheinlich, dass andere Anwendungen als Microsoft-Anwendungen die .NET-spezifischen 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 XSLT-Funktion (http://www.esri.com/metadata/) von ArcGIS 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 XSLT-Funktion von ArcGIS zugewiesen ist. Wenn dem Namespace der XSLT-Funktion von ArcGIS 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" 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.
- decodenodeset(): Wenn ein XML-Element mit Escape-Zeichen 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 Escape-Zeichen versehen wurden. Beispiele hierzu finden Sie in den mit ArcGIS bereitgestellten Dateien ESRIISO2.xslt und ItemDescription.xslt. Beispielsweise werden die Raumbezugseigenschaften eines Elements automatisch in den Metadaten des Elements als XML-Daten mit Escape-Zeichen gespeichert. Die Abstrakt- und Nutzungsbeschränkungen für den Inhalt, die im Metadateneditor in Vorbereitung auf die Veröffentlichung auf ArcGIS Online markiert werden können, werden als XHTML mit Escape-Zeichen gespeichert.
- splitcoords() – Konvertiert ein kommagetrenntes Paar X,Y-Koordinaten in eine durch Leerzeichen getrennte Liste. Ein ArcGIS-Beispiel hierzu finden Sie in der Datei upgrade ESRI-ISO to ArcGIS94.xslt.
- strtoupper(): Ändert die Zeichenfolge des Eingabetextes so, dass sie nur Großbuchstaben enthält. Ein ArcGIS-Beispiel hierzu finden Sie in der Datei add unique identifier.xslt.
- striphtml(): Wenn ein XML-Element mit Escape-Zeichen versehene XHTML- oder XML-Daten enthält, gibt diese Funktion den darin enthaltenen Text ohne Markup zurück. Das heißt, alles zwischen den Zeichen für kleiner als (<) und größer als (>) wird als Markup betrachtet und entfernt. Beispiele hierzu finden Sie in den mit ArcGIS bereitgestellten Dateien ESRIISO2.xslt, ItemDescription.xslt und prep metadata for export.xslt. Wenn Sie beispielsweise den Export des Inhalts der Abstrakt- und Nutzungsbeschränkungselemente in ein standardmäßiges Metadatenformat vorbereiten, wird vorhandenes XHTML-Markup aus dem Metadateninhalt entfernt.
- strtolower(): Ändert die Zeichenfolge des Eingabetextes so, dass sie nur Kleinbuchstaben enthält. Beispiele hierzu finden Sie in den mit ArcGIS bereitgestellten Dateien auxCountries.xslt, auxLanguages.xslt und auxUCUM.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 früher mit dem FGDC-Metadateneditor oder in der aktuellen ArcGIS for 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 den Metadateninhalt im ursprünglichen FGDC-Format des Elements, also die Informationen, die unter der Überschrift FGDC-Metadaten (schreibgeschützt) auf der Beschreibung angezeigt werden. Die FGDC-Elemente haben in der XML-Ausgabedatei die richtige Reihenfolge.
Die exportierte Datei kann mit dem FGDC-XML-Schema bzw. der DTD (Document Type Definition) oder mit dem USGS-Metadaten-Dienstprogramm "mp" überprüft werden. Der USGS-MP-Metadatenkonverter führt diesen Vorgang vor dem Verarbeiten der Metadaten im FGDC-Format 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. Es werden mehrere Stylesheets mit ArcGIS bereitgestellt, die im Ordner <ArcGIS-Installationsverzeichnis>\Metadata\Stylesheets zur Verfügung stehen. | 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 finden Sie in der Datei add unique identifier.xslt. | File; String |
Codebeispiel
Verwendet das XSLT-Stylesheet ArcGIS.xsl von ArcGIS zum Exportieren von Metadaten in eine HTML-Datei zur Nutzung auf einer 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", "#")