ヘッダーをスキップ
Oracle® Database XML C APIリファレンス
11gリリース2 (11.2)
E94918-01
  目次へ
目次
索引へ
索引

前へ
前へ
 
次へ
次へ
 

8 C用のスキーマAPIパッケージ

このXMLスキーマ・バリデータのC実装は、W3CのXML Schema仕様、Rev REC-xmlschema-1-20010502に準拠します。これにより、スキーマ・バリデータが複数のスキーマ・ドキュメントを1つのスキーマに編集するのに必要な動作が実装されます。この結果のスキーマを使用して、特定のインスタンス・ドキュメントを検証することができます。

イベントベースのスキーマ検証については、第4章「C用のイベントAPIパッケージ」で説明しているメソッドを参照してください。

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


関連項目:

  • 『Oracle XML Developer's Kitプログラマーズ・ガイド』

  • 『Oracle XML DB開発者ガイド』



Schemaインタフェース

表8-1に、Schemaインタフェースで使用できるメソッドの概要を示しています。

表8-1 Schemaメソッドの概要

関数 概要

XmlSchemaClean()


スキーマ・コンテキストにロードされたスキーマをクリーン・アップし、スキーマ・コンテキストを再利用します。

XmlSchemaCreate()


スキーマ・コンテキストを作成し、戻します。

XmlSchemaDestroy()


スキーマ・コンテキストを破棄します。

XmlSchemaErrorWhere()


エラーが発生した場所を戻します。

XmlSchemaLoad()


スキーマ・ドキュメントをロードします。

XmlSchemaLoadedList()


ロードされたスキーマ・ドキュメントのサイズとリスト、またはいずれかを戻します。

XmlSchemaSetErrorHandler()


スキーマ・コンテキストに、エラー・メッセージ・ハンドラとその関連コンテキストを設定します。

XmlSchemaSetValidateOptions()


次の検証セッションで使用されるオプションを設定します。

XmlSchemaTargetNamespace()


指定されたスキーマ・ドキュメントのターゲットの名前空間を戻します。

XmlSchemaUnload()


スキーマ・ドキュメントをアンロードします。

XmlSchemaValidate()


要素ノードをスキーマについて検証します。

XmlSchemaVersion()


このスキーマ実装のバージョンを戻します。



XmlSchemaClean()

スキーマ・コンテキストにロードされたスキーマをクリーン・アップし、スキーマ・コンテキストを再利用します。

構文

void XmlSchemaClean(
   xsdctx *sctx);
パラメータ IN/OUT 説明
sctx
IN
クリーン・アップされるスキーマ・コンテキスト


XmlSchemaCreate()

その他のバリデータAPIで使用されるスキーマ・コンテキストを戻します。これはXmlSchemaDestroyと合せて使用する必要があります。

構文

xsdctx *XmlSchemaCreate(
   xmlctx *xctx, 
   xmlerr *err, 
   list);
パラメータ IN/OUT 説明
xctx
IN
XMLコンテキスト
err
OUT
戻されたエラー・コード
list
IN
変数引数のNULLで終了するリスト

戻り値

(xsdctx *) スキーマ・コンテキスト。


XmlSchemaDestroy()

スキーマ・コンテキストを破棄し、そのすべてのリソースを解放します。

構文

void XmlSchemaDestroy(
   xsdctx *sctx);
パラメータ IN/OUT 説明
sctx
IN
解放されるスキーマ・コンテキスト


関連項目:

XmlSchemaCreate()


XmlSchemaErrorWhere()

エラーが発生した場所(行番号、パス)を戻します。

構文

xmlerr XmlSchemaErrorWhere(
   xsdctx *sctx, 
   ub4 *line, 
   oratext **path);
パラメータ IN/OUT 説明
sctx
IN
スキーマ・コンテキスト
line
IN/OUT
エラーが発生した行番号
path
IN/OUT
エラーが発生したURLまたはファイル領域

戻り値

(xmlerr) エラー・コード。


XmlSchemaLoad()

次の検証セッションで使用されるスキーマ・ドキュメントをロードします。ロードされるスキーマ・ドキュメントが有効である間は、スキーマ・ドキュメントをスキーマに追加的にロードできます。最後にロードされたスキーマが無効と判断された場合は、XmlSchemaClean()をコールしてスキーマ・コンテキストをクリーン・アップし、適切に修正した最新のスキーマを含むすべてのコンテキストを再ロードする必要があります。

スキーマ・ドキュメントが指定されると、この関数は、DOM表現を内部スキーマ表現に変換します。スキーマ・ドキュメントは、URIまたは直接DOM表現で指定できます。URIの場合、この関数は、入力ストリームを読み込み、スキーマのDOM表現を構築してから内部表現に変換します。DOMの場合、アプリケーションはスキーマのDOM表現を指定でき、これを使用して内部スキーマ表現が作成されます。

構文

xmlerr XmlSchemaLoad(
   xsdctx *sctx, 
   oratext *uri, 
   list);
パラメータ IN/OUT 説明
sxctx
IN
スキーマ・コンテキスト
uri
IN
スキーマ・ドキュメントのURL、コンパイラのエンコーディング
list
IN
変数引数のNULLで終了するリスト

戻り値

(xmlerr) 数値のエラー・コード。正常に終了した場合は、XMLERR_OK [0]を戻します。


XmlSchemaLoadedList()

