
ASTERIAでxml形式のデータを取り扱う必要が出てきました。私の過去の経験では固定長やCSVを扱ったことはあるのですが、xmlを使うのは初体験です。
さて、どうするんでしょうか?
■ 定義
ASTERIAの導入時に固定長、CSV、Excelの3ファイルについては読み書きをしてみました。そっちの方は見ればわかるレベルで分かったのです。
適当にフローを作って、MapperにCSVファイルの定義をしてみます。3項目のCSVファイルの定義ならこんな感じ。

では、これをxml形式にするとなると、どうなるんだろうか?
ストリーム型をxmlに変えてみました。

先頭にはroot、record[]と書かれた行が追加されています。xmlはタグ区切りの階層構造らしいので、rootが文字通り文書全体を表す箇所で、recordってのがデータの1行を表す開始&終了タグって意味と思われます。
んで、データが複数行ある場合は項目名の後に[]って付けることで表現するみたいですね。
気になるのがデータ型。これは見ての通りカンマの後に書くようです。ただ、rootやrecordには無いほうが自然な気がするのですが、どうやら必須項目らしいので書かないとダメみたいです。
xmlの知識が0に近いから良く分かりませんが、確か、DTDとかいうxmlの型の詳細を記述できるけど、それを省略して直接データの部(文書本体っていうのかな?)記述できたはず。おそらく、このDTDとやらは無い状態なんかと思われます。
■ 書き方
続けて、ASTERIAのお得意のCSV形式でのレイアウト編集を表示してみました。

階層構造は、タブで表現するようです。これはこれで分かりやすいかな?
■ 実験
簡単なxml文書を実験します。csvファイルをxmlに変換するフローを作ります。

csvファイルは、Mapperで直接値を突っ込んで作成。

それを、xmlに転記するだけです。

これを実行すると、それっぽい結果(ストリーム)が作成されました。

■ 後書き
ASTERIAのヘルプって結構充実しているのですが、どうも連携部分が弱い気がします。まぁ、ここまでくるとマニュアルというよりは実装例って話になりそうですが・・・
最初にxmlを取り扱う必要が出たと書きましたが、とあるシステムとの連携部分のインターフェイスがxmlなのでやむおえずって感じです。
xmlって柔軟にデータ構造を定義できるのが魅力なのでしょうが、無駄に仕様を複雑にしすぎているように感じがして嫌いです。ですが、これも世の流れなのでしょうか。やれやれです。
次回:ASTERIAでxml文書を扱ってみたNo2 読込
最新の記事:http://harikofu.blog.fc2.com/
投稿記事の一覧:http://harikofu.web.fc2.com/
--- blog end ---
スポンサードリンク


