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: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Tue, 15 Mar 2005 11:59:12 -0500
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 ======================================================================

Current Thread