The concept is pretty simple. Anywhere in a document you can declare a
namespace. The syntax is like an attribute declaration, that is it occurs
inside a tag, so it looks something like:
myprefix:mytag xmlns:myprefix=whateveruristringidentifiesthis/
In the above example you just put mytag into a namespace identified by a URI
(which is just anything you want it to be, most authors of XML based
vocabularies will specify what this URI is for their tag set, since they are
URI's they SHOULDN'T ever overlap). Note that the URI is NOT a URL and need
not point to anything that can actually be fetched, it is just a unique
identifier.
Note that prefixes are optional, but they make it a LOT easier to deal with
stuff later on. The prefix can be anything you want, and the xmlns=
declaration binds that prefix to that namespace. More than one prefix can
bind to the same namespace, and in that case both prefixes are
interchangeable.
XML processors, such as XSLT, require a matching namespace, that is the
namespace is PART OF THE TAG's NAME in essence, so an XSLT template would
have to say something like
xslt:template match=somprefix:mytag
xmlns:someprefix=whateveruristringidentifiesthis
/xslt:template
Notice I used a different prefix in the XSLT, but since the binding is to the
same namespace URI they are equivalent and the processor should match the
template to the tag.
Namespace declarations have a scope which includes the tag where they are
defined and all its children. Thus you commonly see xmlns declarations in the
root tag of XML documents, especially things like XSLT stylesheets.
The point of namespaces is that if 2 authors utilize the same tag names for
different purposes it is still possible for a single document to contain
markup complying with both syntaxes and a processor can tell them apart. Thus
Fubar Markup Language, with URI 'http://xml.fubar.torpedo.org; will not
overlap with Gremlin Markup Language with URI http://gml.gremlinsareus.org;
even though they both have a tag fubared / since the author of a document
combining both languages can simply use a different prefix for each.
I guess thats the basics of it. Attributes have their own quirks WRT
namespaces. I can only refer you to books such as the one by Michael Kay
which go into it in nauseating detail!
And yes, namespaces are vital for AxKit, each XSP taglib lives in a unique
namespace, and XSLT depends on them heavily as well. Its hard to do much
serious XML processing without them really
On Tuesday 11 February 2003 09:48 am, Eddie Roosenmaallen wrote:
Hi all!
From reading the documentation on AxKit and XSP, it seems that XML
namespaces are a must for making full use of AxKit. Problem is, I've been
totally unable to find any documentation on namespaces.
Can anyone point me to a good tutorial on using and writing XML namespaces,
or at least give me a quick run-down on how they are built, and the
internal structure (if any) of a namespace?
Thanks,
Eddie
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
--
Tod Harter
Giant Electronic Brain
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]