XSLT is based on XPath, and XPath is namespace-aware. To access a
namespaced node by name in your source document, you ***MUST*** use a
properly qualified name in your XPath/XSLT syntax -- define a prefix in the
stylesheet which is bound to the correct namespace URI, and use that prefix
whenever you specify the desired node name. XPath 1.0 has no provision for
a namespace shorthand in its expressions; if you don't provide a prefix you
are calling for a node that is in no namespace, not one in the current
default namespace. If you want to match nodes *without* being sensitive to
namespaces, you need to do a non-name-sensitive match and then use a
predicate to explicitly test the localname.
XSLT/XPath are not schema-aware; it doesn't directly care whether you
specify a schema or not.
XPath 2.0 and XSLT 2.0 are expected to add some features in these areas.
______________________________________
Joe Kesselman, IBM Next-Generation Web Technologies: XML, XSL and more.
"The world changed profoundly and unpredictably the day Tim Berners Lee
got bitten by a radioactive spider." -- Rafe Culpin, in r.m.filk