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


Help: OASIS Mailing Lists Help | MarkMail Help



   RE: [xml-dev] Namespaces and XML Schema validation

[ Lists Home | Date Index | Thread Index ]

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.


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.
>>  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>
>and b.xsd and c.xsd would declare the b1 and c1 elements, globally.
>>  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.
>>  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.)
>>  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:
>I can't guarantee they're the exact same structure as your examples, but
>they might help.
>Hope that helps!
>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


News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS