Re: [xsl] Can't make template match root element with schema info

Subject: Re: [xsl] Can't make template match root element with schema info
From: omprakash.v@xxxxxxxxxxxxx
Date: Wed, 16 Mar 2005 09:04:09 +0530
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 (

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.


                    Wendell Piez                                                                                     
                    <wapiez@mulberr        To:     xsl-list@xxxxxxxxxxxxxxxxxxxxxx                                   
          >             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">
>and adding a prefix 'hr' to the 'Resume' element in your xml as follows:
><Resume xml:lang="EN" xmlns:hr="";>
>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
>xmlns:xs=""; >

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
""; 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.


Wendell Piez                            mailto:wapiez@xxxxxxxxxxxxxxxx
Mulberry Technologies, Inc.      
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

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

Current Thread