カタログファイル

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  マップのカスタム化 >

カタログファイル

MapForce は OASIS XML カタログ機能のサブセットをサポートしています。MapForce のカタログ機能により、広く使われているスキーマ(またはスタイルシートなどその他のファイル)をローカルユーザーフォルダーから取得することができます。これにより全体的な処理スピードが向上し、(ネットワークに接続していない状態でも)ユーザーはオフラインで作業することができるようになり、(URI の変更はカタログファイル内部に限定されるので)ドキュメントのポータビリティーが向上します。

 

MapForce のカタログ機能は以下のように動作します。

 

 

RootCatalog.xml

MapForce が開始されると、(以下に示されるような構造を持った)RootCatalog.xml というファイルがロードされ、ファイル内部に記述されているカタログファイルが検索されます。このファイルを修正して、検索するカタログファイルを増やすこともできます(各カタログファイルは nextCatalog 要素にて記述されます)。各カタログファイル内に記述されている URI が、ファイル内で指定されたマッピングに従って解決されます。

 

<?xml version="1.0" encoding="UTF-8"?>
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"
    xmlns:spy="http://www.altova.com/catalog_ext"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="urn:oasis:names:tc:entity:xmlns:xml:catalog Catalog.xsd">
<nextCatalog catalog="%PersonalFolder%/Altova/%AppAndVersionName%/CustomCatalog.xml"/>
<nextCatalog catalog="CoreCatalog.xml"/>
<!-- Include all catalogs under common schemas folder on the first directory level -->
<nextCatalog spy:recurseFrom="%AltovaCommonFolder%/Schemas" catalog="catalog.xml" spy:depth="1"/>
<!-- Include all catalogs under common XBRL folder on the first directory level -->
<nextCatalog spy:recurseFrom="%AltovaCommonFolder%/XBRL" catalog="catalog.xml" spy:depth="1"/>
</catalog>

 

上で示されるファイルの内容にて、%AltovaCommonFolder% という変数で指定されている スキーマ ならびに XBRL フォルダー内部に catalog.xml という名前のカタログファイルがあることに注目してください(%AltovaCommonFolder% 変数の値については以下を参照ください)。

 

Altova 共通フォルダー以下にあるカタログファイルにより(SVG や WSDL といった)よく使われる定義済みのスキーマや XBRL タクソノミのパブリックならびにシステム識別子が、ローカルにコピーされた対応するスキーマを指し示す URI にマッピングされます。これらのスキーマは MapForce がインストールされる際に Altova 共通フォルダーにインストールされます。エラーが発生する可能性があるので、これらファイル内のマッピングを複製しないように注意してください。

 

CoreCatalog.xml、CustomCatalog.xml、そして Catalog.xml

上で記されている RootCatalog.xml にて、CoreCatalog.xml と CustomCatalog.xml が検索のために使用されていることに注目してください:

 

CoreCatalog.xml には Altova 共通フォルダーを指し示すために使われる Altova 独自のマッピングが含まれています。
CustomCatalog.xml はマッピングを作成するためのスケルトンファイルです。Altova 共通フォルダー以下のカタログファイルで指定されていないスキーマファイルへのマッピングを CustomCatalog.xml に追加することができます。OASIS カタログ機能によりサポートされている要素を使用してください(以下を参照)。
Altova 共通フォルダーには数多くの Catalog.xml ファイルが格納されています。各ファイルは Altova 共通フォルダー以下のスキーマフォルダーまたは XBRL タクソノミフォルダーに格納され、ローカルにコピーされたパブリックならびにシステム識別子のスキーマを指し示す URI のマッピングを行ないます。

 

カタログファイルとスキーマの場所

RootCatalog.xml ならびに CoreCatalog.xml は MapForce アプリケーションフォルダー以下にインストールされます。CustomCatalog.xml は MyDocuments\Altova\MapForce フォルダー以下に納されています。catalog.xml ファイルは各スキーマフォルダー以下にあり、これらスキーマフォルダーは %AltovaCommonFolder%\Schema ならびに %AltovaCommonFolder%\XBRL 以下に収められています。

 

シェル環境変数と Altova 変数

nextCatalog 要素ではシェル環境変数が使用され、システムに関係する場所へのパスが参照されます(上の RootCatalog.xml の内容を参照)。以下のシェル環境変数がサポートされます:

 

%AltovaCommonFolder%

C:\Program Files\Altova\CommonMapForce

%DesktopFolder%

現在のユーザーのデスクトップフォルダーへのフルパス

%ProgrammenuFolder%

現在のユーザーのプログラムメニューフォルダーへのフルパス

%StartMenuFolder%

現在のユーザーのスタートメニューフォルダーへのフルパス

%StartUpFolder%

現在のユーザーのスタートアップフォルダーへのフルパス

%templateFolder%

現在のユーザーのテンプレートフォルダーへのフルパス

%AdminToolsFolder%

現在のユーザーの管理ツールが収められているシステムディレクトリへのへのフルパス

%AppDataFolder%

現在のユーザーのアプリケーションデータフォルダーへのフルパス

%CommonAppDataFolder%

全てのユーザーのアプリケーションデータが収められているファイルディレクトリへのフルパス

 

%FavoritesFolder%

現在のユーザーのお気に入りフォルダーへのフルパス

%PersonalFolder%

現在のユーザーの個人用フォルダーへのフルパス

%SendToFolder%

現在のユーザーの SentTo フォルダーへのフルパス

%FontsFolder%

システムフォントフォルダーへのフルパス

%ProgramFilesFolder%

現在のユーザーの Program Files フォルダーへのフルパス

 

%CommonFilesFolder%

現在のユーザーの Common Files フォルダーへのフルパス

 

