2007年2月アーカイブ

概要: 今回のRuby Annotationモジュールの更新で、XHTML 1.1 Referenceの全ての要素、属性、コンテントセット、データタイプ、モジュールの解説を書き終わりました。──長かった! 足...

今回のRuby Annotationモジュールの更新で、XHTML 1.1 Referenceの全ての要素、属性、コンテントセット、データタイプ、モジュールの解説を書き終わりました。──長かった! 足かけ1年。中には随分長いブランクが幾つもありましたが、完成は完成です。XHTML 1.1 Referenceについては、今後は改稿だけになるでしょう。

実はこのXHTML 1.1 Reference、今回のもので第3版(という表現はあまり正しくないでしょうが)なんです。高校1年生の時自由研究でごく簡単な構造の文書型を考え、XML 1.0でXHTML Abstract Modulesの情報を基に要素や属性をXML文書にまとめ、XHTML 1.0 Strictに変換する為のXSLTを書いたのが1回目。3年生の時、また自由研究で、もっと実用的な(XHTML Abstract Modulesのコピーにとどまらない)リファレンスにしようと思って、大体今の形のようなリファレンスを作ったのが2回目。この時は要素の内容、属性値の型など、データは全て揃えたのですが、解説を数モジュール分書き終えた辺りで頓挫。その後、改めてデータベースとなるXML文書の構造を見直し、得られる情報も増やして作り直したのが今回のXHTML 1.1 Referenceなのです。去年の5月頃、4年強働いていたハードディスクが故障し、第1版、第2版やその他のあらゆるデータが飛んでいってしまいましたが、これだけはXREAのサーバで生きていたので損失を免れました。XREAに感謝。

このリファレンスで目指したのは、徹底的なハイパーリンクです。要素は勿論、属性やデータタイプ、コンテントセットなどについてもリンクが辿れて、リンク先ではより詳しい解説が見られる事は勿論、その属性がどの要素で使えるのか、そのコンテントセットはどんな要素を親にできるのか(これは即ちある要素の親になり得るのはどれかを調べる事に使えます)などの情報が得られる。紙媒体では実現できない、ハイパーテキストの利点を最大限に活かした(つもりの)リファレンス。これは恐らく他には無いデザインだと思っています(知らないだけかな)。尤も、属性に関しては、全て要素ごとに用意した方が正確で統一的だったかなと思っていますが。

この後暫くは、以前やっていたDirectXのラッパライブラリの作成に戻っているでしょうか。あとはDirectInput担当(と、Direct3Dの3D担当)が完成すればようやく本題に入れそうです。

概要: 蜂に刺された。痛い……。これで2回目か3回目だ。 Wikipediaで蜂の針について調べてみたら、刺す蜂はそう多くないらしい。痛みも今回は暫くしたら収まったし、強噛みされただけだったのか? 疵痕は丸く...

蜂に刺された。痛い……。これで2回目か3回目だ。

Wikipediaで蜂の針について調べてみたら、刺す蜂はそう多くないらしい。痛みも今回は暫くしたら収まったし、強噛みされただけだったのか? 疵痕は丸く腫れたけど。

概要: What's New in Internet Explorer 7.0というページを見つけたので、気になる点をいくつか書き出してみます。 HTML 4.01のABBR要素のサポート ...

What's New in Internet Explorer 7.0というページを見つけたので、気になる点をいくつか書き出してみます。

HTML 4.01のABBR要素のサポート

HTML 4.0.1 Support: Internet Explorer 7 recognizes the ABBR tag from HTML 4.0.1. ……って今頃?! まぁ、無いよりましですけど。勿論can be styled with CSSです。これで、心置きなくacronymをabbrに置き換える事ができますね。尤も、これはこのページを見るより前に気がついて、もうスタイルシートの方は書き換えてましたが。

それと、object要素のネストもサポートって書いてありますが、……逆に<object data="/image/valid-xhtml11" type="image/png">Valid XHTML 1.1</object>とかが解釈できなくなってませんか(内容が描画される)? 気のせい? IE6では(無様な)枠付きでも、表示だけはしてたのに。まぁ、<object data="/image/valid-xhtml11" type="image/png"><img src="/image/valid-xhtml11" alt="Valid XHTML 1.1"/></object>とやればIEでも問題無くなったので、いいのはいいんですが、ブラウザの退化によって記述が進化するというのも微妙ですねえ。

PNGのアルファチャンネルのサポート

Portable Network Graphics (PNG): Internet Explorer 7 adds support for Alpha Channel Transparency to PNG. ほうほう、これはいいですね。ミケネコ研究所のPNGのページによれば、Operaはバージョン7からサポートしているし、Mozillaの前身Netscapeもバージョン7でサポートしているようなので、Mozilla2でもきっと大丈夫でしょう。これで、Windowsブラウザ御三家ではアルファチャンネル付きのPNGイメージを堂々と使えるようになった訳ですね。祝着、祝着。

