Hi Mr.Piez,
I agree with you when you say that step 2 is unnecessary. I
too had the same doubt and went back and checked another example I had.
There the source xml (xhtml !!! ) had no prefix defined but the stylesheet
was matching elements having html prefix where the html prefix had been
defined to point to the xhtml namespace (http://www.w3.org/1999/xhtml).
To summarize (and please correct if wrong)
If the root element in the xml file has a namespace defined but no prefix,
then the stylesheet written as above ( to look for elements in the xhtml
namespace) would still be able to find them .
This is sort of like the namespace declaration causes the stylesheet to
override its default behavior which is to treat elements as being in the
default namespace. Alternately, one may specify a prefix in the namespace
declaration with a prefix and use the prefix everywhere in the xml file and
get the same behavior.
I hope I am making this clear.
Regards,
Omprakash.V
Wendell Piez
<wapiez(_at_)mulberr To:
xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
ytech.com> cc: (bcc: omprakash.v/Polaris)
Subject: Re: [xsl] Can't make
template match root element with schema
03/15/2005 info
10:29 PM
Please respond
to xsl-list
At 10:46 PM 3/14/2005, it was written:
You can get it to work by modifying your template thus:
<xsl:template match="hr:Resume">
</xsl:template>
and adding a prefix 'hr' to the 'Resume' element in your xml as follows:
<Resume xml:lang="EN" xmlns:hr="http://ns.hr-xml.org/2004-08-02">
Also, you would need to add the xmlns:hr namespace to your xslt file as
well as follows:
<xsl:stylesheet version="1.0" xmlns:xsl
="http://www.w3.org/1999/XSL/Transform"
xmlns:hr="http://ns.hr-xml.org/2004-08-02"
xmlns:xs="http://www.w3.org/2001/XMLSchema" >
This is very helpful and quite correct, except in a couple of details.
Really, only steps 1 and 3 are necessary: add a namespace declaration to
your stylesheet that assigns a prefix to the namespace of the elements in
your source, which are already bound to the
"http://ns.hr-xml.org/2004-08-02" namespace -- which is why they don't
currently match -- (this is step 3 above), and then use the prefix whenever
you refer to elements in this namespace in your stylesheet (step 1). Step 2
does nothing useful: it only adds a namespace declaration for a prefix that
is never used there.
Also, strictly speaking the namespace declarations (the "xmlns" thingies)
aren't attributes, and shouldn't be called attributes even though they look
just like them. This is because although they are expressed as attributes
syntactically, they don't turn up as attributes in the data model.
Cheers,
Wendell
======================================================================
Wendell Piez
mailto:wapiez(_at_)mulberrytech(_dot_)com
Mulberry Technologies, Inc. http://www.mulberrytech.com
17 West Jefferson Street Direct Phone: 301/315-9635
Suite 207 Phone: 301/315-9631
Rockville, MD 20850 Fax: 301/315-8285
----------------------------------------------------------------------
Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
This e-Mail may contain proprietary and confidential information and is sent
for the intended recipient(s) only.
If by an addressing or transmission error this mail has been misdirected to
you, you are requested to delete this mail immediately.
You are also hereby notified that any use, any form of reproduction,
dissemination, copying, disclosure, modification,
distribution and/or publication of this e-mail message, contents or its
attachment other than by its intended recipient/s is strictly prohibited.
Visit Us at http://www.polaris.co.in
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--