XSLT 変換(XSLT Transformation) (変換)
サマリ
ArcGIS アイテムのメタデータ、または XSLT 1.0 スタイルシート使用の XML ファイルを変換し、その結果を XML ファイルに保存するには、.NET 3.5 XML ソフトウェアを使用します。
XSLT スタイルシートを使用して、ArcGIS メタデータまたは XML ファイルに対してさまざまな変更を行うことができます。ArcGIS には、いくつかの XSLT スタイルシートが付属しています。メタデータを閲覧用 HTML ページに変換するものもあれば、メタデータ モデル ジオプロセシング ツールで使用してメタデータ プロセスのインポート、エクスポート、およびアップグレードの部分を実行したり、事前割り当てメタデータ タスクの実行に使用したりできるものもあります。XSLT スタイルシートは、<ArcGIS インストール ディレクトリ>\Metadata\Stylesheets フォルダに格納されています。
サンプルとして付属しているスタイルシートを使ってタスクを実行する、ユーザ独自の XSLT スタイルシートを作成することもできます。たとえば、次のような処理を実行するスタイルシートを作成できます。
- 住所または電話番号を更新する処理。このプロセスを実行し、[メタデータ インポータ] ツールを使って更新済みメタデータを元の ArcGIS アイテムに保存するモデルを作成します。
- メタデータをエクスポートまたは公開する前に、開示しない情報を削除する処理。この処理を先に実行してから [メタデータのエクスポート] ツールまたは [メタデータの公開] ツールを実行するモデルを作成します。
- ArcGIS アイテムの情報を Web サイトの一部として表示する HTML ページを作成する処理。ArcGIS でメタデータの表示に使用される ArcGIS.xsl スタイルシートを使用するか、ユーザ独自のスタイルシートを作成します。
ArcGIS の外部で出力 XML を使用する場合を除き、Esri メタデータ エレメントおよびバイナリ メタデータ エレメント内の情報が ArcGIS メタデータ変更用 XSLT スタイルシートに削除されるのを回避する必要があります。
使用法
-
XSLT スタイルシートを基に生成された出力ファイルは XML、HTML またはテキスト形式に書式設定できます。このツールによって設定されたデフォルト出力ファイル名には、「.xml」のファイル拡張子が付けられます。使用している XSLT スタイルシートで XML ファイルが生成されない場合、妥当なファイル拡張子をファイル名に付けて指定する必要があります。
[XSLT 変換(XSLT Transformation)] ツールでは XSLT 1.0 テクノロジが採用されていないため、ArcGIS Desktop 9.3.1 以前のバージョンに付属の XSL スタイルシートを使用して ArcGIS アイテムのメタデータまたはスタンドアロン メタデータ XML ファイルを処理することはできません。このツールに採用されているのは、.NET 3.5 Framework でサポートされていない古いテクノロジです。それらの XSL スタイルシートも ArcGIS メタデータ エディタでは使用できません。
-
[XSLT パラメータ] を使用して文字列または XML ファイル名を XSLT スタイルシートに渡した後、このスタイルシートを使ってアイテムのメタデータを変更することができます。たとえば、XSLT スタイルシートでは、文字列として渡された電話番号を取得し、メタデータ内のすべての電話番号を更新するといったこともできます。XSLT スタイルシートで、このパラメータを指定して XML ファイルを渡せば、XML ファイル内に格納されている情報をソース メタデータとマージできます。
値の受け渡し方法を示すサンプルは、ArcGIS に付属している add unique identifier.xslt ファイルをご参照ください。個別の XML ファイル内の情報を ArcGIS アイテムのメタデータとマージする方法を示すサンプルは、merge upgraded FGDC with existing.xslt をご参照ください。
カスタム XSLT スタイルシートを作成して ArcGIS 内にメタデータまたは XML ファイルを表示またはエクスポートしたい場合、XSLT エレメント、XPath エレメント、サポートされている関数および構文の全一覧ついては、Microsoft の NET 3.5 Framework ドキュメントをご参照ください。これらの関数を使用するには、ArcGIS メタデータ エディタで [XSLT 変換(XSLT Transformation)] ツールを使用する必要があります。
ArcGIS の内部と外部でカスタムスタイルシートを使用したい場合、最も効率的と考えられる方法は XSLT 1.0 エレメント、XPath 1.0 エレメント、関数および構文以外は使わないようにすることです。Microsoft 以外のアプリケーションは多くの場合、Microsoft 固有の関数である XSLT 関数と XPath 関数をサポートしていません。
XSLT スタイルシートをこのジオプロセシング ツールまたは ArcGIS メタデータ エディタのどちらか一方とともに使用し、ArcGIS に付属のいくつかのカスタム XSLT 関数を使用することにより、メタデータ処理および表示の向上を図ることができます。これらの関数を使用するには、Esri XSLT 関数の名前空間の URI http://www.esri.com/metadata/ を XSLT スタイルシートから参照する必要があります。たとえば、<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:esri="http://www.esri.com/metadata/"> のように指定します。
ArcGIS XSLT 関数の先頭には、Esri XSLT 関数の名前空間に割り当てられている接頭辞を付ける必要があります。Esri XSLT 関数の名前空間には接頭辞 esri が付けられます。上の例で GuidGen() 関数は <xsl:value-of select="esri:GuidGen()" /> のように指定します。
- GuidGen() - 中括弧({ と })を含まない新しい GUID(Globally Unique Identifier)値を返します。たとえば、GUID をメタデータ内に含めることにより、メタデータ ドキュメントまたはドキュメントに記述されているリソースを一意に識別できるようになります。ArcGIS で提供される add unique identifier.xslt ファイルを参考にしてください。
- strtoupper() - 入力テキスト文字列を、大文字だけを使用するように変更します。ArcGIS で提供される add unique identifier.xslt ファイルを参考にしてください。
- strtolower() - 入力テキスト文字列を、小文字だけを使用するように変更します。
- striphtml() - この関数を実行すると、XML エレメントにエスケープ付き HTML が含まれている場合、格納されているテキストが返され、すべての HTML マークアップが削除されます。ArcGIS で提供される ESRIISO2.xslt ファイルを参考にしてください。
- decodenodeset() - XML エレメントにエスケープ付き XHTML または XML が含まれている場合、この関数を実行するとノード セットが返されます。このノード セットを msxsl:node-set 関数と組み合わせて使用し、以前にエスケープされた個別エレメントを処理できます。ArcGIS で提供される ESRIISO2.xslt ファイルを参考にしてください。
-
[ソース メタデータ] パラメータにはコンプレックス データ タイプが含まれます。このツールをモデル内で使用する場合は、ツールを右クリックし、[変数の作成] → [パラメータから] → [ソース メタデータ] の順に選択して ModelBuilder で [ソース メタデータ] パラメータの変数を作成します。
-
ArcGIS アイテムに、FGDC メタデータ エディタを使用して ArcGIS Desktop 9.3.1 以前で作成されたメタデータ、または FGDC メタデータ エディタ アドインを使用して現在のバージョンの ArcGIS Desktop で作成されたメタデータが存在している場合は、そのアイテムのメタデータが ArcGIS メタデータにアップグレードされた後も、元の FGDC メタデータ XML エレメントが ArcGIS のメタデータ内に残ります。メタデータには、他の ArcGIS メタデータ エレメントも含まれます。
このツールおよび ArcGIS に付属している _MPXML2.xsl ファイルを使用して、元の FGDC メタデータ エレメントをエクスポートすることができます。上の例で、このファイルによってエクスポートされる情報は、アイテムの元の FGDC メタデータ([説明] タブの FGDC メタデータ セクションに表示される情報)のみです。FGDC エレメントは、出力 XML ファイル内で正しく順序付けされます。
エクスポートされたファイルは、メタデータ カタログにパブリッシュすることが可能です。ただし、そのためには情報が FGDC CSDGM メタデータ XML 形式である必要があります。エクスポート ファイルを整合チェックするには、FGDC XML スキーマまたは DTD を使用するか、あるいは mp という USGS メタデータ ユーティリティを使用します。USGS MP Metadata Translator はメタデータを処理する前に、この操作を内部的に実行します。
-
外部 Web サイトに HTML 形式でパブリッシュされるメタデータは、コンテンツが Web サイトに正しく公開されれば、Google などのインターネット検索エンジンによってインデックス付けされます。
構文
パラメータ | 説明 | データ タイプ |
source |
メタデータが変換されるアイテム、または変換されるスタンドアロン XML ファイル。 | Data Element; Layer |
xslt |
実行される変換を定義する W3C 準拠の XSLT 1.0 スタイルシート ファイル | File |
output |
作成される変換済みのメタデータを含んでいるファイル。 作成されるファイルのタイプは、XSLT スタイルシート内に指定されている出力メソッドに応じて決まります。 | File |
xsltparam (オプション) |
XSLT スタイルシートに渡される XML ファイルまたは文字列 このパラメータを XSLT スタイルシートでキャプチャするには、<xsl:param name="gpparam" /> を XSLT スタイルシート上部の xsl:output エレメントから最初の xsl:template までの間に追加します。例については、merge upgraded FGDC with existing.xslt をご参照ください。 | File; String |
コードのサンプル
ArcGIS に付属している ArcGIS.xsl XSLT スタイルシートを使用して、メタデータを Web サイトで使えるように HTML ファイルへエクスポートします。
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", "#")