バリデーションを行う基本的な関数群です。関数の呼び出しフローについては、“図2.2 C言語インタフェースの呼び出しフロー”を参照してください。
呼び出し形式
charsetmanager_validator_property_ptr charsetmanager_validator_open( const char * encoding, int * error );
機能説明
バリデーション情報格納域を取得してポインタを返却します。バリデーション終了関数(“4.1.1.4 charsetmanager_validator_close”)とセットで呼び出してください。
パラメタ
入力データのエンコーディング形式を文字列で指定します。指定できるエンコーディング形式は以下のとおりです。
エンコーディング形式 | 意味 |
---|---|
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文字として扱います。
詳細エラー番号を返却する領域のポインタを指定します。NULLポインタを指定すると、エラーとなります。関数が正常終了した場合には0が返却され、エラー終了時には1以上の詳細エラー番号が返却されます。詳細エラー番号として返却される値は以下のとおりです。
復帰値 | エラー内容 |
---|---|
CHARSETMANAGER_VALIDATOR_ERROR_NO_MEMORY | メモリ不足です。 |
CHARSETMANAGER_VALIDATOR_ERROR_NULL_ENCODING | encodingポインタがNULLです。 |
CHARSETMANAGER_VALIDATOR_ERROR_NOT_SUPPORT_ENCODING | encodingにサポートしていない文字列が指定されました。 |
復帰値
関数が正常終了し、バリデーション情報格納域を指すポインタが返却されます。以降のバリデーションAPIで本ポインタを利用します。
関数がエラー終了しました。エラーの原因については、詳細エラー番号を参照してください。
呼び出し形式
int charsetmanager_validator_set_policy_file( charsetmanager_validator_property_ptr cvpp, const char * validation_policy_path, int * error );
機能説明
バリデーションポリシーファイルを読み込み、バリデーション情報に格納します。
パラメタ
バリデーション情報格納域のポインタを指定します。バリデーション開始関数(“4.1.1.1 charsetmanager_validator_open”)の復帰値を指定します。
バリデーションポリシーファイル名を指定します。C言語用のバリデーションポリシー生成コマンドで生成したバリデーションポリシーファイル名のパスを指定してください。
詳細エラー番号を返却する領域のポインタを指定します。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 | 指定されたエンコーディング形式とバリデーションポリシーファイルの運用文字コードの組み合わせはサポートしていません。 |
復帰値
関数が正常終了しました。
関数がエラー終了しました。エラーの原因については、詳細エラー番号を参照してください。
呼び出し形式
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”を参照してください。
パラメタ
バリデーション情報格納域のポインタを指定します。バリデーション開始関数(“4.1.1.1 charsetmanager_validator_open”)の復帰値を指定します。
バリデーションしたいデータの先頭を指すポインタを指定します。
indataの長さ(バイト数)を指定します。
入力ストリーム情報格納域のポインタを指定します。入力ストリーム情報生成関数(“4.1.2.1 charsetmanager_stream_open_status”)の復帰値を指定します。本パラメタは、入力ストリームをバッファリングしてバリデーションしたい場合に指定してください。NULLポインタを指定した場合には、indataを常に入力ストリームの先頭として処理します。
詳細エラー情報を返却する領域のポインタを指定します。入力データが不正となった場合の詳細情報が返却されます。NULLポインタを指定した場合には、詳細エラー情報は返却されません。返却される情報は以下のとおりです。
変数 | 内容 |
---|---|
index | 不正データの位置情報(0~)を返却します。正常終了時は-1です。 |
invalidcodelen | 不正コードの文字コード長(バイト数)を返却します。 正常終了時は0を返却します。 |
詳細エラー番号を返却する領域のポインタを指定します。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 | 入力文字列の最後に特定できない文字が残存しています。バッファリングしてバリデーションをしている場合は、残存しているバイト列を次回バリデーション時の先頭にまわしてください。 |
復帰値
関数が正常終了しました。
関数がエラー終了しました。エラーの原因については、詳細エラー番号と詳細エラー情報を参照してください。
呼び出し形式
int charsetmanager_validator_close( charsetmanager_validator_property_ptr cvpp, int * error );
機能説明
バリデーション情報格納域を解放します。バリデーション開始関数(“4.1.1.1 charsetmanager_validator_open”)とセットで呼び出してください。
パラメタ
バリデーション情報格納域のポインタを指定します。バリデーション開始関数(“4.1.1.1 charsetmanager_validator_open”)の復帰値を指定します。
詳細エラー番号を返却する領域のポインタを指定します。NULLポインタを指定すると、エラーとなります。関数が正常終了した場合には0が返却され、エラー終了時には1以上の詳細エラー番号が返却されます。詳細エラー番号として返却される値は以下のとおりです。
復帰値 | エラー内容 |
---|---|
CHARSETMANAGER_VALIDATOR_ERROR_NULL_PROPERTY | cvppポインタがNULLです。 |
CHARSETMANAGER_VALIDATOR_ERROR_ILLEGAL_PROPERTY | cvppが不正です。 |
復帰値
関数が正常終了しました。
関数がエラー終了しました。エラーの原因については、詳細エラー番号を参照してください。