ヘッダーをスキップ
Oracle XML Developer's Kitプログラマーズ・ガイド
10gリリース3(10.1.3)
B28611-01
  目次
目次
索引
索引

戻る
戻る
次へ
次へ
 

16 XML Schema Processor for C

この章の内容は次のとおりです。


注意:

新規のXDKおよびOracle XML DBアプリケーションには、新規の統合C APIを使用してください。以前のC関数は使用できず、下位互換性のみを目的としてサポートされていますが、今後は拡張されません。これは、将来のリリースでは削除される予定です。

新しいC APIについては、第14章「XML Parser for C」を参照してください。


Oracle XML Schema Processor for C

XML Schema Processor for Cは、XML Parser for Cとともに動作するコンポーネントです。XML Schema Processor for Cを使用すると、XMLアプリケーションで単純なデータ型および複雑なデータ型をサポートできます。

XML Schema Processor for Cは、W3CのXML Schema勧告をサポートしています。このため、XML文書を処理するカスタム・アプリケーションを簡単に作成できます。また、Oracleが移植されたすべてのオペレーティング・システムには、標準に準拠したXML SchemaプロセッサがXDKの一部として搭載されています。


関連項目:

XML Schemaの詳細およびXML Schemaを使用する理由については、第3章「XML Parser for Java」を参照してください。

XML Schema Processor for Cの機能

XML Schema Processor for Cには、次の特徴があります。

  • 単純型および複合型をサポートします。

  • XML Parser for Cに統合されています。

  • W3CのXML Schema勧告をサポートします。


関連資料:

  • 『Oracle XML APIリファレンス』のC用のSchema APIに関する項

  • /xdk/demo/c/schema/: サンプル・コード


標準への準拠

XML Schema Processor for Cは、次の標準に準拠しています。

  • W3CのXML 1.0勧告

  • W3CのDOMレベル1.0勧告

  • W3CのXML Namespace勧告

  • W3CのXML Schema勧告

XML Schema Processor for C: 提供されるソフトウェア

表16-1に、今回のリリースで提供されるファイルおよびディレクトリを示します。

表16-1 XML Schema Processor for C: 提供されるファイル

ディレクトリおよびファイル 説明

bin

スキーマ・プロセッサが実行可能なschema

lib

XML/XSL/Schemaおよびサポート・ライブラリ

nls/data

グローバリゼーション・サポート・データ・ファイル

xdk/demo/c/schema

スキーマ・プロセッサの使用例

xdk/include

ヘッダー・ファイル

xdk/mesg

エラー・メッセージ・ファイル

xdk/readme.html

概要ファイル


表16-2に、含まれるライブラリを示します。

表16-2 XML Schema Processor for C: 提供されるライブラリ

含まれるライブラリ 説明

libxml10.a

XML Parser、XSL Processor、XML Schema Processor

libcore10.a

COREファンクション

libnls10.a

グローバリゼーション・サポート


XML Schema Processor for Cの起動

XML Schema Processor for Cは、インストール場所のbin/schemaをコールすることによって、実行可能ファイルとしてコールされます。これは次の2つの引数を取ります。

XML Schema Processor for Cは、提供されたAPIを使用するコードを記述して起動することもできます。このコードは、includeサブディレクトリにあるヘッダーを使用してコンパイルし、libサブディレクトリにあるライブラリにリンクする必要があります。プログラムを構築する方法の詳細は、xdk/demo/c/schemaサブディレクトリにあるMakefileを参照してください。

異なる言語のエラー・メッセージ・ファイルは、mesg/サブディレクトリにあります。

XML Schema Processor for Cの使用方法

図16-1に、次に示すXML Schema Processor for Cのコール順序を示します。

プロセッサのコール順序は、初期化、ロード、検証、検証、...、検証、終了となります。

  1. 初期化コールが、セッションの開始時に一度コールされ、セッションで使用されるスキーマ・コンテキストを戻します。

  2. セッションで使用されるスキーマ・ドキュメントは事前にロードされます。

  3. 検証するインスタンス・ドキュメントが、まずXMLパーサーによって解析されます。

  4. 次に、このインスタンスのXML要素サブツリーの最上位がスキーマ検証関数に渡されます。

  5. インスタンス・ドキュメントにスキーマが明示的に定義されていない場合は、任意の事前ロード済のスキーマが使用されます。

  6. 同じスキーマ・コンテキストを使用して、複数のドキュメントを検証できます。

  7. セッションが終了すると、スキーマ・メモリー解放関数がコールされます。これによって、ロードされたスキーマに対して割り当てられていたすべてのメモリーが解放されます。

図16-1 XML Schema Processor for Cの使用方法

図16-1の説明が続きます
「図16-1 XML Schema Processor for Cの使用方法」の説明

XML Schema Processor for Cサンプル・プログラムの実行

ディレクトリxdk/demo/c/schemaには、Oracle XML Schema ProcessorとそのAPIの使用方法を示すサンプルXML Schemaアプリケーションがあります。表16-3に、提供されるサンプル・ファイルを示します。

表16-3 XML Schema for Cのサンプル・ファイル

サンプル・ファイル 説明

Makefile

サンプル・プログラムを作成および実行し、適切な出力を確認するMakeファイル

xsdtest.c

XML Schema for CのAPIをコールするプログラム

car.{xsd,xml,std}

xsdtestを実行した後のサンプル・スキーマ、インスタンス・ドキュメントおよび予想される出力

aq.{xsd,xml,std}

xsdtestを実行した後の2つ目のサンプル・スキーマ、インスタンス・ドキュメントおよび予想される出力

pub.{xsd,xml,std}

xsdtestを実行した後の3つ目のサンプル・スキーマ、インスタンス・ドキュメントおよび予想される出力


サンプル・プログラムを作成するには、makeコマンドを実行します。

プログラムを作成および実行し、実際の出力と予想される出力を比較するには、次を実行します。

make sure