build〜コード生成までの流れ >>
2006/06/21 MT
■build 処理
(1) コード生成に必要な XSL ファイルを、build 配下に method 毎に用意する。
[ EXE ] cp src/xslt/raw/*.xsl build/xslt/$dir
cp src/xslt/mN/*.xsl build/xslt/$dir
cp datatype/src/*.xsl build/xslt/mN
■ソースコードの生成
(1) シェルを実行する。
[ IN ] umsfilename.ums
[ EXE ] $TABLETOOLS_HOME/bin/txt2lang
[ OUT ] outdirpath/sourcefilename.lang
シェルの中では、以下が実行される。
[ EXE ] codeGenerator.jar
[ PRM ] baseDirPath
tempDirPath
umsFilePath
outDirPath
method
option
■CodeGenerator
(0) 下準備を行う。
- XSLファイルのURI解決を行う。
-> "file://localhost" を "/build/xslt/m"+method+"/" に置き換える。
- 作業用一時ディレクトリを作成する。
-> "yyyyMMddHHmmssSSS"
(1) UMS ファイルに、ファイル名・行番号を埋め込む。
[ IN ] umsfilename.ums
[ EXE ] XmlEditor addFileInfo()
[ OUT ] tempDirPath/file1.xml
(2) 入力 UMS に対応した XSL を生成する。
[ IN ] tempDirPath/file1.xml
[ EXE ] VarTypeDefXsl.xsl / txt_lang1.xsl
[ OUT ] tempDirPath/fileOutputTable.xsl
tempDirPath/finalTransform.xsl
(3) UMS を Language syntax へ変換する。
[ IN ] tempDirPath/file1.xml / tempDirPath/file2.xml
[ EXE ] tempDirPath/finalTransform.xsl
[ OUT ] tempDirPath/file3.xml
(4) を含んだファイルの mixed content へ変換する。
[ IN ] tempDirPath/file3.xml
[ EXE ] txt_lang2.xsl
[ OUT ] tempDirPath/file4.xml
(5) を解決したファイルの mixed content へ変換する。
[ IN ] tempDirPath/file4.xml
[ EXE ] secondTransform.xsl
[ OUT ] tempDirPath/file5.xml
(6) によって出力ファイルを振り分け、[.lang] ファイルを生成する。
[ IN ] tempDirPath/file5.xml
[ EXE ] tempDirPath/fileOutputTable.xsl
[ OUT ] outdirpath/sourcefilename.lang
以上