Mar
07
細々とメンテナンスを続けているSan Francisco Bay Areaレストランリストの元データはXMLで管理しているのだが、手で書いているのでときどき間違いを入れてしまう。そこで、RELAX NGでschemaを定義してcommit前にチェックすることにした。
tagの対応不一致のようなsyntax上のエラーくらいなら(手で書いてるのでこれもときどきやってしまう)schema定義をするまでもないのだが、thumbnail画像を指定したつもりが縮小前の巨大画像になってたりするなどの意味的な間違いもときどきあるので。
定義はRELAX NG Compactで書いて、trangでXML版のRELAX NGに変換し、xmllint --relaxng
でチェックしている。
実際にチェックをかけてみたら、上でも書いたthumbnail画像の間違いがまだ残っていたのが見つかった他、zip codeが打ち間違いで6桁になってしまっていたのも見つかった。以下はschemaチェックで見つけて直した間違い部分のdiff(の一部)。
- <zip>940639</zip> + <zip>94063</zip> ... - <url>/photo/20081125/idx/IMG_0001.JPG</url> + <url>/photo/20081125/IMG_0001.JPG</url>
実用上の目的というより、RELAX NGのお勉強のつもりの方が強かったのだが、予想外にさっそく役立ってしまった。
デビューついでにO’Reillyの教科書も発注。
Relax Ng
Eric van der Vlist
O'Reilly Media, Inc., 2003-07
Amazon Rank: 87880
Average Rating:
- Covered exactly what is needed
- The rule of XML schema
- Short but thorough
Recent Comments