xml2env

説明

 xml2env は、XML 形式で書かれた ENV ライブラリ用リソースデータを、C のソースファイル形式に変換するためのツールです。

使用方法

起動コマンド

% perl init2env.pl RESOURCE_FILE
                  [-o OUTPUT_FILE]

RESOURCE_FILE で指定された XML 形式で書かれたリソースデータを C のソースファイル形式へ変換し、RESOURCE_FILE.result.c という名で出力します。
ただし、RESOURCE_FILE には変換したいファイルの絶対パスを入れる必要があります。

-o オプションで、出力ファイル名を RESOURCE_FILE.result.c からOUTPUT_FILE という名に変えます。

※もし XML::Parser が使用できない環境の場合は、cygwin のセットアップで perl の最新版と expat ライブラリを入れる必要があります。


XML 形式での ENV ライブラリ用リソースデータの記述例


変換前の XML 形式のリソースデータ

<envlist>
 <resource name="environment1">
  <class name="myClass11">
   <string name="str1">mario</string>
   <hexbinary name="bin1">12345678</hexbinary>
  </class>
 </resource>
 <resource name="environment2">
  <class name="myClass21">
   <string name="str1">mario</string>
   <hexbinary name="bin1">abcd123</hexbinary>
   <hexbinary name="bin2" src="../test/test.txt"/>
  </class>
  <class name="myClass22">
   <s32 name="data1">-500</s32>
   <u16 name="data2">0x8000</u16>
  </class>
 </resource>
</envlist>

変換後の C のソースファイル形式のリソースデータ

ENVResource myResource1[] = {
   "myClass11.str1",  ENV_STRING( "mario" ),
   "myClass11.bin1",  ENV_BINARY( "\x31\x32\x33\x34\x35\x36\x37\x38" ),
   ENV_RESOUCE_END
};

ENVResource myResource2[] = {
   "myClass21.str1",  ENV_STRING( "mario" ),
   "myClass21.bin1",  ENV_BINARY( "\x61\x62\x63\x64\x31\x32\x33" ),
   "myClass21.bin2",  ENV_BINARY( "test.txt ファイルの内容" ),
   "myClass22.data1",  ENV_S32( -500 ),
   "myClass22.data2",  ENV_U16( 0x8000 ),
   ENV_RESOUCE_END
};

ENVResource* resourceArray[]={ myResource1, myResource2, NULL };

リソースのタイプが BINARY の場合に限り、要素の中にsrcという属性の内容にファイルの相対パスを "" で囲んで指定することにより、自動的にファイルの内容をその要素のデータとすることができます。

生成した C のソースファイルを ENV を使用するプログラムと一緒にコンパイルすることで、そのままリソースデータを使うことができます。


場所

$TwlSDK/tools/bin/xml2env.pl

参照

ENV

履歴

2005/10/20 初版