weavin'

 | 

2004-07-240020

[] XHTML2の変更点をつらつらと

昨日の「ぱっと見たよん」な解説だとダメですね。ちょっと詳しく書いてみます。

  • 「Structure Module → Document Module」「Block Module → Structual Module」「Inline Module → Text Module」と名称変更。
  • Attribute CollectionsがCore Attribute, Hypertext AttributesなどのModuleごとにグループわけされました。M12n of XHT2 Attribute Collectionsですね。
  • Metainformation Module/Metainformation Attributes Moduleなど、メタ情報に関する要素・属性の充実。このあと詳しく。

M12n関連はこれくらいです。要素/属性関連の変更などは次の通り。

  • html要素のversion属性に関し、XHTML Familyであることを示すための書式か何かが必要というノートが付きましたた。ちなみにversion属性は1.1とかにもあります。
  • html要素にはxsi:schemaLocation属性に関して明記され、SchemaLocの指定に関してこれを使えという但し書きがつくことになりました。
  • head要素にあったprofile属性が削除され、代わりにLinkTypesにprofileが用意されました。link要素からこれからProfile指定を行うことになります。
  • dtとddをグループ化するdi要素が導入されました。スタイル適用に利用できるよさげなプロパティが増えました。
  • accesskeyがaccessになりました。UA側のaccessに対する扱いがちょっと複雑になりそう。
  • naviindexがnextfocus, prevfocusへと変更。focus2属性でより柔軟にfocusの順番を指定できそうです。
  • stylesheetの指定はxml-stylesheet PIを使うようになり、LinkTypesからstylesheetが削除されました。暗黙的なstylesheetの指定方法から脱却できました。restype属性の例にstylesheetという値が用いられていますが、RELAX NGのLinkTypesでは定義されていないので、削除されたのでしょう。

このような感じです。たぶんもっともっとあります。

Metainformation関連はこの次のトピックで。

[][] XHTML2 Metainformation Elements/Attributes

XHTML2の今回出たドラフトは、XHTML and RDFで出されたアイデアをXHTMLに組み込んだものとなっています。

まず、Metainformation Moduleについて見てみます。昨年5月のドラフトではmeta要素のみでしたが、今回のドラフトではそれまでLink Moduleとして別に定義されていたlink要素が取り込まれ、link, metaの2要素となりました。

属性が定義されているMetainformation Attributes Moduleには、次の属性が定義されています。

about
RDF/XMLのaboutと同じく、主語となるリソースのURIを示す属性です。
resource
RDF/XMLでのresourceに同じで、述語となるリソースのURIを値に取ります。
property
リソースとリソースを関連づけるものはプロパティと呼ばれます。dc:creatorなど、QNameで指定します。
rel
link要素の統合により、rel属性がAttributes Moduleに組み込まれました。またQNameを値に取ることができるようになりました。
rev
relに同じく、revも移動してきました。
datatype
リソースのデータタイプをQNameで指定します。例えばxsd:stringやxsd:dateなどです。
restype
リソースのContent-Typeを指定します。
content
content属性は、メタデータを値に取ります。メタデータを要素の内容として取ることができない場合に使用するものです。

さてさて、RDFのアイデアを取り込んだページのメタ情報はどうなるのかちょっとイメージ。

<head>
  <meta property="dc:creator">kota</meta>
  <meta property="dc:rights">&#xa9; 2004 kota</meta>
  <meta property="dcterms:issured" datatype="xsd:date">2004-07-25</meta>
</head>

property属性を用い、Dublin Coreなどの要素をプロパティにページのメタ情報を埋め込むことができます。dc:dateの様にデータタイプがあるものには、datatype属性で、XML Schemaからデータ型を持ってくると、より意味を持つメタデータになるでしょう。

Creative Commonsのように、ライセンスがURIで定義されているものなど、プロパティの取る値がURIであるものはlink要素を使いマークアップを施すとよさそうです。

<head>
  <link rel="cc:license" resource="http://creativecommons.org/licenses/by/2.0/"/>
</head>

必要かどうかはわかりませんが、FOAFを埋め込むことも可能だったりします。

<head>
  <meta property="foaf:maker">
    <meta property="foaf:name">kota</meta>
    <meta property="foaf:mbox_sha1sum">3a0b5ae2adff0a29e7b16cd174d40fdf2ca2ef95</meta>
  </meta>
</head>

XFNとのからみも面白くなりそうです。

またMetainformation Moduleはhead要素以下だけでなく、bodyの中のコンテンツにも置くことのできるように考えられているようで、例がいくつか出ています。

現状の問題点は、ややlink, meta, hypertextとmetainfoの両モジュールに関してすこし使い分けを迷う点があります。例文などを見るに、link要素にはhrefではなくresourceでリソースのURIを指定する方が望ましいとなっていますが、スキーマ的にはこれまでと同じようにhref属性を使うことが可能となっていたりするので、そこら辺のもやもやを取り払うようなものになると良いな、と感じました。

あと削除されたhttp-equivやscheme属性などの替わりは、どのように表現するのかが示されていないので、そういう点もきちんとしてほしいです。

kotastylekotastyle2004/07/26 16:11試しに書いてみたら「ああそうか」と同じ事を考えていました。どうもありがとうごさいます。

satoshiisatoshii2004/07/26 16:15datatype 属性ってのが schema 属性の代わりなんじゃないでしょうか。scheme="Month-Day-Year" の代わりに datatype="xsd:date" みたいな。http-equiv に関しては、恐らくそういうのは生の HTTP ヘッダでやりなさい、ってことじゃないかと思います。XHTML UA が http-equiv を解釈できても、その上位レイヤ(謎)の XML プロセサがそれを解釈できないのではナンセンス、ってことでは。

satoshiisatoshii2004/07/26 16:16すみません、書き直しちゃいました。

 | 
© 2004 kota.