[
Lists Home |
Date Index |
Thread Index
]
Yes, that is possible, using include rather than import.
Sorry, when I said " you can only have one schema document per
namespace", I should have said "you can only have one target namespace
per schema document". You can have as many schema documents with the
same target namespace as you want.
Priscilla
-----------------------------------------------------
Priscilla Walmsley priscilla@walmsley.com
Author, Definitive XML Schema (Prentice Hall PTR)
-----------------------------------------------------
> -----Original Message-----
> From: Rex Brooks [mailto:rexb@starbourne.com]
> Sent: Tuesday, November 19, 2002 2:47 PM
> To: Priscilla Walmsley; 'Peter Bergström'; xml-dev@lists.xml.org
> Subject: RE: [xml-dev] Namespaces and XML Schema validation
>
>
> Is it possible to have a number of schemata that are extensions of a
> primary base schema within a single namespace? Or, do you have to
> create serial namespaces to accommodate such a multi-part modular
> language structure? Since that is exactly what we are doing with
> Human Markup, it would helpful. We are currently in the 30-day public
> comment period for our first spec so we are no where close to moving
> on to the secondary base schema.
>
> Thanks,
> Rex
>
>
> At 9:01 AM -0500 11/19/02, Priscilla Walmsley wrote:
> >Hi Peter,
> >
> >Yes, you can only have one schema document per namespace, so
> you will be
> >required to have a.xsd, b.xsd, etc.
> >
> >> PROBLEM 1
> >>
> >>
> >> Example document:
> >> <?xml version="1.0">
> >> <a1 xsi:noNamespaceSchemaLocation="a.xsd"
> >> xmlns:b="http:\\example.org\b\"
> >> xmlns:c="http:\\example.org\c\">
> >> <b:b1>This is element B1 from namespace B</b:b1>
> >> <a2>This is the second element from schema a</a2>
> >> <c:c1>This element is from namespace c</c:c1>
> >> </a1>
> >
> >a.xsd would look something like this:
> >
> ><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> > xmlns:b="http:\\example.org\b\"
> > xmlns:c="http:\\example.org\c\">
> ><xsd:import namespace="http:\\example.org\b\"
> schemaLocation="b.xsd"/>
> ><xsd:import namespace="http:\\example.org\c\"
> schemaLocation="c.xsd"/>
> >
> ><xsd:element name="a1" type="a1Type"/>
> ><xsd:complexType name="a1Type">
> > <xsd:sequence>
> > <xsd:element ref="b:b1"/>
> > <xsd:element name="a2" type="xsd:string"/>
> > <xsd:element ref="c:c1"/>
> > </xsd:sequence>
> ></xsd:complexType>
> >
> >and b.xsd and c.xsd would declare the b1 and c1 elements, globally.
> >
> >> PROBLEM 2
> >>
> >> Can I nest the namespaces in such an XML document, so that
> >> elements from one
> >> namespace contains elements from other namespaces, and still
> >> validate my XML
> >> document against one or several XML Schemas?
> >
> >Yes, in this case you could have a.xsd import the b
> namespace, and b.xsd
> >import the c namespace.
> >
> >> PROBLEM 3
> >>
> >> Can elements from one namespace occur several times in a
> >> hierarchy where
> >> elements from other namespaces occur as fathers, i.e. true
> >> nesting, and
> >> still validate my XML document against one or several XML
> >> Schemas? And how
> >> would the XML Schemas that defines those namespaces look like?
> >
> >Yes, in that case a.xsd could import the b namespace, and b.xsd could
> >import the a namespace. Same thing with b and c. (there is
> no rule that
> >says "circular imports" are not allowed; in fact, they are
> necessary.)
> >
> >
> >> PROBLEM 4
> >>
> >> Can I, using the example from my problem 3, enforce (through
> >> validation)
> >> that instances are created with exactly those elements,
> >> occuring just one
> >> time each, with one single XML Schema?
> >
> >I assume you mean one single schema _document_ (since an XML
> Schema can
> >be made up of more than one document, as we have seen
> above). No, you
> >can't - the best you could do is put wildcards where you want the
> >elements from other namespaces to go. Wildcards will allow you to
> >constrain the namespace and number of elements that appear,
> but will not
> >validate those elements without a schema document for that namespace.
> >
> >
> >The examples from my XML Schema book are online at:
> >
> >http://www.datypic.com/books/DefXMLSchema/Examples.html
> >
> >I can't guarantee they're the exact same structure as your
> examples, but
> >they might help.
> >
> >Hope that helps!
> >Priscilla
> >
> >-----------------------------------------------------
> >Priscilla Walmsley priscilla@walmsley.com
> >Author, Definitive XML Schema (Prentice Hall PTR)
> >-----------------------------------------------------
> >
> >
> >-----------------------------------------------------------------
> >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 subscribe or unsubscribe from this list use the subscription
> >manager: <http://lists.xml.org/ob/adm.pl>
>
>
> --
> Rex Brooks
> Starbourne Communications Design
> 1361-A Addison, Berkeley, CA 94702 *510-849-2309
> http://www.starbourne.com * rexb@starbourne.com
>
>
|