[relaxng-user] combining schemas

Eric van der Vlist vdv at dyomedea.com
Wed Nov 26 07:55:54 ICT 2003


On Wed, 2003-11-26 at 01:53, Bruce D'Arcus wrote:
> OK, I finally got it to work correctly, more or less.  

Good!

> Thanks all!
> 
> Here's an example fragment created using nxml mode:
> 
>      <extension xmlns:bn="http://refdb.sourceforge.net/biblio-notes-ns">
>        <bn:biblio-notes>
> 	<bn:note user="darcusb">
> 	  <bn:para>Got it to <bn:emphasis>work!</bn:emphasis></bn:para>
> 	</bn:note>
>        </bn:biblio-notes>
>      </extension>
> 
> I just have a couple of questions remaining.
> 
> The first is about namespaces.  In the biblio-notes schema, I have the 
> following namespace definition:
> 
> 	default namespace  = "http://refdb.sourceforge.net/biblio-notes-ns"
> 
> The most obvious question is whether this is the correct way to specify 
> the namespace in this circumstance.

Yes.

> Also, should I be requiring the namespace prefix here, when the 
> namespace is defined on the extension element?  

The namespaces rec states that prefixes are just shortcuts assigned to
namespaces identifiers and that their values are not significant. As a
result, you can't require a namespace prefix with RELAX NG (nor with W3C
XML Schema). To require a specific prefix, you'd need to use either DTDs
or Schematron but, again, that would not be conform to the intention of
namespaces.

> In this example, if remove the namespace prefix from the declaration 
> and the included elements, I get an "unknown element" error on the
> extension element.

What do you mean? 

Per the namespaces spec, this is a different document that should be
invalid:

     <extension>
       <biblio-notes>
        <note user="darcusb">
          <para>Got it to <emphasis>work!</emphasis></para>
        </note>
       </biblio-notes>
     </extension>

But this one is equivalent to your snippet and it should be valid:

     <extension>
       <biblio-notes
xmlns="http://refdb.sourceforge.net/biblio-notes-ns">
        <note user="darcusb">
          <para>Got it to <emphasis>work!</emphasis></para>
        </note>
       </biblio-notes>
     </extension>

> Finally, as I recall nxml mode normally automatically completes the 
> namespace declaration.  it does not do so in this circumstance.  Is 
> this likely a limitation of nxml, or a problem in my definition?

Your definition looks good.

Eric
-- 
Read me on XML.com.
                                            http://www.xml.com/pub/au/74
Upcoming XML schema languages tutorials:
 - Philadelphia -full day- ( 7/12/2003)        http://masl.to/?V28612FC5
 - Santa Clara  -half day- (15/03/2004)        http://masl.to/?J24916E96
------------------------------------------------------------------------
Eric van der Vlist       http://xmlfr.org            http://dyomedea.com
(W3C) XML Schema ISBN:0-596-00252-1 http://oreilly.com/catalog/xmlschema
------------------------------------------------------------------------



More information about the relaxng-user mailing list