[12] [DFN[[RUBYB[カメレオン・スキーマ]@en[chameleon schema]]]]は、 それを取り込む側から任意の[[XML名前空間]]を指定できる[[スキーマ]]をいいます。 [[カメレオン・スキーマ]]において定義された[[要素]]などの[[語彙]]は、 任意の [[XML名前空間]]に所属できることになります。ひいては、[[スキーマ]]上の記述の如何に関わらず、 任意ないし多数の[[XML名前空間]]で用いることが想定された[[語彙]]を一般に[DFN[[RUBYB[カメレオン]@en[chameleon]]]]であるといいます。 [13] [[カメレオン]]なスキーマや語彙は[[マーク付け言語]]の設計の柔軟性と再利用可能性のために必要であるとする主張と、 実装可能性や実用上の相互運用性の低下をもたらすだけであって好ましくないとする主張があります。 様々な状況下で好きな[[マーク付け言語]]を設計できるようにするための部品、雛形を作るという立場なら、 たしかに固定の[[XML名前空間]]を与えるよりは、任意の[[XML名前空間]]に取り込める[[スキーマ]]を用意し、 それを好きな[[ホスト言語]]に組み込んで使ってください、というのも一つの選択肢でしょう。 一方で、 [[Web]] などの[[開放的]]な環境にあって複数の[[実装]]、多数の[[著者]]が混在する環境下では、 同じはずの[[語彙]]が複数の[[XML名前空間]]で記述できるとすれば、それだけで既に[[相互運用性]]上のリスクであり、 また[[語彙]]の混在を考慮すると組み合わせによって実装は困難になるだけであり、 [[著者]]の理解可能性もまた低下します。 * メモ [1] [CITE@en[Chameleon schemas considerd harmful]] ([[Elliotte Harold]] 著, [CODE[2007-01-02 23:13:28 +09:00]] 版) ([[名無しさん]]) [2] [CITE@en[Re: Chameleon schema considered harmful]] ([[John Boyer]] 著, [CODE[2006-11-02 09:27:29 +09:00]] 版) ([[名無しさん]]) [3] [CITE@en[Chameleon schema considered harmful]] ([[Elliotte Harold]] 著, [CODE[2006-10-26 05:19:39 +09:00]] 版) ([[名無しさん]]) [4] [CITE[W3C XML Schema: やるべきこと、やってはいけないこと]] ([CODE[2005-06-09 09:08:09 +09:00]] 版) ([[名無しさん]]) [5] [CITE@en[Re: Chameleon schemas considerd harmful]] ([[John Boyer]] 著, [TIME[2007-02-06 04:25:33 +09:00]] 版) >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. ([[名無しさん]] [WEAK[2007-02-09 15:57:33 +00:00]]) [7] [[XForms 1.1]] の項も参照してください。 [6] もうあきらめたのかと思ったら、 [CITE@en[XHTML 2.0 - XForms Module]] ([TIME[2009-01-10 00:05:50 +09:00]] 版) には >The XForms Module provides a rich collection of forms features within the XHTML namespace. と書いてある。これって [[XHTML名前空間]]に [[XForms]] の[[要素]]や[[属性]]を持ち込むという意味なのだろうか? [CITE@en[XHTML 2.0 - XML Events Module]] ([TIME[2009-01-10 00:04:07 +09:00]] 版) にはもっとはっきり >As permitted by XML Events 2, this element is incorporated into the XHTML namespace. と書いてある。 でも [CITE@en[XHTML 2.0 - XML Handlers Module]] ([TIME[2009-01-10 00:08:12 +09:00]] 版) とか [CITE@en[XHTML 2.0 - XML Scripting Module]] ([TIME[2009-01-10 00:04:11 +09:00]] 版) にはなぜか何も書いてないね。 [8] [CITE@en-US[Compound Document by Inclusion (CDI) Framework]] ([TIME[2006-10-15 03:19:19 +09:00]] 版) [9] 実際のところ [[Forms WG]] はカメレオンを未だに悪いとも思っていないようで、 [CITE@EN[XForms for HTML]] ([TIME[2008-12-19 10:49:25 +09:00]] 版) では、 >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] [CITE[XHTML Access Module]] ([TIME[2010-12-17 01:48:31 +09:00]] 版) [11] >>10 には「この[[モジュール]]自身の[[名前空間]]に取り込まないなら」という適合性の規定があり、 [CODE(XMLe)@en[[[acess]]]] [[要素]]を [[XHTML名前空間]]ではなく、 任意の[[ホスト言語]]の[[名前空間]]で用いることを認めているようです。 [15] [CITE[XHTML Access Module]] ([TIME[2010-12-17 01:48:31 +09:00]] 版) [16] >>15 で[[ホスト言語]]と [[XHTML]] のどちらの[[名前空間]]でもよいとされています。 [14] [CITE[XForms Namespace News - Anne’s Weblog about Markup & Style]] ([[名無しさん]] [WEAK[2006-03-19 00:54:05 +00:00]])