週末プログラミング

カロリーを消費しない日曜大工、といったところです。内容は、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 .xsd .rng

と、ここまでやって、TrangはXML Schemaを出力することはできても、入力としては受け付けないことが判明。しょうがないので、元のXMLを食わせて、文法推測によりRELAX NGを自動生成することに。

RelaxerRELAX NGからjavaコードを生成

以前書いたRelaxer(http://d.hatena.ne.jp/ka-lei-do-scope/20080202#p1)を使う。コマンドラインから relaxer -useJAXP -package: .rng
と、今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不要!