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

 


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Namespaces, W3C XML Schema (was Re: ANN: SAX FiltersforNamespaceProcessing)



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
>
>