XML スキーマの整合チェック(XML Schema Validation) (変換)
サマリ
ArcGIS アイテムのメタデータまたは XML ファイルの整合性をチェックするには、.NET Framework 3.5 の XML ソフトウェアを使用します。この XML が、XML スキーマによって概略が定義された構造およびコンテンツのルールに準拠しているかどうかが確認されます。DTD または W3C XML スキーマ言語によって記述されたスキーマをこのツールで使用できます。
ArcGIS メタデータは、直接 XML スキーマの整合性をチェックできるように書式設定されていません。ただし、他のメタデータ ジオプロセシング ツールを使用すると、メタデータ標準の XML スキーマまたは DTD に従って書式設定した XML ファイルに、ArcGIS メタデータをエクスポートすることができます。エクスポートした XML ファイル、またはすでにメタデータの標準の XML スキーマに従って正しく書式設定されているスタンドアロン メタデータ XML ファイルを、このツールを使用して整合チェックできます。
指定した XML スキーマまたは DTD に対してメタデータまたは XML ファイルが有効でない場合、XML ソフトウェアから返された警告またはエラーがツールのメッセージに表示されます。
使用法
XML スキーマには、整合チェックしたい XML 名前空間の指定が必要なものと、必要でないものがあります。指定が必要ないときに [名前空間 URI] パラメータに値が指定されている場合は、報告される警告やエラーはすべて、XML スキーマに正しい情報が見つからないことに関する内容になり、XML ドキュメントが有効かどうかを識別できなくなります。
たとえば、Federal Geographic Data Committee(FGDC) Content Standard for Digital Geospatial Metadata (CSDGM) に従う XML ドキュメントを XML スキーマの http://www.fgdc.gov/schemas/metadata/fgdc-std-001-1998.xsd を使用して整合チェックする場合は、[名前空間 URI] パラメータに値を指定しません。
XML ドキュメントを DTD を使用して整合チェックする場合は、チェック対象のエレメントの名前を [名前空間 URI] パラメータに指定する必要があります。たとえば、外部 DTD を参照する XML ドキュメントに DOCTYPE 宣言を追加した場合、構文は「<!DOCTYPE metadata SYSTEM "http://www.fgdc.gov/schemas/metadata/fgdc-std-001-1998.dtd">」のようになります。このツールを使用して、同じ外部 DTD を使用する XML ドキュメントを整合チェックするには、[スキーマ URL] パラメータに「http://www.fgdc.gov/schemas/metadata/fgdc-std-001-1998.dtd」という値を指定します。[名前空間 URI] パラメータには、XML ドキュメントのルート エレメントの名前「metadata」を指定します。これで、ルート エレメントのコンテンツが整合チェックされます。
整合チェックする XML ドキュメントに、外部 XML スキーマまたは XML DTD への埋め込みの参照が含まれている場合、そのスキーマは整合チェックに使用されません。整合チェックに使用するスキーマと整合チェックする名前空間またはルート エレメントは、ツールの [スキーマ URL] および [名前空間 URI] パラメータに明示的に指定する必要があります。
[Adding schemas...] というメッセージは、スキーマが読み込み中であることを示しています。スキーマで検出されたエラーまたは警告はすべて、このメッセージの下に出力されます。
[Reading document...] というメッセージは、メタデータまたは XML ファイルの整合チェックを開始することを示しています。メタデータまたは XML ファイルで検出されたエラーまたは警告はすべて、このメッセージの下に出力されます。
メタデータ XML ファイルを ISO 19139 メタデータ規格「Geographic information — Metadata — XML schema implementation」に準拠する書式に設定しておき、この規格で規定されている 2005 バージョンの XML スキーマと突き合わせて整合性をチェックすると、XML スキーマ ファイルの問題がツールにより通知されます。「choice 要素での「空」候補は、minOccurs が 0 でない場合、検証条件としては無効になります」警告は、.NET 3.5 フレームワークの XML ソフトウェアによってのみ通知されます。また、ツールのメッセージに表示されます。この警告は、423 行目の 8 番目の文字に問題があることを示しています。警告の発生元は coverage.xsd XML スキーマです。これと同じ XML スキーマの問題は、他の XML パーサでは通知されません。
-
[ソース メタデータ] パラメータにはコンプレックス データ タイプが含まれます。このツールをモデル内で使用する場合は、ツールを右クリックし、[変数の作成] → [パラメータから] → [ソース メタデータ] の順に選択して ModelBuilder で [ソース メタデータ] パラメータの変数を作成します。
-
このツールを ModelBuilder で使用する場合は、[出力メタデータ] パラメータが [ソース メタデータ] パラメータから取得されます。
構文
パラメータ | 説明 | データ タイプ |
source |
メタデータが整合チェックされるアイテム、または整合チェックされるスタンドアロン XML ファイル。 | Data Element; Layer |
schemaurl |
有効な XML ドキュメントの構造およびコンテンツを記述している XML スキーマまたは XML DTD。 | String |
nsuri (オプション) |
XML スキーマを使用して整合チェックする XML 名前空間。または、XML DTD を使用して整合チェックするドキュメントのルート エレメント(該当する場合)。 使用する XML スキーマでこの値が不適切である場合は、名前空間 URI の代わりにシャープ記号(#)を指定します。 | String |
コードのサンプル
オンライン ISO 19139 XML スキーマを使用して、ISO 19139 形式のメタデータが格納されているスタンドアロン XML ファイルを整合チェックします。XML スキーマを使用するには、整合チェック対象の XML 名前空間を指定する必要があります。
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)
FGDC XML スキーマ ファイルのローカル コピーを使用して、FGDC CSDGM 形式のメタデータが格納されているスタンドアロン XML ファイルを整合チェックします。これらは FGDC メタデータ標準 Web サイトからダウンロードできます。これらの XML スキーマでは、整合チェック対象の XML 名前空間を指定する必要はありません。
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, "#")