[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Namespaces Best Practice
- From: Jonathan Borden <email@example.com>
- To: firstname.lastname@example.org
- Date: Sun, 26 Aug 2001 14:55:38 -0400
Wow! I return from vacation to find such discussions of Namespaces x
Schemas. It has been quite difficult for me to follow/reconstruct the thread
of these arguments.
Back to basics.
It is a plain fact that the vast majority of major XML parsers as well as
significant XML related specifications such as XSLT, XHTML, XLink, XSD,
RELAXNG, Schematron etc. are XML Namespace aware. Love em or hate em XML
Namespaces are here to stay and we are best to define namespace best
1) An XML Namespaces best practice for document/application design is to
define all namespace prefix bindings at the document (root) element context.
2) Use of XML Namespaces is optional in XML document and application
design - however - it is a best practice to either use or not use XML
namespaces in a single document format/application. That is, if XML
Namespaces are to be used, it is a best practice to qualify all elements.
1) and 2) are related. Taken together, a document composed of elements
qualified by multiple namespaces should have a single _unprefixed_ namespace
and multiple prefixed namespaces. By defining the namespace - prefix
bindings at the document (root) element, it is easy for both people and
applications to understand the namespace structure of a document.
Unqualified elements confuse the picture because its not immediately clear
if they are intended to be qualified by the namespace associated with the
empty prefix (i.e. unprefixed) or not qualified without scanning the
namespace bindings in the element's attributes. This breaks 1). To keep
things simple, it is best to either use or not use namespaces, but mixing
and matching is as frought with problems as is binding the same prefix to
different namespaces in different places within the same document.