OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]
Re: [xml-dev] HTML5 and almost no namespaces

Original Message From: "Michael Kay"
>> 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.

So what might be nice to have is a standard that defines two datatypes that 
can be used in schema documents.

The first is a Reversed Domain QName that could hold values such as 
"com.w3.schema.string", and also abbreviated forms, say, like "xs..string", 
(where the double dot indicates an abbreviated form - the exact syntax isn't 
important).  For the sake of argument, let's call this an RDQName.

The second is a type that can include mappings between prefixes and expanded 
names.  It would be a set of pairs like:

    mappings="xs org.w3.schema
            xsl org.w3.xslt"

It's type name would be something like RDQNameMap.  You'd use it in a schema 
something like:

    <xs:attribute name="mappings" type="RDQNameMap"/>

It's then up to the application to know that if it reads an RDQName value of 
xs..string it should convert it to org.w3.schema.string.

How does that sound?

Pete Cordell
Codalogic Ltd
Interface XML to C++ the easy way using C++ XML
data binding to convert XSD schemas to C++ classes.
Visit http://codalogic.com/lmx/ or http://www.xml2cpp.com
for more info
Twitter: http://twitter.com/petecordell

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

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 1993-2007 XML.org. This site is hosted by OASIS