[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Can't make template match root element with schema inf

Subject: Can't make template match root element with schema info
From: Ken Gentle <j.kenneth.gentle@xxxxxxx>
Date: Mon, 14 Mar 2005 22:17:38 -0500
xsl template match
Greetings, all!

It took me way too long to figure out what the problem is and I can't seem to find the answer in the FAQ or lists.

I'm using Altova XML-SPY Home Edition, version 2005 release 3. I also tried instant Saxon with similar results.

I am trying to create a stylesheet to format an HR-XML Resume XML document. Seemed like a good idea at the time...

Given an xml document that looks like this:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="resume.xslt"?>
<Resume xml:lang="EN" xmlns="http://ns.hr-xml.org/2004-08-02" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://ns.hr-xml.org/2004-08-02
http://ns.hr-xml.org/2_3/HR-XML-2_3/SEP/Resume.xsd" >
<ResumeId>
<IdValue>jkg20050310-000</IdValue>
</ResumeId>
<StructuredXMLResume>
</StructuredXMLResume>
<NonXMLResume>
</NonXMLResume>
</Resume>
and the stylesheet that looks like this:


<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
<xsl:output method="xml"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" indent="yes" />
<xsl:template match="/">
<xsl:comment>Matched <xsl:value-of select="name(current())"></xsl:value-of></xsl:comment>
<xsl:apply-templates />
</xsl:template>


<xsl:template match="Resume">
<xsl:comment>Matched <xsl:value-of select="name(current())"></xsl:value-of></xsl:comment>
</xsl:template>
</xsl:stylesheet>
I get the following output:
<?xml version="1.0" encoding="UTF-8"?><!--Matched -->jkg20050310-000
If I remove the schema information from the root tag of the xml document:


<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="resume.xslt"?>
<Resume>
  <ResumeId>
    <IdValue>jkg20050310-000</IdValue>
  </ResumeId>
  <StructuredXMLResume>
  </StructuredXMLResume>
  <NonXMLResume>
  </NonXMLResume>
</Resume>
I get the following (more or less expected) output:

<?xml version="1.0" encoding="UTF-8"?><!--Matched -->
<!--Matched Resume-->
I must be missing something really basic here as I don't understand why the schema related attributes of the xml root tag prevent it from matching 'Resume' in the stylesheet. Why are attributes affecting this at all?


I did try including the HR-XML namespace in the style sheet and using a qualified XPath expression in the match ( match="hr:Resume") but that made no difference in the result.

Thanks in advance!

Ken Gentle

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.