入力ストリームでバッファリングしてバリデーションする場合に、データの扱いに関してカスタマイズする関数を用意しています。
入力データの先頭にU+FEFF(ZWNBSP:Zero Width Non-Breaking SPace)があった場合、BOM(Byte Order Mark)とみなして動作することを設定する関数です。
呼び出し形式
int charsetmanager_stream_treat_head_ZWNBSP_as_BOM( charsetmanager_validator_property_ptr cvpp, charsetmanager_stream_status_ptr cssp, int treatment, int * error );
機能説明
入力データの先頭コードがU+FEFFだった場合に、BOMとみなす(バリデーションポリシーには従わず、常に有効とする)ように設定します。入力ストリーム情報生成関数(“4.1.2.1 charsetmanager_stream_open_status”)の呼び出し直後、または入力ストリーム継続情報初期化関数(“4.1.2.2 charsetmanager_stream_init_stream”)の呼び出し直後にバリデーション関数(“4.1.1.3 charsetmanager_validator_validate”)を呼び出した場合に、本設定の動作をします。本関数は入力ストリーム情報生成関数(“4.1.2.1 charsetmanager_stream_open_status”)を呼び出してから、呼び出してください。呼び出されなかった場合、入力データの先頭コードがU+FEFFだった場合に、BOMとはみなされず、バリデーションポリシーに従った動作をします。
パラメタ
バリデーション情報格納域のポインタを指定します。バリデーション開始関数(“4.1.1.1 charsetmanager_validator_open”)の復帰値を指定します。
入力ストリーム情報格納域のポインタを指定します。入力ストリーム情報生成関数(“4.1.2.1 charsetmanager_stream_open_status”)の復帰値を指定します。
入力データの先頭コードがU+FEFFだった場合に、BOMとして扱うかどうかを指定します。以下の値が指定できます。
0:BOMとして扱わない
1:BOMとして扱う
詳細エラー番号を返却する領域のポインタを指定します。NULLポインタを指定すると、エラーとなります。関数が正常終了した場合には0が返却され、エラー終了時には1以上の詳細エラー番号が返却されます。詳細エラー番号として返却される値は以下のとおりです。
復帰値 | エラー内容 |
---|---|
CHARSETMANAGER_VALIDATOR_ERROR_NULL_PROPERTY | cvppポインタがNULLです。 |
CHARSETMANAGER_VALIDATOR_ERROR_NULL_STATUS | csspポインタがNULLです。 |
CHARSETMANAGER_VALIDATOR_ERROR_ILLEGAL_PROPERTY | cvppが不正です。 |
CHARSETMANAGER_STREAM_ERROR_ILLEGAL_STATUS | csspが不正です。 |
CHARSETMANAGER_VALIDATOR_ERROR_ILLEGAL_TREATMENT | treatmentが不正です。 |
CHARSETMANAGER_VALIDATOR_ERROR_NOT_SUPPORT_ENCODING | 指定されたエンコーディング形式はサポートしていません。 |
復帰値
関数が正常終了しました。
関数がエラー終了しました。エラーの原因については、詳細エラー番号を参照してください。
呼び出し形式
int charsetmanager_stream_set_indata_status_ivs( charsetmanager_stream_status_ptr cssp, const charsetmanager_validator_indata_status_ivs * indata_status, int * error );
機能説明
バリデーションポリシー定義ファイルの運用文字コード名に”Unicode(UCS4_IVS)”を指定した場合に、バリデーション関数(“4.1.1.3 charsetmanager_validator_validate”)で、バリデーションしたいデータ(indata)の状態を設定します。
運用文字コード名に”Unicode(UCS4_IVS)”以外を指定した場合、本関数の設定は無視されます。
パラメタ
入力ストリーム情報格納域のポインタを指定します。入力ストリーム情報生成関数(“4.1.2.1 charsetmanager_stream_open_status”)の復帰値を指定します。
バリデーションしたいデータの状態を設定する領域のポインタを指定します。NULLポインタを指定するとエラーとなります。指定する情報は以下のとおりです。
変数 | 内容 |
---|---|
version | indata_statusのバージョンを指定します。1を設定してください。 |
indataFollow | 後続するデータの有無を指定します。 |
indataFollowに指定できる値は以下のとおりです。
なお、本APIを呼び出さない場合は、CHARSETMANAGER_VALIDATOR_INDATA_LASTが指定されたと解釈します。
値 | 内容 |
---|---|
CHARSETMANAGER_VALIDATOR_INDATA_LAST | バリデーションしたいデータ(indata)に、後続するデータが存在しない(データの終端である)場合に指定します。 |
CHARSETMANAGER_VALIDATOR_INDATA_CONTINUE | バリデーションしたいデータ(indata)に、後続するデータが存在する場合に指定します。 |
運用文字コードに”Unicode(UCS4_IVS)”を指定した場合、indataFollowに設定する値によって、以下のようにバリデーション関数(“4.1.1.3 charsetmanager_validator_validate”)の動作が変わります。
CHARSETMANAGER_VALIDATOR_INDATA_LASTを指定した場合
バリデーションしたいデータの終端の状態 | バリデーション関数の動作 | バリデーション関数の詳細エラー情報のstatusに設定される値 |
---|---|---|
基底文字 | 基底文字としてバリデーションする。 | なし |
基底文字の途中で切れた文字コード | 基底文字の直前までバリデーションする。 | CHARSETMANAGER_VALIDATOR_ERROR_CODE_SHORTAGE |
基底文字+途中で切れた文字コード(注) | 基底文字までバリデーションする。 | CHARSETMANAGER_VALIDATOR_ERROR_CODE_SHORTAGE |
基底文字+VS | IVSとしてバリデーションする。 | なし |
CHARSETMANAGER_VALIDATOR_INDATA_CONTINUEを指定した場合
バリデーションしたいデータの終端の状態 | バリデーション関数の動作 | バリデーション関数の詳細エラー情報のstatusに設定される値 |
---|---|---|
基底文字 | 基底文字の直前までバリデーションする。 | CHARSETMANAGER_VALIDATOR_ERROR_CODE_UNSPECIFIED |
基底文字の途中で切れた文字コード | 基底文字の直前までバリデーションする。 | CHARSETMANAGER_VALIDATOR_ERROR_CODE_SHORTAGE |
基底文字+途中で切れた文字コード(注) | 基底文字の直前までバリデーションする。 | CHARSETMANAGER_VALIDATOR_ERROR_CODE_UNSPECIFIED |
基底文字+VS | IVSとしてバリデーションする。 | なし |
(注)「途中で切れた文字コード」がUTF-32の”0000”のように、0面であることが確定していて、VSになり得ない文字コードの場合も含みます。
本APIで設定した値は、次に本APIを呼び出すか、入力ストリーム情報解放関数(“4.1.2.3 charsetmanager_stream_close_status”)を呼び出すまで有効となります。
詳細エラー番号を返却する領域のポインタを指定します。NULLポインタを指定すると、エラーとなります。関数が正常終了した場合には0が返却され、エラー終了時には1以上の詳細エラー番号が返却されます。詳細エラー番号として返却される値は以下のとおりです。
復帰値 | エラー内容 |
---|---|
CHARSETMANAGER_VALIDATOR_ERROR_NULL_STATUS | csspポインタがNULLです。 |
CHARSETMANAGER_VALIDATOR_ERROR_NULL_INDATA_STATUS | indata_statusポインタがNULLです。 |
CHARSETMANAGER_STREAM_ERROR_ILLEGAL_STATUS | csspが不正です。 |
CHARSETMANAGER_VALIDATOR_ERROR_ILLEGAL_INDATAFOLLOW | indataFollowが不正です。 |
CHARSETMANAGER_VALIDATOR_ERROR_ILLEGAL_VERSION | versionが不正です。 |
復帰値
関数が正常終了しました。
関数がエラー終了しました。エラーの原因については、詳細エラー番号と詳細エラー情報を参照してください。