週末プログラミング
カロリーを消費しない日曜大工、といったところです。内容は、Amazon Web ServiceのAPIが3.0から4.0に変わったのに対応して、手元のJAVAプログラムを書き換えること。あとで忘れそうなので工程をメモ。
Amazon Web ServiceのresponseのXML Schema
ダウンロードは http://docs.amazonwebservices.com/AWSEcommerceService/2006-05-17/ から。このページがなかなか見つからない。Amazon E-Commerce自体の仕様は http://docs.amazonwebservices.com/AWSECommerceService/2007-07-16/DG/ から。これもメモを忘れるとすぐ、どこにあるか分からなくなる。
XML schemaからRELAX NGへの変換
Trangを用いる。ダウンロードは、作者James Clark氏のページ(http://www.jclark.com/bio.htm)から。Jingも一緒にダウンロードして、Trangと同じディレクトリ(jreのlib/ext)に置く。使い方は、コマンドラインから java com.thaiopensource.relaxng.translate.Driver
と、ここまでやって、TrangはXML Schemaを出力することはできても、入力としては受け付けないことが判明。しょうがないので、元のXMLを食わせて、文法推測によりRELAX NGを自動生成することに。
RelaxerでRELAX NGからjavaコードを生成
以前書いたRelaxer(http://d.hatena.ne.jp/ka-lei-do-scope/20080202#p1)を使う。コマンドラインから relaxer -useJAXP -package:
と、今RELAXERのマニュアル(http://www.asahi-net.or.jp/%7Edp8t-asm/java/tools/Relaxer/man_ja.html#doc1_101)を読んでいて気付いたのだけど、XMLからの文法推測はRelaxerだけでもできるらしい。Trangは要らなかった! ところで、XMLからTrangでRELAXER NGを生成した場合と、XMLファイルを直接RELAXERに食わせた場合を比べてみると、今使っているファイルに限って言えば、後者の方が正確なようだ。ますますもってTrang不要!