Lists Home |
Date Index |
Jonathan Robie wrote:
> In general, I think that our data model does a good job of simplifying
> what we inherit from XML Schema. Namespaces ... are tough. I don't know
> how we could do better. Do you have any concrete suggestions here?
One approach: Sanitize everything as it comes into the system;
that is, transform all inputs so that each namespace prefix maps
to exactly one namespace URI and vice versa, and remove default
namespace declarations (adding prefixes to unqualified GIs as
necessary). In addition, normalize the database -- IOW float all the
namespace declarations to the root node and remove duplicates.
(If the input was sanitized first, there won't be any conflicts.)
This preserves the semantics according to [REC-xml-names] --
it's the namespace URI that's important, not the prefix --
and preserves *most* of the Infoset semantics. The only
thing that gets changed is the [in-scope namespaces] information
item, which in turn only affects the meaning of documents
whose vocabulary includes QNames-in-content.
This last might be problematic -- for example, it's perfectly
reasonable to want to store a collection of XSLT stylesheets
in an XML database -- but this can be addressed by practicing
"enterprise sanity", i.e., always use the same prefixes
everywhere (which most people tend to do anyway).