[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Namespaces, schemas, Simon's filters.

  • From: Tim Bray <tbray@t...>
  • To: Xml-Dev <xml-dev@l...>
  • Date: Sun, 19 Aug 2001 12:48:26 -0700

simon filters
Having spent some time reading this thread, I realized I 
didn't understand either local types or Simon's filters.  
As Ron Bourret said:

>> I think the real culprit here isn't whether local element 
>> type names are
>> qualified or not. It's that local element types exist at all. 

Upon further study, I think Ron's right.  For those who haven't 
already, some study of 

  http://www.w3.org/TR/xmlschema-0/#NS

is pretty essential.   Pardon me for offering an explanation of
something that will be painfully obvious to the students and 
authors of XSD around this list, but *if* I understand the 
motivation, it's this: people want to use schema X to validate 
element Y, but they don't want element Y to be in a namespace 
(even a defaulted namespace), they want the connection picked up 
from the namespace of an ancestor element, and "local element 
types" allow this.

At one level this seems like a reasonable thing to want to do: 
"please use the following rules to validate no-namespace 
elements whose type is Y and whose ancestor is myNS:Z."

On the other hand, it does contravene the achingly-simple
procedure for linking markup to software provided by 
XML+namespaces: identify markup to software by putting it
in a namespace.  Which feels pretty serious.  The default, 
simple, obvious way of arranging for software module X to 
process element Y is to advertise that X processes elements 
which are in the NSx namespace.  It's kind of troublign that 
schema supports a non-interoperable, more complex, less 
robust way of tying markup to software.  That this is its 
default behavior is simply outrageous.  As it stands with 
XSD, by default the way that schemas are tied to certain 
classes of elements is non-interoperable with the way that 
other software does it.  I REALLY HOPE that my understanding
of the motivation and effect is wrong and ask that someone
more schema-savvy explain why this isn't as awful as it 
looks.

On the other hand, I (and a lot of other people) declined
to take part in the schema effort, and the default 
assumption is that we have to live with it as specified.

Now, suppose I'm right.  If so, why are Simon's filters 
ever a good idea?  The XML Schema Rec allows me to write
rules so that in the following

<apo:purchaseOrder xmlns:apo="http://www.example.com/PO1"
                   orderDate="1999-10-20">
 <shipTo country="US">
  <name>Alice Smith</name>
  <street>123 Maple Street</street>
  <!-- etc. -->

the "apo" schema is used to validate the <shipTo> element.
Nowhere does it say that the "shipTo" element is or should
be in the "apo" namespace.  Applying Simon's filter will
put "shipTo" in the apo namespace.  This behavior totally
flies in the face of XML+Namespaces as specified.  Also, if
I read schemas right, it also won't schema-validate any more.  
So why would this ever be a good idea?  -Tim


PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
 

Stylus Studio has published XML-DEV in RSS and ATOM formats, enabling users to easily subcribe to the list from their preferred news reader application.


Stylus Studio Sponsored Links are added links designed to provide related and additional information to the visitors of this website. they were not included by the author in the initial post. To view the content without the Sponsor Links please click here.

Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.