myGroup > myProject
 

Page for mappingSchema in general

Japanese

What is mappingSchema ?

In general, programs inputs and outputs data. In many cases, data is sequential. In an input, it is necessary to decode data with a format. In an output, it is necessary to encode data with a format. In the following figures, box at the outside shows a program and box at the inside shows a sequential data. The part placed between the inside and the outside box shows a processing of decode and encode.

Example of decode of sequential data

Example of encode of sequential data

mappingSchema is a grammar that specifies processing of decode and encode of sequential data. We call a description with this grammar mapping definition. A mapping definition can be described with XML documents. At present, mapping definition can only be described with XML. The whole of the grammar of mappingSchema has not been expressed yet. The subset of the grammar which the umsCodeGenerator can process is described by XML Schema (RELAX NG) and distributed with the mappingSchema processor.

When we combine a schema of sequential data (definition of the format) and a application program interface, we obtain a mapping definition. The order of steps to create a mapping definition can be decided in each case. One way is to provide a schema of sequential data and proceed into desining of a program. Into a given application program interface, we can allocate formats of sequential data.

According to a mapping definition program of processing of decode and encode can be made from the hand work. However, it is a good choice to use mappingSchema processor like umsCodegenerator / tableTools in the following cases 1) when you want to save the time of the hand work 2) when you require definite processing. There are several types of mappingSchema processors - program that generate a source code from a mapping definition, library program that read a mapping definition in a run time, etc. There are many processing algorithms (decode and encode) to achieve a mapping definition. We hope that we have enough variety of mappingSchema processors suitable for each application in the future.

Required knowledge

Knowledge of XML and its name space is required for usage of mappingSchema since mappingSchema is a schema language described in XML (sorry, no description is available at this moment). mappingSchema shares philosophy and some definition with an XML schema language RELAX NG. Knowledge of RELAX NG is helpful to understand mappingSchema. Altough XML version of mappingSchema is very similar with that of RELAX NG, there is some difference (see difference).

How To

In troduction of software development with mappingSchema is found here (sorry in Japanese).

develop program with mappingSchema (sorry, in Japanese). Note: Mapping definition and tools used in this document is somewhat older than the recent implementation of umsCodeGenerator.

Development

is now on-going by myself (KM) and few members. To accelerate our development, any contribution or collaboration is welcome.

Mailing Lists

Please send mail Mailing List itself if you want to join.

  • Users ML: ums_users@plain.isas.jaxa.jp
  • Developpers ML: ums_devel@plain.isas.jaxa.jp

文法の設計ポリシー

  • ツールの実装を隠蔽せよ。実装が見えてしまう場合、 記述できていないパラメータが存在する。文法を再考せよ。 例えば、ツール固有な内部 API の存在を意識させてはいけない。
  • 極力自分たち (ums group) で考案しないこと。 可能なら要素の定義そのもの。 無理なら考え方を取り入れよ。
  • 可能な限り少ない要素で構成せよ。 利便性のための2次的なものは、 1次的な定義に帰着できるようにする。
  • 汎用なものを目指せ。文法がその分煩雑になって構わない。
  • Encode と decode の対称性に留意する。 XML - XML syntax はその実現を目指すが、 XML - language syntax はそもそも実現不能である。

(-KM-)

PDF版ドキュメントの制限事項

本ドキュメントは、Apache Forrestを利用して記述しています。 PDF版には以下の見苦しい点があります。ご了承下さい。

  • 箇条書きの記号が「?」に文字化けして表示されてしまいます。
  • 表中の文章の折り返しがずれることがあります。
  • 図が挿入されません。