セレクターネームスペース削除
この日は、セレクターネームスペース周りについて考えてました。
最終的な結論として、セレクターネームスペースは、Xtalの仕様から削除されることになりました。
実装してみたものの、言語仕様やC++のインターフェイスが複雑になり、実行速度が落ちる割に、その必要性がいまいち感じられないためです。
セレクターネームスペースを入れようと思った一番の理由は、実はe4x相当の機能を入れるためでした。XMLには名前空間があるので、セレクターネームスペースが無いとe4xのように表現できないからです。
xml = <xxx xmlns:ns="http://d.hatena.ne.jp/xtalco/"> <ns:item> <ns:foo>foo</ns:foo> </ns:item> </xxx>; // セレクターネームスペースがあるからこのようにアクセスできる。 xml.ns::item.ns::foo //もしセレクターネームスペースが無いとしたら、 //名前空間の付いたタグはメソッド経由でのアクセスになるだろう。 //こんな風な。 xml.child("item", ns).child("foo", ns)