Re: Forcing a certain document element

For what it's worth, I would use global elements when the actual semantic 
import of the element is in some sense primarily independent of the types 
of its ancestors.  One could argue that <HTML:P> tends to have this 
characteristic:  it means "paragraph" in just about any context where it's 
legal.  Conversely, consider:

        <BOOK>
                <TITLE>Moby Dick</TITLE>
                <AUTHOR>
                        <TITLE>Mr.</TITLE>
                        <NAME>Melville</NAME>
                </AUTHOR>
        </BOOK>

<TITLE> clearly has local scope.  Indeed, the second use might well be 
typed as an enumeration (Mr., Ms. Mrs., etc.)  When mapping programming 
language and database structures, local tends to fit best.  When 
translating a DTD, global is almost always the truer approximation.

In short, I would generally recommend making the choice based on these 
sorts of considerations.  In certain situations, that may indeed lead to a 
single global root, with all other elements local.  In general, I would 
use multiple globals where appropriate, and rely on the processor or 
application to verify that the root of a document is the one intended.

Note one other benefit of using globals:  you can do selective validation 
of global elements.  For example, if <AUTHOR> is global and if your 
processor is willing, you can validate just the author element.  Very 
useful in editing and other situations.    To do the same with a local 
element you would have to determine the correct type to use for the 
validation (see the first option under [1]).  Not impossible, but surely 
trickier.  I doubt that many processors will support this, particularly if 
your local element has an anonymous type.

[1] http://www.w3.org/TR/xmlschema-1/#validation_outcome


------------------------------------------------------------------------
Noah Mendelsohn                                    Voice: 1-617-693-4036
Lotus Development Corp.                            Fax: 1-617-693-8676
One Rogers Street
Cambridge, MA 02142
------------------------------------------------------------------------







Robert Braddock <stormwarden@bigfoot.com>
Sent by: xmlschema-dev-request@w3.org
01/12/01 04:18 PM
Please respond to Robert Braddock

 
        To:     xmlschema-dev@w3.org
        cc:     (bcc: Noah Mendelsohn/CAM/Lotus)
        Subject:        Re: Forcing a certain document element


> > without violating this property, I appreciate if people design without
> > global elements (I just use global complexTypes where I had global 
elements
> > before).
> 
> That's quite a constraint, though, especially where multiple namespaces
> are involved since types behave differently than elements in this
> context.

I don't see what you mean here. My schemas just reference types through 
their
schema's namespace, just like global elements would be referenced. I do 
this
specifically for the multiple namespace case. Could you explain?


Robert Braddock

Received on Friday, 12 January 2001 17:52:58 UTC