[12] カメレオン・スキーマは、 それを取り込む側から任意のXML名前空間を指定できるスキーマをいいます。 カメレオン・スキーマにおいて定義された要素などの語彙は、 任意の XML名前空間に所属できることになります。ひいては、スキーマ上の記述の如何に関わらず、 任意ないし多数のXML名前空間で用いることが想定された語彙を一般にカメレオンであるといいます。
[13] カメレオンなスキーマや語彙はマーク付け言語の設計の柔軟性と再利用可能性のために必要であるとする主張と、 実装可能性や実用上の相互運用性の低下をもたらすだけであって好ましくないとする主張があります。 様々な状況下で好きなマーク付け言語を設計できるようにするための部品、雛形を作るという立場なら、 たしかに固定のXML名前空間を与えるよりは、任意のXML名前空間に取り込めるスキーマを用意し、 それを好きなホスト言語に組み込んで使ってください、というのも一つの選択肢でしょう。 一方で、 Web などの開放的な環境にあって複数の実装、多数の著者が混在する環境下では、 同じはずの語彙が複数のXML名前空間で記述できるとすれば、それだけで既に相互運用性上のリスクであり、 また語彙の混在を考慮すると組み合わせによって実装は困難になるだけであり、 著者の理解可能性もまた低下します。
[19] XHTML 2.0 は XForms や XML Events をカメレオン名前空間として取り込んでいました。
[25] XForms は XML Schemaデータ型をカメレオン名前空間として取り込んでいました。 >>24
[20] 実装上カメレオンスキーマを使っていないとしても、 同じ語彙が複数のXML名前空間で重複して定義されていることがあります。
[21] 例えば XHTML にも PLS にも meta
要素があったり、
XHTML にも SMIL にも head
要素があったりしますが、
要素単位で名前空間を変更しなければならない不便をきらってか、
似て非なるものとして定義されています。
[22] 理論上は同じ機能は1つあればXML名前空間の機能で混在させられ、 仕様書の開発も実装の開発も著者の理解も容易になるはずですが...
[1]
Chameleon schemas considerd harmful (Elliotte Harold 著, 2007-01-02 23:13:28 +09:00
版) http://lists.w3.org/Archives/Public/www-forms-editor/2007Jan/0000.html
(名無しさん)
[2]
Re: Chameleon schema considered harmful (John Boyer 著, 2006-11-02 09:27:29 +09:00
版) http://lists.w3.org/Archives/Public/www-forms-editor/2006Nov/0000.html
(名無しさん)
[3]
Chameleon schema considered harmful (Elliotte Harold 著, 2006-10-26 05:19:39 +09:00
版) http://lists.w3.org/Archives/Public/www-forms-editor/2006Oct/0001.html
(名無しさん)
[4]
W3C XML Schema: やるべきこと、やってはいけないこと (2005-06-09 09:08:09 +09:00
版) http://www.horobi.com/xml/XMLSchemaDosAndDONTs.ja.html#avoid_chameleon
(名無しさん)
[5] Re: Chameleon schemas considerd harmful (John Boyer 著, 版) http://lists.w3.org/Archives/Public/www-forms/2007Feb/0021.html
On behalf the XForms working group, I am writing to inform you that the group elected to remove the chameleon schema feature from the specification.
(名無しさん 2007-02-09 15:57:33 +00:00)
[7] XForms 1.1 の項も参照してください。
[6] もうあきらめたのかと思ったら、
XHTML 2.0 - XForms Module ( 版) http://www.w3.org/MarkUp/2009/ED-xhtml2-20090109/mod-xforms.html#s_xformsmodule
には
The XForms Module provides a rich collection of forms features within the XHTML namespace.
と書いてある。これって XHTML名前空間に XForms の要素や属性を持ち込むという意味なのだろうか?
XHTML 2.0 - XML Events Module ( 版) http://www.w3.org/MarkUp/2009/ED-xhtml2-20090109/mod-xml-events.html
にはもっとはっきり
As permitted by XML Events 2, this element is incorporated into the XHTML namespace.
と書いてある。
でも
XHTML 2.0 - XML Handlers Module ( 版) http://www.w3.org/MarkUp/2009/ED-xhtml2-20090109/mod-handler.html
とか
XHTML 2.0 - XML Scripting Module ( 版) http://www.w3.org/MarkUp/2009/ED-xhtml2-20090109/mod-scripting.html
にはなぜか何も書いてないね。
[8] Compound Document by Inclusion (CDI) Framework ( 版) http://dev.w3.org/2006/cdf/cdi-framework/#importing
[9] 実際のところ Forms WG はカメレオンを未だに悪いとも思っていないようで、 XForms for HTML ( 版) http://www.w3.org/MarkUp/Forms/specs/XForms1.2/XFormsForHTML/index-all.html#intro-reading では、
The XForms for HTML attributes are offered to HTML and XHTML web pages as a set of local attributes. Other consuming host language markup languages may adopt these attributes as global attributes in the XForms namespace (http://www.w3.org/2002/xforms).
Host language processors should be, but are not required to be, namespace aware. For clarity, this specification describes integration with explicitly declared XForms elements by using the prefix xf to indicate the XForms namespace (http://www.w3.org/2002/xforms) being applied to those elements. A host language processor may adopt the XForms elements into its own namespace for ease of authoring.
(HTML に追加する属性は実は XForms 名前空間の属性の特例だし、 ホスト言語の設計者次第で XForms の要素を好きな名前空間に突っ込んでも構わない) なんてことが述べられています。
[10] XHTML Access Module ( 版) http://www.w3.org/TR/2010/NOTE-xhtml-access-20101216/#docconf
[11] >>10 には「このモジュール自身の名前空間に取り込まないなら」という適合性の規定があり、
acess
要素を XHTML名前空間ではなく、
任意のホスト言語の名前空間で用いることを認めているようです。
[15] XHTML Access Module ( 版) http://www.w3.org/TR/2010/NOTE-xhtml-access-20101216/#hostconf
[16] >>15 でホスト言語と XHTML のどちらの名前空間でもよいとされています。
[14] XForms Namespace News - Anne’s Weblog about Markup & Style http://annevankesteren.nl/2006/03/xforms (名無しさん 2006-03-19 00:54:05 +00:00)
[17] [Fwd: Why chameleon use of namespaces is bad [ACTION-439]] ( (L. David Baron 著, 版)) http://lists.w3.org/Archives/Public/www-archive/2009Feb/0065.html
[18] カメレオンスキーマによる名前空間のマージ(?)は、 XML名前空間の趣旨に真っ向から反していて、 それが必要になっているということ自体がXML名前空間の失敗を物語っています。
[27] >>18 ところがそれ、「XML名前空間の趣旨」に反しているとも断言できないんですよね、 よく調べていくと。どうもXML名前空間の開発とその周辺の利用事例を見ていくと、 各プレイヤーそれぞれ「XML名前空間の趣旨」を好き勝手に解釈しているようで、 何が正しい「XML名前空間の趣旨」なのか、調べれば調べるほどわからなくなります。
[28] たぶん同床異夢の各プレイヤーが自分達の思い描く理想像を勝手に詰め込んだ結果があの曖昧な XML名前空間 だったのでしょうね。
[29] カメレオンスキーマもその数多あった「理想像」の1つではあったのでしょう。 XML Schema というスキーマ言語もそのような使い方を1つの正当なあり方として設計されているようですし。
[30] まあだからといってカメレオンスキーマを大暴走させて HTML をぶっ壊そうとした XHTML2 WG が免責される理由にはならないですけどね。