付録D.2 ヘッダファイルDsc_interface.h)

<この項の構成>
(1) 構成項目情報構造体(Dsc_member_item_struct_t)
(2) データ項目情報構造体(Dsc_item_struct_t)
(3) 関連データ項目情報構造体(Dsc_link_item_struct_t)
(4) 業務ルール情報構造体(Dsc_rule_struct_t)
(5) 関数の戻り値(Dsc_status_t)
(6) 検査結果(Dsc_result_t)
(7) エラーID(Dsc_err_id_t)

(1) 構成項目情報構造体Dsc_member_item_struct_t)

typedef struct Dsc_member_item_struct_t {
 Dsc_int_t    item_kind;          //データ項目種別
 Dsc_char_t  *item_name;          //データ項目名
 Dsc_int_t    type_group;         //分類
 Dsc_int_t    total;              //けた数
 Dsc_int_t    dec_part;           //小数部けた数
 Dsc_int_t    repeat;             //反復回数
 Dsc_char_t  *var_name[11];       //名前(言語別)
 Dsc_int_t    type[11];           //タイプ(言語別)
 Dsc_char_t  *type_name[11];      //タイプキーワード名
                                    (言語別)
 Dsc_char_t  *type_comment[11];   //タイプキーワードの
                                    説明(言語別)
 Dsc_char_t  *edit_str[11];       //タイプ修飾情報
                                    (言語別)
 void        *reserve;            //予備
} Dsc_member_item_struct_t;

(2) データ項目情報構造体Dsc_item_struct_t)

typedef struct Dsc_item_struct_t {
 Dsc_int_t     item_kind;         //データ項目種別
 Dsc_char_t   *item_name;         //データ項目名
 Dsc_char_t   *parent_name;       //親データ項目名
 Dsc_char_t   *dict_name;         //辞書フォルダ名
 Dsc_char_t   *std_name[5];       //標準名称(国語別)
 Dsc_char_t   *furigana[5];       //フリガナ(国語別)
 Dsc_char_t   *comment[5];        //コメント(国語別)
 Dsc_char_t   *field[21];         //フィールド1~20
 Dsc_int_t     type_group;        //分類
 Dsc_int_t     total;             //けた数
 Dsc_int_t     dec_part;          //小数部けた数
 Dsc_int_t     repeat;            //反復回数
 Dsc_char_t   *var_name[11];      //名前(言語別)
 Dsc_int_t     type[11];          //タイプ(言語別)
 Dsc_char_t   *type_name[11];     //タイプキーワード名
                                    (言語別)
 Dsc_char_t  *type_comment[11];   //タイプキーワードの
                                    説明(言語別)
 Dsc_char_t   *type_free[11];     //タイプフリー定義
                                    (言語別)
 Dsc_char_t   *edit_str[11];      //タイプ修飾情報
                                    (言語別)
 Dsc_char_t   *init_val[11];      //初期値(言語別)
 Dsc_char_t   *lang_field[11];    //言語別フィールド
                                    (言語別)
 Dsc_int_t     exam_result;       //検査状態
 time_t        update_time;       //更新日時
 Dsc_member_item_struct_t  *member_array;
                                  //構成項目情報
 Dsc_int_t     member_cnt;        //構成項目数
 void         *reserve;           //予備
} Dsc_item_struct_t;

(3) 関連データ項目情報構造体Dsc_link_item_struct_t)

typedef struct Dsc_link_item_struct_t {
 Dsc_int_t    item_kind;          //データ項目種別
 Dsc_char_t  *item_name;          //データ項目名
 Dsc_char_t  *keyword;            //キーワード
 Dsc_trigger_t  trigger;          //適用条件
 Dsc_int_t    type_group;         //分類
 Dsc_int_t    total;              //けた数
 Dsc_int_t    dec_part;           //小数部けた数
 Dsc_int_t    repeat;             //反復回数
 Dsc_char_t  *var_name[11];       //名前(言語別)
 Dsc_int_t    type[11];           //タイプ(言語別)
 Dsc_char_t  *type_name[11];      //タイプキーワード名
                                    (言語別)
 Dsc_char_t  *type_comment[11];   //タイプキーワードの説
                                    明(言語別)
 Dsc_char_t  *type_free[11];      //タイプフリー定義(言語
                                    別)
 Dsc_char_t    *edit_str[11];     //タイプ修飾情報(言語別)
 Dsc_char_t    *init_val[11];     //初期値(言語別)
 Dsc_char_t    *lang_field[11];   //言語別フィールド(言語
                                    別)
 void          *reserve;          //予備
} Dsc_link_item_struct_t;

(4) 業務ルール情報構造体Dsc_rule_struct_t)

typedef struct Dsc_rule_struct_t {
 Dsc_int_t     rule_kind;          //業務ルール種別
 Dsc_char_t   *rule_name;          //業務ルール名
 Dsc_char_t   *dict_name;          //辞書フォルダ名
 Dsc_char_t   *std_name[5];        //標準名称(国語別)
 Dsc_char_t   *furigana[5];        //フリガナ(国語別)
 Dsc_char_t   *comment[5];         //コメント(国語別)
 Dsc_char_t   *field[4];           //フィールド1~3
 Dsc_char_t   *src_info[11];       //ルールスクリプト
                                     (言語別)
 Dsc_int_t     exam_result;        //検査状態
 time_t        update_time;        //更新日時
 Dsc_link_item_struct_t  *item_array;
                                   //関連データ項目情報
 Dsc_int_t       item_cnt;         //関連データ項目数
 void           *reserve;          //予備
} Dsc_rule_struct_t;

(5) 関数の戻り値Dsc_status_t)

typedef enum {
 DSC_ERROR = 0,                //エラー発生
 DSC_OK                        //正常終了
} Dsc_status_t;

(6) 検査結果Dsc_result_t)

typedef enum {
 DSC_CHECK_NG = 0,              //エラーあり
 DSC_CHECK_OK                   //エラーなし
} Dsc_result_t;

(7) エラーIDDsc_err_id_t)

typedef enum {
 DSC_ERRID_ITEM_ERR_1 = 10000,     //データ項目検査用
 DSC_ERRID_ITEM_ERR_2,
 DSC_ERRID_ITEM_ERR_3,
 DSC_ERRID_ITEM_ERR_4,
 DSC_ERRID_ITEM_ERR_5,
           :
 DSC_ERRID_ITEM_ERR_100,
 DSC_ERRID_RULE_ERR_1 = 20000,     //業務ルール検査用
 DSC_ERRID_RULE_ERR_2,
 DSC_ERRID_RULE_ERR_3,
 DSC_ERRID_RULE_ERR_4,
 DSC_ERRID_RULE_ERR_5,
           :
 DSC_ERRID_RULE_ERR_100
} Dsc_err_id_t;