このブログの更新は Twitterアカウント @m_hiyama で通知されます。
Follow @m_hiyama

メールでのご連絡は hiyama{at}chimaira{dot}org まで。

はじめてのメールはスパムと判定されることがあります。最初は、信頼されているドメインから差し障りのない文面を送っていただけると、スパムと判定されにくいと思います。

参照用 記事

Comment vs PI:オマケ:ターゲット名はなぜ修飾できないか?

「PIのターゲット名にQNameが使えるといいのに」と思うことはあります。一時、<?xml:stylesheet ... ?>なんてインチキXMLスタイルシート宣言がまかり通っていたので、PIにも接頭辞修飾された名前が使えると思っている人もいるようです。

が、ダメですね。QNameは使えません。なぜかというと: PIの使用例で多いのは、XMLスタイルシート宣言のようにプロローグPI(文書要素の前に登場する)です。プロローグで<?my:instruction ... ?>とか書いたとき、接頭辞myを名前空間URIとバインドする宣言はどこに書けばいいのでしょう? どこにも書けませんよね。

「プロローグでは接頭辞ダメだけど、文書要素内ならイイ」とかいうのも一貫性に欠けるし、そこまでしてターゲット名を修飾するほどのこともないでしょう。それとは別に、一時、DTD内の記法宣言でターゲット名(接頭辞じゃない!)とURIをバインドするなんて話もありましたが、んなこたぁ誰も憶えてないでしょう。

というわけで、PIターゲット名は、無構造なフラット記号空間*1に棲んでいるとみなすしかないのです。あまり短いと危険なので、XML Nameの範囲で、長くてユニークなものがいいでしょう(とりあえず僕は、ドメイン名以外に思い当たりませんが)。PIターゲット名記号空間が(習慣と道義によってでもいいから)紳士的に管理されるなら、the last resort としてはPIも悪くないメカニズムだと思います。

*1:XMLを語っている文脈では、namespaceの代わりにsymbolspaceを使います。