myGroup > myProject
 

umsCodeGenerator 0.4

Major Versions

umsCodeGenerator version 0.4
Capability of
  • choice
  • repeat
  • optional
  • zeroOrMore
  • oneOrMore.
has been recovered from this version with new processing algorithms
  • Method 3: - One pass processing which supports XML, interleave (recurse of self is prohibited), recursive ref-define within finite depth. Sample is shown here.
Supported Data Structure and Processing Language is the same with tableTools version 0.4.
tableTools version 0.4
This version can only handle simple table type structure. Both decoding and encoding of sequential data are supported. On the other hand, following capability was tentatively descoped
  • choice
  • repeat
  • optional
  • zeroOrMore
  • oneOrMore.
  • Supported Data Structure
    • Sequential Data in Text and Binary format - http://ums.isas.jaxa.jp/0.4/dat
  • Supported Processing Language
    • C - http://ums.isas.jaxa.jp/0.4/clng
    • JAVA - http://ums.isas.jaxa.jp/0.4/java
umsCodeGenerator version 0.3
Most of processing in 'umsCompiler' has been moved into the XSL stylesheet of 'umsCodeGenerator' version 0.3. Since XSLT has limited capability in handling of strings, small portion of processing is still written in JAVA. This version of umsCodeGenerator supports generation of decoding library of serial data. C, JAVA and PERL version was available. Only Method 2 type processing was supported in this version.
  • Supported Data Structure
    • Sequential Data in Text and Binary format - http://ums.isas.jaxa.jp/0.3/dat
  • Supported Processing Language
    • Perl - http://ums.isas.jaxa.jp/0.3/perl
    • C - http://ums.isas.jaxa.jp/0.3/clng
    • JAVA - http://ums.isas.jaxa.jp/0.3/java
umsCompiler version < 0.2
Oldest version of this program written in JAVA language. This version supported two decoding algorithms
  • Method 1 (only for input of text data): Converts mapping definition into a regular expression and use regular expression library.
  • Method 2: Two pass proccessing for both text and binary data.

Minor Releases

2006年11月22日:20061122 版 リリースノート
  • デコード/エンコード関数のインタフェースを変更しました。
  • Xalan、MSV、Jing、Trangを同梱しました。
  • W3C datatype の hexBinary 型に対応しました。
2006年10月20日:20061020 版 リリースノート
  • value 要素の制約ファセットをスキーマに追加しました。
  • 生成ソースコードを最適化しました。
2006年10月06日:20061006 版 リリースノート
  • umsCodeGenerator として未サポートのタグをチェックする機能を追加しました。
  • 例外発生時のメッセージを分かりやすくしました。
2006年09月13日:20060913 版 リリースノート
  • 環境変数 UMS_THREAD の設定が必要になりました。
  • umsCodeGenerator によって生成されるソースコードの処理に用いるデータ構造を変更しました。
2006年08月16日:20060816 版 リリースノート
  • 入力ファイル (mapping definition file) のチェック機能を充実させました。
2006年07月28日:20060728 版 リリースノート
  • 20060714 版 UMS 仕様に対応するよう、処理の変更、制約の追加を行いました。
  • Java 版の package 指定に対応させました。
2006年07月14日:20060714 版 リリースノート
  • 20060419 版 UMS 仕様に対応するよう、処理の変更、制約の追加を行いました。
  • group, interleave, choice, optional, zeroOrMore, oneOrMore, empty について、 「dat」名前空間に対応しました。
2006年06月23日:20060623 版 リリースノート
  • pre 処理のステップを無くし、umsCodeGenerator 生成時の build 速度を改善しました。
