xsl-list
[Top] [All Lists]

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

2005-03-15 20:34:09


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>
--~--