<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: Chameleon schemas considered harmful</title>
	<atom:link href="http://www.elharo.com/blog/software-development/xml/2006/10/26/chameleon-schemas-considered-harmful/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.elharo.com/blog/software-development/xml/2006/10/26/chameleon-schemas-considered-harmful/</link>
	<description>Ranting and Raving</description>
	<pubDate>Tue, 02 Dec 2008 21:25:31 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
		<item>
		<title>By: Kurt Cagle</title>
		<link>http://www.elharo.com/blog/software-development/xml/2006/10/26/chameleon-schemas-considered-harmful/#comment-18959</link>
		<dc:creator>Kurt Cagle</dc:creator>
		<pubDate>Sat, 04 Nov 2006 19:44:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.elharo.com/blog/software-development/xml/2006/10/26/chameleon-schemas-considered-harmful/#comment-18959</guid>
		<description>Elliotte,

I'm inclined to agree with Mark on this one, though you're raising some salient points. XForms itself is a mess with regards to namespace - in addition to the xf namespace you have a separate namespace for events and another for schemas, and this is even before you get to a stage where you are dealing with out of band integration. If you assume, as I do, that at least from a browser standpoint the purpose of a namespace is to act as a key for a look-up table of libraries, then so long as the enveloping namespace - in this case, the XHTML 2.0 ns, maps the appropriate sub-bindings into the language and integrates the libraries - then the fact that the xforms namespace isn't explicitly declared becomes moot.

