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

4.1.3 入力ストリームカスタマイズAPI

入力ストリームでバッファリングしてバリデーションする場合に、データの扱いに関してカスタマイズする関数を用意しています。

4.1.3.1 charsetmanager_stream_treat_head_ZWNBSP_as_BOM

入力データの先頭に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とはみなされず、バリデーションポリシーに従った動作をします。

パラメタ

cvpp(IN)

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

cssp(IN)

入力ストリーム情報格納域のポインタを指定します。入力ストリーム情報生成関数(“4.1.2.1 charsetmanager_stream_open_status”)の復帰値を指定します。

treatment(IN)

入力データの先頭コードがU+FEFFだった場合に、BOMとして扱うかどうかを指定します。以下の値が指定できます。

0:BOMとして扱わない
1:BOMとして扱う

error(OUT)

詳細エラー番号を返却する領域のポインタを指定します。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

指定されたエンコーディング形式はサポートしていません。

復帰値

0

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

1

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

4.1.3.2 charsetmanager_stream_set_indata_status_ivs

入力データ状態設定関数(IVS)です。

呼び出し形式

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)”以外を指定した場合、本関数の設定は無視されます。

パラメタ

cssp(IN/OUT)

入力ストリーム情報格納域のポインタを指定します。入力ストリーム情報生成関数(“4.1.2.1 charsetmanager_stream_open_status”)の復帰値を指定します。

indata_status(IN)

バリデーションしたいデータの状態を設定する領域のポインタを指定します。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”)を呼び出すまで有効となります。

error(OUT)

詳細エラー番号を返却する領域のポインタを指定します。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が不正です。

復帰値

0

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

1

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