[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: Namespaces, schemas, Simon's filters.
- From: "Fuchs, Matthew" <matthew.fuchs@commerceone.com>
- To: "'francis@redrice.com'" <francis@redrice.com>
- Date: Tue, 21 Aug 2001 11:45:58 -0700
Francis,
> -----Original Message-----
> From: Francis Norton [mailto:francis@redrice.com]
> Sent: Tuesday, August 21, 2001 2:07 AM
> To: Fuchs, Matthew
> Cc: 'Tim Bray'; Xml-Dev
> Subject: Re: Namespaces, schemas, Simon's filters.
>
>
>
>
> "Fuchs, Matthew" wrote:
> > (an explanation for the default setting of elementFormDefault)
>
> Thank you. This is the first explanation of the issue that I've found
> plausible and helpful. Could I summarise it by saying something like
> this?:
>
> Namespaces provide a semantic context for processing
> marked-up messages.
> A processor for a namespace is any program that knows how to process
> elements in the namespace. The fact that global elements may not have
> the same name but different types clearly simplifies processor design.
> Local elements, which may in different contexts have the same
> names but
> different types, could complicate processor design. So taking them out
> of the namespace enforces a dependency on their ancestral global
> element, within which sub-context they are once again guaranteed to be
> uniquely typed, and processor design is once again simplified.
>
> Francis.
>
Almost. The goal behind local elements is the same as the goal behind
namespaces - they're an extension of the requirement to allow a local name
to refer to different types while allowing those uses to be distinguished.
With namespaces, the goal was to distinguish local names from different
sources (intentionally vague). With local names it's to distinguish names
from different contexts within a schema. The NS rec provides a design
(namespaces) and an implementation (prefixes) for fulfiling their goal.
Local elements are a design for the extended goal, and XSDL provides one
implementation which functions as you specify, and another which doesn't.
I, personally, don't like either, even though I once argued vociferously for
the former implementation.
But yes, the goal should always be to aid processor design, in the general
sense of processor you give (which, of course, includes you and me).
Matthew