[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Namespaces, schemas, Simon's filters.
- From: Peter Piatko <piatko@research.telcordia.com>
- To: Tim Bray <tbray@textuality.com>, Xml-Dev <xml-dev@lists.xml.org>
- Date: Sun, 19 Aug 2001 21:21:13 -0400
----- Original Message -----
From: "Tim Bray" <tbray@textuality.com>
To: "Xml-Dev" <xml-dev@lists.xml.org>
Sent: Sunday, August 19, 2001 3:48 PM
Subject: Namespaces, schemas, Simon's 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.
I don't have a firm opinion on the existence of local element types.
However, I think it's a bit too easy to declare a local element in XSD. By
this I mean that if I am someone who is only halfway knowledgable about the
schema language, the kind of default "no-brainer" way to write a schema is
as follows:
<xsd:element name="book">
<xsd:complexType>
<!-- oops, local element down below -->
<xsd:element name="title" type="xsd:string"/>
<!-- etc -->
</xsd:complexType>
</xsd:element>
I might have never intended to define <title> as a local element.
To make matters worse, assuming I leave elementFormDefault at its default
value (defering to the infinite wisdom of the spec writers :-), I might
innocently write a test document as follows:
<b:book xmlns:b="somenamespace">
<!-- oops, the title element shouldn't be prefixed -->
<b:title>Schemas Made Complicated</b:title>
</b:book>
I'd then spend countless hours banging my head against the computer screen,
wondering why I keep getting validation errors (unless the validation tools
are nice enough to give me a hint---I haven't checked).
Of course, it's easy enough for me to complain. I don't have a real
solution to the problem, except maybe writing some kind of "XSD lint" tool.
<snip/>
> 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.
Isn't Simon's filter a transformation tool, plain and simple? If such
transformations give people a headache, then I think pretty soon people's
heads will be exploding. ;-) I think it will only get worse.
To me, the power of XML is that such transformations are easily possible. I
think it's great that people can apply /usr/bin/sed to XML instance
documents, if that's what they want to do.
> Also, if
> I read schemas right, it also won't schema-validate any more.
> So why would this ever be a good idea? -Tim
That's probably right. However, since he's transformed the original
instance, why should we assume that it has to validate?
Thanks,
Peter
P.S. Hmm, is /usr/bin/sed Unicode aware?