[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Namespaces, W3C XML Schema (was Re: ANN: SAX FiltersforNamespaceProcessing)
- From: Peter Piatko <piatko@research.telcordia.com>
- To: "Simon St.Laurent" <simonstl@simonstl.com>, Xml-Dev <xml-dev@lists.xml.org>
- Date: Wed, 01 Aug 2001 10:48:00 -0400
Here's another (still somewhat unrealistic) example:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:ex="http://www.example.org/"
targetNamespace="http://www.example.org/"
elementFormDefault="qualified">
<xsd:element name="book">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="title" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="person">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="title">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Mr."/>
<xsd:enumeration value="Ms."/>
<!-- and so on ... -->
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="name" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
Sample instance:
<ex:example xmlns:ex="http://www.example.org/">
<ex:book>
<ex:title>This is a book title</ex:title>
</ex:book>
<ex:person>
<ex:title>Mr.</ex:title>
<ex:name>Magoo</ex:name>
</ex:person>
</ex:example>
Note that the "meaning" or definition of the <title> element depends on the
context. *Not that I would advocate writing schemas this way.* (Wouldn't
it be better to put <book> and <person> in separate namespaces?). But
feature-laden XML Schema lets you do things like this and it seems
especially easy to do if you are feeling lazy.
I always thought that one of the intentions of
elementFormDefault="unqualified" was to mark context sensitive elements like
<title>. This way, a recipient of the document at least knows there is
something special about them, even if he/she doesn't have the schema.
Thanks,
Peter Piatko
----- Original Message -----
From: "Simon St.Laurent" <simonstl@simonstl.com>
To: "Xml-Dev" <xml-dev@lists.xml.org>
Sent: Wednesday, August 01, 2001 8:22 AM
Subject: RE: Namespaces, W3C XML Schema (was Re: ANN: SAX Filters
forNamespaceProcessing)
> On 31 Jul 2001 21:20:53 -0700, Aaron Skonnard wrote:
> > On the contrary, consider the following XML schema definition and sample
> > instance document:
> >
> > <!-- schema definition -->
> > <s:schema xmlns:s="http://www.w3.org/2001/XMLSchema"
> > xmlns:tns="http://example.org/foo"
> > targetNamespace="http://example.org/foo"
> > elementFormDefault="qualified">
> > <s:element name="bar" type="s:string"/>
> > <s:complexType name="fooType">
> > <s:sequence>
> > <s:element name="bar" type="s:string"/>
> > </s:sequence>
> > </s:complexType>
> > <s:element name="foo" type="tns:fooType"/>
> > </s:schema>
> >
> > <!-- instance -->
> > <f:foo xmlns:f="http://example.org/foo">
> > <f:bar/> <--|
> > </f:foo> |
> > |
> > |
> > Even when everything is qualified, you still can't figure out which bar
> > element this is just by looking at the QName and ignoring context (is it
> > the global or local qualified bar element?).
>
> This doesn't feel like the same problem to me - it feels like a bad case
> of non-deterministic content modeling. I thought XML Schema went to
> great lengths to avoid that, but maybe this is legal.
>
> Can't say it feels like a remotely good idea to me.
>
>
>
>
> ------------------------------------------------------------------
> The xml-dev list is sponsored by XML.org <http://www.xml.org>, an
initiative of OASIS <http://www.oasis-open.org>
>
> The list archives are at http://lists.xml.org/archives/xml-dev/
>
> To unsubscribe from this elist send a message with the single word
> "unsubscribe" in the body to: xml-dev-request@lists.xml.org
>
>