29 XML Schema Processor for C++の使用

Extensible Markup Language (XML) Schema Processor for C++の使用方法について説明します。

注意:

Oracle XML Developer's Kit (XDK)アプリケーションには、xml.hppに統合されたC++アプリケーション・プログラミング・インタフェース(API)を使用してください。oraxml.hpp内の非統合の旧C++ APIは非推奨で、下位互換性のためにのみサポートされています。これは、将来のリリースでは削除される予定です。

トピック:

29.1 XML Schema Processor for C++の概要

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

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

トピック:

29.1.1 XML Schema Processor for C++の機能

Oracle XML Schema Processor for C++の機能について説明します。

機能は次のとおりです。

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

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

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

XML Schema Processor for C++のクラスは、OracleXml::SchemaValidatorです。

トピック:

関連項目:

『Oracle Database XML C++ APIリファレンス』のスキーマ・バリデータ・インタフェースに関する項

29.1.1.1 オンライン・ドキュメント

Oracle XML Schema Processor for C++のドキュメントは、インストール場所の/xdk/doc/cpp/schemaディレクトリにあります。

29.1.2 Oracle XML Schema Processor for C++の標準準拠

XML Schema Processor for C++が準拠している標準を示します。

  • W3CのXML 1.0勧告

  • W3CのDOMレベル1.0勧告

  • W3CのXML 1.0 Namaspace勧告

  • W3CのXML Schema 1.0勧告

29.2 XML Schema ProcessorのAPI

インタフェースSchemaValidatorは、XML文書に対する、XMLスキーマ・ベースの検証を処理する抽象テンプレート・クラスです。

トピック:

29.2.1 XML Schema Processor for C++の起動

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

  • XMLインスタンス・ドキュメント

  • デフォルト・スキーマ(オプション)

  • 作業ディレクトリ(オプション)

表29-1に、(オプションが無効、または-hがオプションである場合に表示できる)オプションを示します。

表29-1 XML Schema Processor for C++のコマンドライン・オプション

オプション 説明

-0

常にコード0で終了します(正常な場合)。

-e encoding

デフォルトの入力ファイルのエンコーディングを指定します。

-E encoding

出力/データ/表示のエンコーディングを指定します。

-h

ヘルプ。これらの選択肢を出力します。

-i

指定されたスキーマを無視します。

-o num

検証オプション。

-p

正常な場合は、ドキュメント・インスタンスをstdoutに出力します。

-u

Unicodeパスを強制します。

-v

バージョン: バージョンを表示し、終了します。

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

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

29.3 指定したXML Schema for C++サンプル・プログラムの実行

ディレクトリ$ORACLE_HOME/xdk/demo/cpp/schemaには、APIによるOracle XML Schema Processor for C++の使用方法を示すサンプル・アプリケーションがあります。

表29-2に、提供されるサンプル・ファイルを示します。

表29-2 提供されているXML Schema Processor for C++のサンプル

サンプル・ファイル 説明

Makefile

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

xsdtest.cpp

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