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 (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@mulberr To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx 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@xxxxxxxxxxxxxxxx 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 ====================================================================== 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
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Can't make template match, Wendell Piez | Thread | Re: [xsl] Can't make template match, David Carlisle |
Re: [xsl] Sequences in XSLT 2.0.., Dimitre Novatchev | Date | Re: [xsl] Can't make template match, omprakash . v |
Month |