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

Relax Ng
Eric van der Vlist
O'Reilly Media, Inc., 2003-07

Amazon Rank: 87880
Average Rating: amazon rating 4.5

amazon rating 5
Covered exactly what is needed
amazon rating 5
The rule of XML schema
amazon rating 4
Short but thorough

コメントを投稿 / Submit Comments


Warning: Undefined variable $user_ID in /usr/home/jinmei/src/itheme/comments.php on line 74



(あれば / Optional):