The one aspect where I think the caveats should be raised is that this should in essence be a line in the sand kind of decision, and not be made to apply retroactively. That is to say, at this stage it would be dangerous and foolhardy to institute a chameleon rule for XHTML1.0, given that this specification is already frozen and forming part of the infrastructure. It seems rational to me to assume that if you have some nsXHTML2 namespace, the provision for chameleoning would have to be explicitly built into the schema, and perhaps would require that all chameleoned namespaces would have to be explicitly declared (I'm still going through the proposal on this, so just making guesses at this stage).  This also raises a second tacit assumption that any collisions in namespaces that occurred would have to be fully qualified - for instance, if both XHTML and XForms had a switch statement, you would have to explicitly declare xf:switch as a child.

To go back to your previous analogy, I see such chameleons as being a critical piece in better integration of modular units. As it stands now, an XHTML 1.0 document increasingly looks like a Victorian house that's been added to over the years by different builders - with siding on one part of the house, stone on a second and wood on a third. Chameleoning would at least make it a little easier to state "Here is a new wing of the house, but it needs to be sided with wood of a certain shade in order to keep it looking out of place." As someone who's had to fight dealing with four or five different namespaces in XForms documents, I can say that I'd certainly welcome the ability to "hide" them.</description>
		<content:encoded><![CDATA[<p>Elliotte,</p>
<p>I&#8217;m inclined to agree with Mark on this one, though you&#8217;re raising some salient points. XForms itself is a mess with regards to namespace - in addition to the xf namespace you have a separate namespace for events and another for schemas, and this is even before you get to a stage where you are dealing with out of band integration. If you assume, as I do, that at least from a browser standpoint the purpose of a namespace is to act as a key for a look-up table of libraries, then so long as the enveloping namespace - in this case, the XHTML 2.0 ns, maps the appropriate sub-bindings into the language and integrates the libraries - then the fact that the xforms namespace isn&#8217;t explicitly declared becomes moot.</p>
<p>The one aspect where I think the caveats should be raised is that this should in essence be a line in the sand kind of decision, and not be made to apply retroactively. That is to say, at this stage it would be dangerous and foolhardy to institute a chameleon rule for XHTML1.0, given that this specification is already frozen and forming part of the infrastructure. It seems rational to me to assume that if you have some nsXHTML2 namespace, the provision for chameleoning would have to be explicitly built into the schema, and perhaps would require that all chameleoned namespaces would have to be explicitly declared (I&#8217;m still going through the proposal on this, so just making guesses at this stage).  This also raises a second tacit assumption that any collisions in namespaces that occurred would have to be fully qualified - for instance, if both XHTML and XForms had a switch statement, you would have to explicitly declare xf:switch as a child.</p>
<p>To go back to your previous analogy, I see such chameleons as being a critical piece in better integration of modular units. As it stands now, an XHTML 1.0 document increasingly looks like a Victorian house that&#8217;s been added to over the years by different builders - with siding on one part of the house, stone on a second and wood on a third. Chameleoning would at least make it a little easier to state &#8220;Here is a new wing of the house, but it needs to be sided with wood of a certain shade in order to keep it looking out of place.&#8221; As someone who&#8217;s had to fight dealing with four or five different namespaces in XForms documents, I can say that I&#8217;d certainly welcome the ability to &#8220;hide&#8221; them.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bryan Rasmussen</title>
		<link>http://www.elharo.com/blog/software-development/xml/2006/10/26/chameleon-schemas-considered-harmful/#comment-18091</link>
		<dc:creator>Bryan Rasmussen</dc:creator>
		<pubDate>Tue, 31 Oct 2006 10:29:11 +0000</pubDate>
		<guid isPermaLink="false">http://www.elharo.com/blog/software-development/xml/2006/10/26/chameleon-schemas-considered-harmful/#comment-18091</guid>
		<description>Namespaces are broken anyway, in that the usage of namespaces in the wild no longer seems to be remotely related to the use cases put forward in the Namespaces spec. When was the last time you saw two elements with the same local names but different namespaces together? I'm not saying that there isn't a use case for namespaces, from a developer perspective namespaces are good for extending formats but this use case is hampered by validation being too fragile in most cases to allow for easy extension. 

Add to this that the number of namespaces are increasing at a faster rate than the number of Specifications, this increase being fueled in part by the need of most organizations to use XML Schema, and to use it in an efficient maintainable manner, which basically requires increasing the number of namespaces. 

But I don't think chameleon schemas are a big problem, if, as I understand it, the namespace of xforms in XHTML will always be the XHTML namespace. That said it is annoyingly stupid. It seems to be predicated on increasing productivity so that poor markup writers won't have to write xf: when what it will probably do is decrease productivity because of having to port solutions for namespace x to namespace x+ all the time. 

The big problem for XSL-T, DOM, any namespace processing application is the existence of xsi:type.
Luckily every application I've ever seen just assumes that xsi:type doesn't exist. Some day someone will use that to cause problems I bet.</description>
		<content:encoded><![CDATA[<p>Namespaces are broken anyway, in that the usage of namespaces in the wild no longer seems to be remotely related to the use cases put forward in the Namespaces spec. When was the last time you saw two elements with the same local names but different namespaces together? I&#8217;m not saying that there isn&#8217;t a use case for namespaces, from a developer perspective namespaces are good for extending formats but this use case is hampered by validation being too fragile in most cases to allow for easy extension. </p>
<p>Add to this that the number of namespaces are increasing at a faster rate than the number of Specifications, this increase being fueled in part by the need of most organizations to use XML Schema, and to use it in an efficient maintainable manner, which basically requires increasing the number of namespaces. </p>
<p>But I don&#8217;t think chameleon schemas are a big problem, if, as I understand it, the namespace of xforms in XHTML will always be the XHTML namespace. That said it is annoyingly stupid. It seems to be predicated on increasing productivity so that poor markup writers won&#8217;t have to write xf: when what it will probably do is decrease productivity because of having to port solutions for namespace x to namespace x+ all the time. </p>
<p>The big problem for XSL-T, DOM, any namespace processing application is the existence of xsi:type.<br />
Luckily every application I&#8217;ve ever seen just assumes that xsi:type doesn&#8217;t exist. Some day someone will use that to cause problems I bet.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jasen</title>
		<link>http://www.elharo.com/blog/software-development/xml/2006/10/26/chameleon-schemas-considered-harmful/#comment-17983</link>
		<dc:creator>Jasen</dc:creator>
		<pubDate>Mon, 30 Oct 2006 16:08:42 +0000</pubDate>
		<guid isPermaLink="false">http://www.elharo.com/blog/software-development/xml/2006/10/26/chameleon-schemas-considered-harmful/#comment-17983</guid>
		<description>I took a look at the spec section and I don't think the sky is falling.  If I understand correctly, the "included" elements from XForms would gain the namespace of the including/master schema.  So any processing would be on the master namespace.  It just so happens that the definitions of those elements come from the XForms schema.  It is a way to clone the desired XForms elements without having to have multiple namespaces in the master schema.

Now, why do it this way rather than just include the namespaced XForms schema, I don't know.

- Jasen.</description>
		<content:encoded><![CDATA[<p>I took a look at the spec section and I don&#8217;t think the sky is falling.  If I understand correctly, the &#8220;included&#8221; elements from XForms would gain the namespace of the including/master schema.  So any processing would be on the master namespace.  It just so happens that the definitions of those elements come from the XForms schema.  It is a way to clone the desired XForms elements without having to have multiple namespaces in the master schema.</p>
<p>Now, why do it this way rather than just include the namespaced XForms schema, I don&#8217;t know.</p>
<p>- Jasen.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Elliotte Rusty Harold</title>
		<link>http://www.elharo.com/blog/software-development/xml/2006/10/26/chameleon-schemas-considered-harmful/#comment-17490</link>
		<dc:creator>Elliotte Rusty Harold</dc:creator>
		<pubDate>Fri, 27 Oct 2006 15:07:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.elharo.com/blog/software-development/xml/2006/10/26/chameleon-schemas-considered-harmful/#comment-17490</guid>
		<description>Why is it so important that the name not be prefixed by &lt;code&gt;xf:&lt;/code&gt;? This is going to cause massive problems for anybody trying to process this stuff with standard tools. What benefit is gained by avoiding &lt;code&gt;xf:&lt;/code&gt; that counterbalances this cost? Why might the VoiceXML group want to include XForms elements in their application in their own namespace?

Let's be clear: chameleon schemas are not required to allow languages to incorporate XForms functionality directly. There is no reason I can see that a language such as VoiceXML or XHTML 2 cannot simply add the XForms schema by reference, while keeping those elements in their own namespace. That is a completely reasonable and plausible option. Why has this been rejected? 

If you see a straw man here, please explain to me how what I've set up differs from what the XHTML2 and XForms working groups are actually doing. It was not my intent to set up a straw man argument. This is my understanding of what's actually going on based on reading the specs and communications from various working group members. If the XForms working group is not planning to use different namespaces for XForms in different host languages (and specifically in XHTML 2) then please say so, and explain what they're actually trying to accomplish with  &lt;a href="http://www.w3.org/TR/2006/WD-xforms11-20060714/#xf-chameleon" rel="nofollow"&gt;section 2.2.1 of the XForms spec&lt;/a&gt;, because if it's not this I can't figure out what it is.</description>
		<content:encoded><![CDATA[<p>Why is it so important that the name not be prefixed by <code>xf:</code>? This is going to cause massive problems for anybody trying to process this stuff with standard tools. What benefit is gained by avoiding <code>xf:</code> that counterbalances this cost? Why might the VoiceXML group want to include XForms elements in their application in their own namespace?</p>
<p>Let&#8217;s be clear: chameleon schemas are not required to allow languages to incorporate XForms functionality directly. There is no reason I can see that a language such as VoiceXML or XHTML 2 cannot simply add the XForms schema by reference, while keeping those elements in their own namespace. That is a completely reasonable and plausible option. Why has this been rejected? </p>
<p>If you see a straw man here, please explain to me how what I&#8217;ve set up differs from what the XHTML2 and XForms working groups are actually doing. It was not my intent to set up a straw man argument. This is my understanding of what&#8217;s actually going on based on reading the specs and communications from various working group members. If the XForms working group is not planning to use different namespaces for XForms in different host languages (and specifically in XHTML 2) then please say so, and explain what they&#8217;re actually trying to accomplish with  <a href="http://www.w3.org/TR/2006/WD-xforms11-20060714/#xf-chameleon" onclick="javascript:pageTracker._trackPageview('/outbound/comment/www.w3.org');" rel="nofollow">section 2.2.1 of the XForms spec</a>, because if it&#8217;s not this I can&#8217;t figure out what it is.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Birbeck</title>
		<link>http://www.elharo.com/blog/software-development/xml/2006/10/26/chameleon-schemas-considered-harmful/#comment-17276</link>
		<dc:creator>Mark Birbeck</dc:creator>
		<pubDate>Thu, 26 Oct 2006 13:21:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.elharo.com/blog/software-development/xml/2006/10/26/chameleon-schemas-considered-harmful/#comment-17276</guid>
		<description>Elliotte,

The reason you are finding it so easy to 'save the world' from this "insanity" is that you have set up a strawman...and by definition strawmen are pretty easy to defeat. However, in this case you've not understood what it is you are railing against.

The reason for the chameleon namespace schemas is to allow languages to incoporate XForms functionality directly. Say for example, the VoiceXML group wanted to re-use the XForms data model, but they wanted it to be part of their language. They could do this by make the XForms &lt;code&gt;model&lt;/code&gt; and &lt;code&gt;instance&lt;/code&gt; elements part of VoiceXML, and the chameleon schemas allow them to do this easily.

XHTML 2 is doing this; it still defines an &lt;code&gt;input&lt;/code&gt; control in the same way that HTML does, but it says that the functionality or &lt;em&gt;definition&lt;/em&gt; of this control comes from XForms. This is good re-use in my book, and doesn't necessarily require that the control is prefixed with &lt;strong&gt;xf:&lt;/strong&gt;.

Regards,

Mark

Mark Birbeck
CEO, x-port.net

http://skimstone.x-port.net/</description>
		<content:encoded><![CDATA[<p>Elliotte,</p>
<p>The reason you are finding it so easy to &#8217;save the world&#8217; from this &#8220;insanity&#8221; is that you have set up a strawman&#8230;and by definition strawmen are pretty easy to defeat. However, in this case you&#8217;ve not understood what it is you are railing against.</p>
<p>The reason for the chameleon namespace schemas is to allow languages to incoporate XForms functionality directly. Say for example, the VoiceXML group wanted to re-use the XForms data model, but they wanted it to be part of their language. They could do this by make the XForms <code>model</code> and <code>instance</code> elements part of VoiceXML, and the chameleon schemas allow them to do this easily.</p>
<p>XHTML 2 is doing this; it still defines an <code>input</code> control in the same way that HTML does, but it says that the functionality or <em>definition</em> of this control comes from XForms. This is good re-use in my book, and doesn&#8217;t necessarily require that the control is prefixed with <strong>xf:</strong>.</p>
<p>Regards,</p>
<p>Mark</p>
<p>Mark Birbeck<br />
CEO, x-port.net</p>
<p><a href="http://skimstone.x-port.net/" onclick="javascript:pageTracker._trackPageview('/outbound/comment/skimstone.x-port.net');" rel="nofollow">http://skimstone.x-port.net/</a></p>
]]></content:encoded>
	</item>
</channel>
</rss>
