[Home] [By Thread] [By Date] [Recent Entries]

  • From: Michael Kay <mike@s...>
  • To: xml-dev@l...
  • Date: Tue, 07 Jun 2011 12:32:50 +0100


>
> That covers off a lot of simple XML cases, but doesn't handle well 
> things like QName's as found in XSD's type element where you want to 
> differentiate between a type specified in the XSD namespace (such as 
> xs:string), a type specified in the local namespace or a type 
> specified in a sister namespace. For example, I wouldn't want to have 
> to keep doing:
>
> <element name='MyElement' type='com.w3.schema.string'/>
>

The problem with QNames-in-content is a failure to respect protocol 
layering. I like to think of XML as being at layer 6 of the OSI stack, 
and the application vocabulary at layer 7. It's fine for the layer 6 
protocol to use shortcuts such as namespace prefixes that it understands 
and knows about, and its fine for the layer 7 protocol to use its own 
shortcuts and abbreviations. The problem with QNames-in-content is that 
the prefixes are defined in layer 6 and then used in layer 7, which 
means that information leaks between layers in a way that it shouldn't. 
If you want abbreviations in your application vocabulary, define them 
using your application vocabulary.

Michael Kay
Saxonica


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]


Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member