xsi:nil その他
訳あって python で XML Schema を触る日々。generateDS.py は ref 属性のネームスペースを無視する (追記: つまり、QNAME ではなく ':' 以前を取り除いて単なる NCNAME として扱う) のでダメダメであった。直そうにもソースも一枚岩で手のつけようがない。かくして自分でゴリゴリ書きはじめる。悪い癖でけっこう。
そういえば、Tim Bray御大が「W3C XML Schemas (XSD) suck」と確信から口をすべらせ、「あー、言っちゃったよ」と誰もが思った去年の秋頃。それでも RELAX NG は根本的にネーミングが悪いがために普及しなかったのであろうという有力な推察については最後まで触れられておらず歯がゆい思いをしたのは記憶に新しい。
XML Schema で個人的に一番よくないと思う点は、同じ名前のタグに意味を多重化しているところ、言い替えると、文脈によってタグの意味が変わるところだ。これでは人間にとっても機械にとってもフレンドリーじゃない*1。
例えば
しかし、xsi:nil (where xsi denotes http://www.w3.org/2001/XMLSchema-instance) はヒドイ。どんだけ nil を表現したかったのか。