:
2005年10月25日: umsCodeGenerator-2005102501.tar.gz
内部処理を全面的に見直し無駄な処理を省きました。 interleave を組み込みました。 全般的にタグを入れ子にした場合の試験ケースが甘いので包括的な試験を今後実施します。(-KM-)
2005年9月19日:
スキーマの仕様のドラフトを作成しました( see http://ums.isas.jaxa.jp/ )。 umsCodeGenerator の最新版とほとんど一致していますが、 line タグの代わりに lines タグが導入され、 ツール側とは不一致になっています。(-KM-)
2005年9月17日: umsCodeGenerator-2005091701.tar.gz
エラーメッセージを充実させました。 同梱の encodingLibrary がサポートする型を増やしました。(-KM-)
2005年8月3日: umsCodeGenerator-2005080301.tar.gz
tableTools を umsCodeGenerator に統合しました。 file タグを実装し、mapping definition ファイルから 明示的に出力先ソースファイルの名称を規定できるようにしました。(-KM-)
2005年8月1日:
tableTools/umsCodeGenerator 双方に line タグ、param タグが実装されました。 line タグは、「テキストファイルの1行」に対応するものです。 また、umsCodeGenerator に optional, choice, zeroOrMore, oneOrMore の 機能が実装されました。サンプルに残っていたロケールの依存性を 排除し、環境変数 CC を参照し使用するコンパイラを決めるなど 各種プラットホームへの対応への準備を進めています。(-KM-)
2005年7月29日: tableTools-2005072953.tar.gz umsCodeGenerator-2005072953.tar.gz
  • ロケール非依存化
  • 環境変数 CC を参照
  • line のサポート
  • optional のサポート (umsCodeGenerator のみ)
2005年7月23日: tableTools-2005072305.tar.gz umsCodeGenerator-2005072305.tar.gz
従来の syntax (XML-XML syntax) に加え、 XML-language syntax をサポートしました。 プログラムの中にスキーマを埋め込む形で使えるので便利です。 oneOrMore, zeroOrMore, choice のサポートしました(umsCodeGenerator)。 (-KM-)
2005年7月2日: tableTools-2005070253.tar.gz
  • XSL の記述を整理圧縮。
  • pre XSL の処理を追加。 XSL をメタに記述しておき論理関係をすっきりさせる。 コメント出力の取り扱い、コンテナの取り扱いなど
  • post xsl の処理を追加。 言語固有性はここで吸収。
2005年6月26日: tableTools-2005062653.tar.gz umsCodeGenerator-2005062653.tar.gz
  • 例のディレクトリ構造を整理。
  • list の実装を変更。 separator 属性、delimiter 属性 に対応。ネストへの対応。
  • umsCodeGenerator (制御構造あり向け) と tableTools (制御構造なし向け) を分離。 処理ロジックは可能な限り共通化。 ただし、今のところどちらも制御構造 には対応していない。 C 言語版もコンパイル可能に。
2005年6月24日: tableTools-2005062451.tar.gz
  • JAVA 版において <list/> 要素の処理に対応。 CSV 対応のための separator 属性が導入されました。 が、separator 属性、delimiter 属性とし再定義の 予定であり、これを用いる場合 mapping 定義の re-write が必要になります。
  • マッピング定義ファイルを検証するための RELAX NG ファイルを作成しました。
  • 例外処理の考え方を整理しました。
2005年6月21日:
本体とは切り離した encodingLibrary の拡張を始めました (ここに書くべきことではないかもしれません)。
2005年4月25日: tableTools-2005042504.tar.gz
C 版において <list/> 要素の処理に対応しました。 encodingLibrary (RELAX NG の datatypeLibrary の機能を包含) を tableTools の本体部分と切り分けました。 これにより、tableTools 本体に手を加えずに、新たな encodingLibrary を追加することが可能になりました。
  • これにより発覚した、サンプル中の datatypeLibrary の誤記を訂正。その他、ヘッダファイルの指定誤りを訂正。
  • (C 版のみ) W3C_typeConversionLibrary において、int 型の 値域に含まれない場合、txt エンコードの unsignedInt 型を 正しくデコードできないバグを訂正。
2005年4月18日:
tableTools version 0.4 をリリースしました。 mappingSchema の文法 (version 0.4) は、 これをもとにフリーズします。 今後は、曖昧さを解消するための、記述の追加など、 コンパチビリティを保ちつつ進化させていきます。(-KM-)
2005年4月16日: tableTools-20050416.tar.gz
  • (C 版のみ) typeConversionLibrary 全面見直し。 <data/> 要素、<value/> 要素と datatype の組み合わせによって生じる潜在バグを訂正。
  • <value/> - string, token 型の encode 処理の リテラル生成で \ 記号が使われた場合の処理誤りを訂正。
  • <defineMapping/> - 文法変更。
2005年4月15日: tableTools-2005041501.tar.gz
2005年4月13日: tableTools-2005041301.tar.gz
2005年03月以前の開発の履歴・記録

制約事項

  • <value-of>要素の select 属性で使用できる書式に制限があります。 a.b.c などというように、変数名、構造体メンバアクセスを空白を入れず列挙することしかできません。 例えば、<value-of select="(a).a"/>という記述はできません。
  • C言語の typedef はサポートされていません。
  • 現在は、Java 版のみエラーメッセージの多言語対応(英語メッセージと日本語メッセージ)を行っています。 C版については、英語メッセージしか出力できません。今後対応を行っていく予定です。
  • Java 版の typeConversionLibrary 関数において、文字列処理の encode が、現在は "US-ASCII" となっています。
  • dataTypeLibrary の URI と type のチェックは、完全ではありません。

既知のバグ

See Bugzilla.