カタログの機能

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

ホーム >  RaptorXML のセットアップ > XML カタログ >

カタログの機能

このセクション:

 

パブリックおよびシステム識別子をローカル URL へマッピングする
ファイルパス、 Web URL、または名前をローカル URL へマッピングする

 

カタログは、 リモートリソースをローカル URL にリダイレクトする際に役に立ちます。これは、カタログファイル内、パブリックまたはシステム識別子、 URI、または必要なローカル URL の識別子または URI の一部のマッピングにより達成されます。

 

パブリックおよびシステム識別子をローカル URL へマッピングする

XML ファイル内の DTD の DOCTYPE 宣言が読み込まれると、宣言のパブリックまたはシステム識別子が必要なリソースを検索します。識別子がリモートリソースを選択、または識別子がロケーターでない場合、ローカルリソースのカタログエントリを介して、マップすることが可能です。

 

例えば、 次の SVG  ファイルを考慮すると:

 

<?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>

  ...

</svg>

 

パブリック識別子は以下の通りです: -//W3C//DTD SVG 1.1//EN

システム識別子は以下の通りです: http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd

 

カタログエントリは、ローカル URL を検索するためにパブリック識別子を以下のようにマップすることができます:

 

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

 

または、カタログエントリは、ローカル URL を検索するためにシステム識別子を以下のようにマップすることができます:

 

<system systemId="http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" uri="schemas/svg/svg11.dtd"/>

 

カタログ内でパブリックまたはシステム識別子の一致がある場合、マップされている URL が使用されます。 (相対パスは、カタログ要素のリダイレクト内の xml:base 属性への参照と共に解決されます。フォールバックベースの URL はカタログファイルの URL です。) カタログ内でパブリックまたはシステム識別子の一致がない場合、 XML ドキュメントの URL が使用されます (上のサンプルでは、: http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd)。

 

相対および絶対ファイルパス、Web URL、または名前のみをローカル URL へマッピングする

uri 要素を相対または絶対ファイルパスを、 Web URL、 または任意の名前、をローカル URL にマップする際に以下のように使用することができます:

 

<uri name="doc.xslt" uri="C:\Docs\doc.xslt"/>
<uri name="U:\Docs\2013\doc.xslt" uri="C:\Docs\doc.xslt"/>
<uri name="http://www.altova.com/schemas/doc.xslt" uri="C:\Docs\doc.xslt"/>
<uri name="foo" uri="C:\Docs\doc.xslt"/>

 

name 値が発生した場合、 uri 属性内の指定されたリソースにマップされます。 カタログと共に、同じ名前が異なるリソースにマップされることもできます。例えば:
 

xsi:schemaLocation="http://www.altova.com/schemas/orgchart OrgChart.xsd"

 

通常、属性の値の URI 部分(上のサンプルで太字で表示)は、  実際のスキーマロケーションのパスです。スキーマがカタログを介して参照されている場合、 URI 部分は、実際の XML スキーマをポイントする必要はありません。しかし、 xsi:schemaLocation 属性の構文の有効性を保持するために、存在する必要があります。 foo の値は、(Orgchart.xsd の代わりに) 例えば、 xsi:schemaLocation 属性の値の URI 部分に十分です。xsi:schemaLocation 属性の値 の名前空間部分によりスキーマは、カタログ内で検索されます。上のサンプルでは、名前空間の部分は以下の通りです: http://www.altova.com/schemas/orgchart。

 

カタログ内で、次のエントリは、スキーマを名前空間の部分をベースにして検索します。

 

<uri name="http://www.altova.com/schemas/orgchart" uri="C:\MySchemas\OrgChart.xsd"/>        

 

詳細に関しては、 XML カタログ仕様を参照してください。

 


(C) 2019 Altova GmbH