CSS2の子セレクタ(first-child含む)、隣接セレクタ、属性セレクタのサポート

Cascading Style Sheets (CSS) Updates: Internet Explorer 7 features improved CSS, Level 2 (CSS2) support for Selectors (first-child, adjacent, attribute and child selectors) and Fixed Positioning. って言われても、IE6まではサポートされていなかったので馴染みが無いセレクタです。ちょっと調べてみましょう。

子セレクタ(Child Selectors)

子孫セレクタ(Descendant Selectors)と似ていますが、子だけ(直接の内容要素だけ)に適用されるセレクタです。a > bのような書き方をし、aの子のbにマッチします。適用対象もbです。

first-child擬似クラス(first-child Pseudo Class)は、子セレクタと一緒に使い、a > b:first-childのように書きます。aが幾つかbを子に持っていても、適用されるのは最初のbだけです。

隣接セレクタ(Adjacent Sibling Selectors)

正確に言うと、隣接兄弟セレクタです。同じ親を持つ要素で、しかも隣接しているときにのみ適用されます。a + bのように書き、aとbが同じ親を持っていて、bが(コメントやテキストを除外すると)aの直後に続いている場合、bにマッチします。つまり、適用対象はbです。

属性セレクタ(Attribute Selectors)

クラスセレクタ(Class Selectors)はIE6まででもサポートしていましたが、これはもっと一般的なものです。スクウェアブラケットで挟まれた中に、属性名と属性値を指定することができ、しかも幾つも条件を重ねられます。

例えばa[title]で、title属性を(値は何でもいいから)持っているa要素にマッチします。a[rel="alternate"]では、rel属性が"alternate"であるa要素にマッチします。a[rel~="bookmark"]なら、rel属性が"alternate bookmark"であるなど、bookmarkという(スペースで区切られた)「単語」を持つa要素にマッチします。最後に、a[rel~="alternate"][hreflang|="en"]なら、rel属性が"alternate"単語を持ち、言語が英語であるa要素──hreflang属性の値が"en"、"en-US"、"en-UK"などであるa要素──にマッチします。

KatsuさんのCSS2リファレンスの対応状況によれば、MozillaやOperaでも大丈夫そうなので、これも堂々と使えるようになったものの中の一つという訳ですね。

しかし、この対応状況のページ、仮名・漢字遣いやデザインが言葉 言葉 言葉に似ていたので、てっきり同じ方かと思ったら、違うんですね。

概要: げげげぇ(何て汚い言葉遣いなんだ)。XSLT 2.0とXPath 2.0が2007-01-23に勧告されていますよ! W3Cの新着情報はRSSでSyndicateしてたのに、見落とすとは……。何の為に...

げげげぇ(何て汚い言葉遣いなんだ)。XSLT 2.0XPath 2.0が2007-01-23に勧告されていますよ! W3Cの新着情報はRSSでSyndicateしてたのに、見落とすとは……。何の為にチェックしてるんだか……はぁ。

ま、それはともかく待望のXSLT 2.0とXPath 2.0ですね。風の便りに聞いた所によると、XPathでは結果ツリーフラグメントをノードセットに再評価する事が仕様で定められるとの事でしたが、さて……

ほう、結果ツリーフラグメント(Result Tree Fragment)は消えたんですね(The result tree fragment data-type is eliminated.)。変数結合要素(と訳すのか? Variable-binding Element。xsl:variable要素とxsl:param要素の事)の値は、全部テンポラリツリーになるようですね(A variable-binding element with content (and no as attribute) now constructs a temporary tree, and the value of the variable is the root node of this tree.)。テンポラリツリー(Temporary Tree)はソースツリーでも最終結果ツリーでもない全てのツリーで、ソースツリー(Source Tree)というのはXSLT変換の入力で与えられるツリー(*.xmlファイルなんかで記述するツリーの事ですね)、最終結果ツリー(Final Result Tree)というのは最終出力にそのまま吐かれるツリーの事のようです。そして、テンポラリツリーはノードセットとしても扱える! いやあ、素晴らしい。これで、仕様書も言っているように独自実装のnode-set関数は消え去るでしょう。そして、MozillaやOperaでも僕の望むようなXSLT変換ができるようになるでしょう! ……って、Operaはまだdocument関数すら実装されていないんでした。……今、Opera 9.10にバージョンアップしてみましたが、Changes logにも書いてないし、実験しても駄目でした。

XSLT 2.0とXPath 2.0に対応するユーザーエージェントはいつ頃登場するでしょうか。IEが一番早そうですかね。今から楽しみです。

このアーカイブについて

このページには、2007年2月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2007年1月です。

次のアーカイブは2007年3月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。