ページの先頭行へ戻る
Interstage Charset Manager Standard Edition V9 システム構築ガイド バリデーション編
FUJITSU Software

4.1.1 バリデーションAPI

バリデーションを行う基本的な関数群です。関数の呼び出しフローについては、“図2.2 C言語インタフェースの呼び出しフロー”を参照してください。

4.1.1.1 charsetmanager_validator_open

バリデーション開始関数です。

呼び出し形式

charsetmanager_validator_property_ptr charsetmanager_validator_open(
       const char * encoding,
       int * error
);

機能説明

バリデーション情報格納域を取得してポインタを返却します。バリデーション終了関数(“4.1.1.4 charsetmanager_validator_close”)とセットで呼び出してください。

パラメタ

encoding(IN)

入力データのエンコーディング形式を文字列で指定します。指定できるエンコーディング形式は以下のとおりです。

エンコーディング形式

意味

UCS-2LE

UCS-2,little endian(リトルエンディアン)

UCS-2BE

UCS-2,big endian(ビッグエンディアン)

UCS-4LE

UCS-4,little endian(リトルエンディアン)

UCS-4BE

UCS-4,big endian(ビッグエンディアン)

UTF-8

UTF-8

UTF-16LE

UTF-16,little endian(リトルエンディアン)

UTF-16BE

UTF-16,big endian(ビッグエンディアン)

UTF-32LE

UTF-32,little endian(リトルエンディアン)

UTF-32BE

UTF-32,big endian(ビッグエンディアン)

注意

UCS-2BE/LEとUTF-16BE/LEエンコーディングについて

エンコーディングにUCS-2BE/LEが指定された場合、Charset Validatorは、サロゲートペア(D800~DFFF)の上位と下位をそれぞれ1文字として処理します。例えば、「D840 DC0B」は、U+D840とU+DC0Bの2文字として扱います。

それに対しUTF-16BE/LEが指定された場合、サロゲートペアを認識し、上位と下位とを合わせて1文字として処理します。例えば、「D840 DC0B」は、U+2000Bの1文字として扱います。

error(OUT)

詳細エラー番号を返却する領域のポインタを指定します。NULLポインタを指定すると、エラーとなります。関数が正常終了した場合には0が返却され、エラー終了時には1以上の詳細エラー番号が返却されます。詳細エラー番号として返却される値は以下のとおりです。

復帰値

エラー内容

CHARSETMANAGER_VALIDATOR_ERROR_NO_MEMORY

メモリ不足です。

CHARSETMANAGER_VALIDATOR_ERROR_NULL_ENCODING

encodingポインタがNULLです。

CHARSETMANAGER_VALIDATOR_ERROR_NOT_SUPPORT_ENCODING

encodingにサポートしていない文字列が指定されました。

復帰値

NULL以外

関数が正常終了し、バリデーション情報格納域を指すポインタが返却されます。以降のバリデーションAPIで本ポインタを利用します。

NULL

関数がエラー終了しました。エラーの原因については、詳細エラー番号を参照してください。

4.1.1.2 charsetmanager_validator_set_policy_file

バリデーションポリシー設定関数です。

呼び出し形式

int charsetmanager_validator_set_policy_file(
       charsetmanager_validator_property_ptr cvpp,
       const char * validation_policy_path,
       int * error
);

機能説明

バリデーションポリシーファイルを読み込み、バリデーション情報に格納します。

パラメタ

cvpp(IN/OUT)

バリデーション情報格納域のポインタを指定します。バリデーション開始関数(“4.1.1.1 charsetmanager_validator_open”)の復帰値を指定します。

validation_policy_path(IN)

バリデーションポリシーファイル名を指定します。C言語用のバリデーションポリシー生成コマンドで生成したバリデーションポリシーファイル名のパスを指定してください。

error(OUT)

詳細エラー番号を返却する領域のポインタを指定します。NULLポインタを指定すると、エラーとなります。関数が正常終了した場合には0が返却され、エラー終了時には1以上の詳細エラー番号が返却されます。詳細エラー番号として返却される値は以下のとおりです。

復帰値

エラー内容

CHARSETMANAGER_VALIDATOR_ERROR_NO_MEMORY

メモリ不足です。

CHARSETMANAGER_VALIDATOR_ERROR_NULL_PROPERTY

cvppポインタがNULLです。

CHARSETMANAGER_VALIDATOR_ERROR_NULL_POLICY_PATH

validation_policy_pathポインタがNULLです。

CHARSETMANAGER_VALIDATOR_ERROR_ILLEGAL_PROPERTY

cvppの内容が不正です。

CHARSETMANAGER_VALIDATOR_ERROR_ILLEGAL_POLICY_PATH

validation_policy_pathの長さが0バイト、またはMAX_PATH以上(Windowsの場合のみ)です。

CHARSETMANAGER_VALIDATOR_ERROR_POLICY_OPEN

validation_policy_pathのオープンに失敗しました。

CHARSETMANAGER_VALIDATOR_ERROR_POLICY_ID

validation_policy_pathで指定されたファイルはバリデーションポリシーファイルではありません。

CHARSETMANAGER_VALIDATOR_ERROR_POLICY_VERSION

validation_policy_pathがサポート外のバージョンです。

CHARSETMANAGER_VALIDATOR_ERROR_POLICY_FORMAT

validation_policy_pathの内容が不正です。

