[20061006 版 umsCodeGenerator リリース] Mitsuhiro TOYODA


機能拡張

umsCodeGenerator でサポートしていないタグのチェック処理追加

umsCodeGenerator でサポートしていない以下のタグが mapping definition で 使用されている場合、エラーメッセージを出力するようにしました。

  <include>
  <div>
  <externalRef>
  <parentRef>
  <notAllowed>
  <text>

エラーメッセージとしては、タグ名と mapping definition ファイル中で使用されている位置を出力します。 以下がエラーメッセージの出力例です。

  file:///home/.../common.xsl; 行番号236; 列番号33;
  # Error - file:///home/.../scm_ce.ums line:18 column:23 element:<include>  "<include> is not supported."
  file:///home/.../common.xsl; 行番号236; 列番号33;
  # Error - file:///home/.../scm_ce.ums line:19 column:20 element:<text>  "<text> is not supported."
  file:///home/.../common.xsl; 行番号236; 列番号33;
  # Error - file:///home/.../scm_ce.ums line:20 column:19 element:<div>  "<div> is not supported."
  file:///home/.../common.xsl; 行番号236; 列番号33;
  # Error - file:///home/.../scm_ce.ums line:21 column:27 element:<externalRef>  "<externalRef> is not supported."
  file:///home/.../common.xsl; 行番号236; 列番号33;
  # Error - file:///home/.../scm_ce.ums line:22 column:25 element:<parentRef>  "<parentRef> is not supported."
  file:///home/.../common.xsl; 行番号236; 列番号33;
  # Error - file:///home/.../scm_ce.ums line:23 column:26 element:<notAllowed>  "<notAllowed> is not supported."
  file:///home/.../txt2clng.xsl; 行番号96; 列番号34;
  # Error - unsupported tag is used.


機能変更

エラーメッセージの出力形式変更

エラー種別の出力、入出力データのバイナリ表示、検出したエラー箇所の複数出力を行うようにいたしました。 以下がエラーメッセージの出力例です。

  データがマッピング定義とマッチしません。

  -- input data --
      at line 2, column 9
      at byte 26, bit 208

      Address| 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
      -------+------------------------------------------------
        0010 | 0a 43 48 4f 49 43 45 5f 4e 47 0a 63 68 6f 69 63
             |  .  C  H  O  I  C  E  _  N  G  .  c  h  o  i  c
                                           ^

  -- mapping definition --
      file:///home/.../scm.ums

      at line:38, column:46, element:<txt:value>, "データ(val)がデータ型のW3C datatypeで規定された形に一致しません。"
      value = 'CHOICE_A'
      at line:46, column:46, element:<txt:value>, "データ(val)がデータ型のW3C datatypeで規定された形に一致しません。"
      value = 'CHOICE_B'
      at line:54, column:46, element:<txt:value>, "データ(val)がデータ型のW3C datatypeで規定された形に一致しません。"
      value = 'CHOICE_C'

例外情報表示関数を UmsLibrary から UmsException へ移動

UmsLibrary から UmsException への移動に伴い、例外情報表示関数の関数名、使用方法が変更になりました。

C版の例外情報表示関数のインタフェースは以下の通りです。

  /**
   * @fn void ums__exception_print( ums__exception_t *ex, char *buffer, int bitlen )
   * @brief  例外通知メッセージと、入出力データのエラー位置を出力する。
   *
   * @param ex エラー情報
   * @param buffer 入力バッファ
   * @param bitlen 入力バッファ長
   */
  void ums__exception_print( ums__exception_t *ex, char *buffer, int bitlen ) {
  /* 使用例 */
  ums__exception_print( &ums__ex, buffer, bitlen );

Java版の例外情報表示関数のインタフェースは以下の通りです。

  /**
   * 例外通知メッセージと、入出力データのエラー位置を出力する。
   *
   * @param buffer 入出力バッファ
   * @param bitlen 入出力バッファ長
   */
  public void print( byte[] buffer, int bitlen )
  /* 使用例 */
  } catch ( UMSException ex ) {
    ex.print( buffer, bitlen );
  }


不具合対応

致命的なエラーが発生した場合と、パターンにマッチしなかった場合の処理の区別

致命的なエラーが発生した場合は全ての処理を停止し、パターンにマッチしなかった場合は 分岐したステートを削除するようにしました。

- [Bugzilla #117 remove と throw の違いの混同 http://eda.plain.isas.jaxa.jp/bugzilla/show_bug.cgi?id=117 ]

C版でエラーメッセージと詳細情報が出力されない

C版でもエラーメッセージと詳細情報が出力されるようにしました。

- [Bugzilla #126 m3, m4 で意味のあるエラーメッセージが出ない http://eda.plain.isas.jaxa.jp/bugzilla/show_bug.cgi?id=126 ]

テーブル処理でエラー情報が出力されない

テーブル処理でも、エラー情報が出力されるようにしました。

- [Bugzilla #114 エラーメッセージの機能のサポート範囲 http://eda.plain.isas.jaxa.jp/bugzilla/show_bug.cgi?id=114 ]

以上