%WindowsFolder%

現在のユーザーの Windows フォルダーへのフルパス

%SystemFolder%

現在のユーザーのシステムフォルダーへのフルパス

%CommonAppDataFolder%

全てのユーザーのアプリケーションが収められているファイルディレクトリへのフルパス

 

%LocalAppDataFolder%

ローカルアプリケーションのデータリポジトリとして使用されるファイルシステムディレクトリへのフルパス

 

%MyPicturesFolder%

マイ ピクチャフォルダーへのフルパス

 

 

 

カタログの動作

DTD が呼び出された際のリダイレクトにカタログは使用されます。カタログファイル内に記述されているマッピング情報を使用することで、パブリックまたはシステム識別子をローカルの URI にマッピングします。例えば XML ファイル内で宣言されている DOCTYPE 宣言が読まれたとき、カタログファイルマッピングにより PUBLIC または SYSTEM 識別子がローカルにあるリソースを参照します。

 

よく使われるスキーマや PUBLIC 識別子は通常定義が定まっており、ローカルにコピーされている URI をカタログファイルが指し示すだけで事足りてしまいます。XML ドキュメントが解析されると内部にある PUBLIC 識別子が読み込まれます。カタログファイル内に識別子が見つかった場合、カタログファイル内の対応する URL が検索され、その場所からスキーマが読み込まれます。例えば、以下の SVG ファイルが MapForce で開かれた場合:

 

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
 
<svg width="20" height="20" xml:space="preserve">
<g style="fill:red; stroke:#000000">
    <rect x="0" y="0" width="15" height="15"/>
    <rect x="5" y="5" width="15" height="15"/>
</g>
</svg>

 

このドキュメントが読み込まれ、PUBLIC 識別子のカタログが検索されます。例えば、カタログファイルに以下のような記述があるとしましょう:

 

<catalog>
 ...
  <public publicId="-//W3C//DTD SVG 1.1//EN" uri="schemas/svg/svg11.dtd"/>
 ...
</catalog>

 

これで PUBLIC 識別子に対するマッチが見つかりました。SVG DTD は schemas/svg/svgll.dtd にリダイレクトされ(パスはカタログファイルからの相対パスになります)、このローカルファイルが DTD として使用されます。カタログ内に対応するマッピングが存在しない場合、XML ドキュメントに記述されている URL (上の例の場合だと http://www.w3.org/Graphics/SVG/1.1/DTD/svgll.dtd)が使用されます。

 

MapForce によりサポートされるカタログサブセット

CustomeCatalog.xml (または MapForce により読み込まれる他のカタログファイル)内でエントリを作成する際、以下に示される OASIS カタログ仕様の要素だけを使うようにしてください。以下に各要素と属性の説明を示します。更に詳しい情報については、XML カタログ仕様(英文)を参照ください。各要素は xml:base 属性を持ち、要素のベース URI を指定できることに注意してください。

 

<public publicId="PublicID of Resource" uri="URL of local file"/>
<system systemId="SystemID of Resource" uri="URL of local file"/>
<uri name="filename" uri="URL of file identified by filename"/>
<rewriteURI uriStartString="StartString of URI to rewrite" rewritePrefix="String to replace StartString"/>
<rewriteSystem systemIdStartString="StartString of SystemID" rewritePrefix="Replacement string to locate resource locally"/>

 

(殆どのスタイルシートの様に)パブリックな識別子が存在しない場合、system 要素を使うことでシステム識別子を URL に直接マッピングすることができます。また、uri 要素により URI を別の URI にマッピングすることもできます。rewriteURI と rewriteSystem 要素により URI またはシステム識別子の最初の文字列を書き換えることができます。これによりファイルパスの最初の部分を置き換えて、別のディレクトリにターゲットを変更することができます。これら要素に関する詳しい情報については XML カタログ仕様(英文) を参照ください。

 

スキーマに従ったファイル拡張子とインテリジェントな編集

指定したスキーマのルールに準拠するよう MapForce のインテリジェントな編集機能が適用された場合、カタログファイルを使うことで、ドキュメントに特定の拡張子を指定することができます。例えば独自のファイル拡張子 .myhtml を作成して、HTML DTD に従ったファイルの検証を行ないたい場合、以下の要素を CustomCatalog.xml 内にある <catalog> 要素の子要素として追加することで、この拡張子を持つファイルのインテリジェント編集を行うことができます。

 

<spy:fileExtHelper ext="myhtml" uri="schemas/xhtml/xhtml1-transitional.dtd"/>

 

これにより MapForce 内で .myhtml ファイルを編集する際のインテリジェント編集(自動補完、入力ヘルパーなど)が XHTML 1.0 Transition DTD に従った形で使えるようになります。似たようなエントリを含んでいる %AltovaCommonFolder%\Schemas\xhtml フォルダー以下の catalog.xml ファイルも参照ください。

 

XML スキーマとカタログ

XML スキーマ情報は MapForce に内蔵されており、XML スキーマドキュメントの妥当性は内部にある情報をベースにチェックされます。そのため、XML スキーマではいかなる参照も発生しません。

 

%AltovaCommonFolder%\Schemas\schema フォルダー以下にある catalog.xml ファイルには、古い XML スキーマ仕様の DTD に対する参照が記述されています。このファイルから参照されるスキーマファイルを使って XML スキーマドキュメントの検証を行うべきではありません。これらのファイルは、以前の勧告に従ったドキュメントを作成する際に、MapForce の入力ヘルパーにて該当する編集情報を表示させるためだけに使用されます。

 

更に詳しい情報

カタログに関する更に詳しい情報はXML カタログ仕様(英文)を参照ください。


(C) 2019 Altova GmbH