|
[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
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
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