CHARSETMANAGER_VALIDATOR_ERROR_NOT_SUPPORT_ENCODING

指定されたエンコーディング形式とバリデーションポリシーファイルの運用文字コードの組み合わせはサポートしていません。

復帰値

0

関数が正常終了しました。

1

関数がエラー終了しました。エラーの原因については、詳細エラー番号を参照してください。

4.1.1.3 charsetmanager_validator_validate

バリデーション関数です。

呼び出し形式

int charsetmanager_validator_validate(
       charsetmanager_validator_property_ptr cvpp,
       const char * indata,
       int indatasize,
       charsetmanager_stream_status_ptr cssp,
       charsetmanager_validator_error_status * error_status,
       int * error
);

機能説明

indataのデータの正当性をチェックします。エンコーディングできないデータ、または、バリデーションポリシーで無効と指定されたコードが出現した場合、ただちにエラー終了します。残りのデータのチェックは行いません。

また、入力ストリームをバッファリングしてバリデーションする場合には、入力ストリーム情報APIと組み合わせて呼び出すこともできます。入力ストリーム情報APIについては、“4.1.2 入力ストリーム情報API”を参照してください。

パラメタ

cvpp(IN)

バリデーション情報格納域のポインタを指定します。バリデーション開始関数(“4.1.1.1 charsetmanager_validator_open”)の復帰値を指定します。

indata(IN)

バリデーションしたいデータの先頭を指すポインタを指定します。

indatasize(IN)

indataの長さ(バイト数)を指定します。

cssp(IN/OUT)

入力ストリーム情報格納域のポインタを指定します。入力ストリーム情報生成関数(“4.1.2.1 charsetmanager_stream_open_status”)の復帰値を指定します。本パラメタは、入力ストリームをバッファリングしてバリデーションしたい場合に指定してください。NULLポインタを指定した場合には、indataを常に入力ストリームの先頭として処理します。

error_status(OUT)

詳細エラー情報を返却する領域のポインタを指定します。入力データが不正となった場合の詳細情報が返却されます。NULLポインタを指定した場合には、詳細エラー情報は返却されません。返却される情報は以下のとおりです。

変数

内容

index

不正データの位置情報(0~)を返却します。正常終了時は-1です。

invalidcodelen

不正コードの文字コード長(バイト数)を返却します。

正常終了時は0を返却します。

error(OUT)

詳細エラー番号を返却する領域のポインタを指定します。NULLポインタを指定すると、エラーとなります。関数が正常終了した場合には0が返却され、エラー終了時には1以上の詳細エラー番号が返却されます。詳細エラー番号として返却される値は以下のとおりです。

復帰値

エラー内容

CHARSETMANAGER_VALIDATOR_ERROR_NO_MEMORY

メモリ不足です。

CHARSETMANAGER_VALIDATOR_ERROR_NULL_PROPERTY

cvppポインタがNULLです。

CHARSETMANAGER_VALIDATOR_ERROR_NULL_INPUT_DATA

indataポインタがNULLです。

CHARSETMANAGER_VALIDATOR_ERROR_ILLEGAL_PROPERTY

cvppが不正です。または、バリデーションポリシー設定関数が正しく呼び出されていません。

CHARSETMANAGER_VALIDATOR_ERROR_ILLEGAL_STATUS

csspが不正です。

CHARSETMANAGER_VALIDATOR_ERROR_CODE_SHORTAGE

indataが文字コードの途中で切れています。

CHARSETMANAGER_VALIDATOR_ERROR_ILL_FORMED

indataがエンコーディング不当です。

CHARSETMANAGER_VALIDATOR_ERROR_CODE_INVALID

indataがバリデーションにより無効と判定されました。

CHARSETMANAGER_VALIDATOR_ERROR_CODE_UNSPECIFIED

入力文字列の最後に特定できない文字が残存しています。バッファリングしてバリデーションをしている場合は、残存しているバイト列を次回バリデーション時の先頭にまわしてください。

復帰値

0

関数が正常終了しました。

1

関数がエラー終了しました。エラーの原因については、詳細エラー番号と詳細エラー情報を参照してください。

4.1.1.4 charsetmanager_validator_close

バリデーション終了関数です。

呼び出し形式

int charsetmanager_validator_close(
       charsetmanager_validator_property_ptr cvpp,
       int * error
);

機能説明

バリデーション情報格納域を解放します。バリデーション開始関数(“4.1.1.1 charsetmanager_validator_open”)とセットで呼び出してください。

パラメタ

cvpp(IN)

バリデーション情報格納域のポインタを指定します。バリデーション開始関数(“4.1.1.1 charsetmanager_validator_open”)の復帰値を指定します。

error(OUT)

詳細エラー番号を返却する領域のポインタを指定します。NULLポインタを指定すると、エラーとなります。関数が正常終了した場合には0が返却され、エラー終了時には1以上の詳細エラー番号が返却されます。詳細エラー番号として返却される値は以下のとおりです。

復帰値

エラー内容

CHARSETMANAGER_VALIDATOR_ERROR_NULL_PROPERTY

cvppポインタがNULLです。

CHARSETMANAGER_VALIDATOR_ERROR_ILLEGAL_PROPERTY

cvppが不正です。

復帰値

0

関数が正常終了しました。

1

関数がエラー終了しました。エラーの原因については、詳細エラー番号を参照してください。