listNULLの場合、ロードされたスキーマ・ドキュメントのサイズのみを戻します。listNULL以外の場合、ユーザー側のポインタ・バッファにURLポインタのリストが戻されます。ユーザー側で、十分な大きさのバッファを用意する必要があります。

構文

ub4 XmlSchemaLoadedList(
   xsdctx *sctx, 
   oratext **list);
パラメータ IN/OUT 説明
sctx
IN
スキーマ・コンテキスト
list
IN
ポインタ・バッファのアドレス

戻り値

(ub4) リスト・サイズ。


XmlSchemaSetErrorHandler()

スキーマ・コンテキストに、エラー・メッセージ・ハンドラとその関連コンテキストを設定します。エラーに関する有益な位置情報を取り出すために、エラー・ハンドラ・コンテキストにスキーマ・コンテキストのアドレスを指定する必要があります。

構文

xmlerr XmlSchemaSetErrorHandler(
   xsdctx *sctx, 
   XML_ERRMSG_F(
      (*errhdl), 
      ectx, 
      msg, 
      err), 
   void *errctx);
パラメータ IN/OUT 説明
sctx
IN
スキーマ・コンテキスト
errhdl
IN
エラー・メッセージ・ハンドラ
errctx
IN
エラー・ハンドラのコンテキスト

戻り値

(xmlerr) エラー・コード。


XmlSchemaSetValidateOptions()

次の検証セッションで使用されるオプションを設定します。以前に設定されたオプションは、上書きまたはリセットされるまで有効です。

構文

xmlerr XmlSchemaSetValidateOptions(
   xsdctx *sctx, 
   list);
パラメータ IN/OUT 説明
sctx
IN
スキーマ・コンテキスト
list
IN
可変引数のNULLで終了するリスト

戻り値

(xmlerr) 数値のエラー・コード。正常に終了した場合は、XMLERR_OK [0]を戻します。


関連項目:

XmlSchemaValidate()


XmlSchemaTargetNamespace()

URIで識別される、指定されたスキーマ・ドキュメントのターゲットの名前空間を戻します。現在ロードされているすべてのスキーマ・ドキュメントは問い合せできます。現在ロードされているスキーマ・ドキュメントには、XmlSchemaLoadでロードされたドキュメント、およびschemaLocationヒントまたはnoNamespaceSchemaLocationヒントでロードされたドキュメントが含まれます。

構文

oratext *XmlSchemaTargetNamespace(
   xsdctx *sctx, 
   oratext *uri);
パラメータ IN/OUT 説明
sctx
IN
XMLコンテキスト
uri
IN
問い合せるスキーマ・ドキュメントのURL

戻り値

(oratext *) ターゲットの名前空間文字列。ドキュメントが指定されていない場合はNULL


関連項目:

XmlSchemaLoadedList()


XmlSchemaUnload()

バリデータからスキーマ・ドキュメントをアンロードします。以前にロードされたすべてのスキーマ・ドキュメントは、アンロードされるまでロードされた状態です。ロードされたすべてのスキーマ・ドキュメントをアンロードするには、URIがNULLになるように設定します(XmlSchemaCleanと等価です)。指定のスキーマに関連する子スキーマも、すべてアンロードされることに注意してください。この実装では、次の使用例のみがサポートされます。

ロード、ロード、アンロード、ロード、...はサポートされません。

構文

xmlerr XmlSchemaUnload(
   xsdctx *sctx, 
   oratext *uri, 
   list);
パラメータ IN/OUT 説明
sctx
IN
スキーマ・コンテキスト
uri
IN
スキーマ・ドキュメントのURL。コンパイラのエンコーディング
list
IN
可変引数のNULLで終了するリスト

戻り値

(xmlerr) 数値のエラー・コード。正常に終了した場合は、XMLERR_OK [0]を戻します。


XmlSchemaValidate()

要素ノードをスキーマについて検証します。現在のセッションで使用されるスキーマには、XmlSchemaLoadで指定されたスキーマ・ドキュメント、およびインスタンス・ドキュメントでschemaLocationまたはnoNamespaceSchemaLocationでヒントとして指定されたスキーマ・ドキュメントがすべて含まれます。このルーチンが呼び出された後、ロードされたすべてのスキーマ・ドキュメントはロードされた状態が続き、XmlSchemaLoadedListを使用して問い合せできます。ただし、これらは引き続き非アクティブな状態です。次の検証セッションでは、非アクティブなスキーマ・ドキュメントをアクティブにできます。それにはXmlSchemaLoadでスキーマ・ドキュメントを指定するか、または新しいインスタンス・ドキュメントのschemaLocationまたはnoNamespaceSchemaLocationで、それらをヒントとして指定します。スキーマ・ドキュメントとそのすべての子孫(ネスト化方式で追加またはインポートされたドキュメント)をアンロードする場合は、XmlSchemaUnloadを使用します。

構文

xmlerr XmlSchemaValidate(
   xsdctx *sctx,
   xmlctx *xctx, 
   xmlelemnode *elem);
パラメータ IN/OUT 説明
sctx
IN
スキーマ・コンテキスト
xctx
IN
最上位のXMLコンテキスト
elem
IN
ドキュメント内の検証される要素ノード

戻り値

(xmlerr) 数値のエラー・コード。正常に終了した場合は、XMLERR_OK [0]を戻します。


XmlSchemaVersion()

このスキーマ実装のバージョンを戻します。

構文

oratext *XmlSchemaVersion();

戻り値

(oratext *) バージョン文字列(コンパイラのエンコーディング)。