[xsl] xsl elements in template not being interpreted by output as-is

Subject: [xsl] xsl elements in template not being interpreted by output as-is
From: "Christian Schouten" <C.Schouten@xxxxxxxxxx>
Date: Thu, 31 Mar 2011 12:58:37 +0200
Hi all,

Sorry in advance if I'm overlooking the obvious, but I'm stuck here.
I've got an xsl file in which I created some templates. These templates
are called allright but the xsl elements inside of them aren't being
executed, but the xsl code is simply output to screen (I'm using Kernow
to test, final display preferably possible in IE for redistribution
purposes).

The xsl should be called from an 'entrypoint' xsd file that will have
links to xml files (link:linkbaseRef, see below) and/or to xsd files
(xsd:import, see below) that in turn have their own xml files linked
(again, with link:linkbaseRef). From these xml files we'll go even
further exploring other (xsd) files, but I'm definitely not getting
there yet.

XSL file:
-----
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
xmlns:xsd="http://www.w3.org/2001/XMLSchema";
xmlns:link="http://www.xbrl.org/2003/linkbase";
xmlns:xlink="http://www.w3.org/1999/xlink";>
<!-- snip: global variables -->
<xsl:template match="/">
  <html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en">
<!-- snip: html and css tags -->
     Entrypoint <xsl:value-of
select="substring-after(xsd:schema/@targetNamespace,
concat($baseAddress, 'entrypoints/'))" />
    </p>
    <p class="formsetHeader">Linkbases:<br/>
     <xsl:apply-templates
select="/xsd:schema/xsd:annotation/xsd:appinfo/link:linkbaseRef" /></p>
    <p class="formsetHeader">Schemas:<br/>
     <xsl:apply-templates
select="/xsd:schema/xsd:import[starts-with(@namespace,
concat($baseAddress, 'report/'))]" /></p>
   </body>
  </html>
 </xsl:template>

 <xsl:template match="xsd:import">
I'm in: import-template
  <xsl:variable name="schemaLocation" select="@schemaLocation" />
<xsd:value-of select="$schemaLocation" /> <!-- should produce a value,
right? -->
  <xsl:variable name="formsetschema" select="document($schemaLocation)"
/>
<xsd:value-of
select="$formsetschema/xsd:schema/xsd:annotation/xsd:appinfo/link:linkba
seRef/@xlink:href" /> <!-- another debug line -->
  <xsd:apply-templates
select="$formsetschema/xsd:schema/xsd:annotation/xsd:appinfo/link:linkba
seRef" />
 </xsl:template>

 <xsl:template match="link:linkbaseRef">
I'm in: linkbaseRef-template <!-- never gets here... -->
  <xsl:variable name="href" select="@xlink:href" />
  <xsl:variable name="linkbase" select="document($href)" />
  <xsl:variable name="roleRef"
select="document(substring-before($linkbase/link:linkbase/link:roleRef/@
xlink:href, '#'))" />
  <p class="formsetHeader">
   <xsl:value-of
select="substring-after($linkbase/link:linkbase/link:roleRef/@xlink:href
, '#')" />:
   <xsl:value-of
select="$roleRef/xsd:schema/xsd:annotation/xsd:appinfo/link:roleType[@id
=substring-after($linkbase/link:linkbase/link:roleRef/@xlink:href,
'#')]/link:definition" />
  </p>
 </xsl:template>

</xsl:stylesheet>
-----

Now, instead of my expected output (main template linking to
import-template (which in turn links to linkbase-template) as well as
the linkbase-template if applicable) I see that the import-template is
correctly called, but nothing is interpreted, instead it shows the xsl
code as below:
-----
Warning: at xsl:stylesheet on line 2 column 215 of
displayEntrypoint.xsl:
  Running an XSLT 1.0 stylesheet with an XSLT 2.0 processor
<?xml version="1.0" encoding="UTF-8"?><html
xmlns:link="http://www.xbrl.org/2003/linkbase";
xmlns:xlink="http://www.w3.org/1999/xlink";
xmlns:xsd="http://www.w3.org/2001/XMLSchema";
xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en">
<!-- snip: html/css -->
     Entrypoint x
(...)
I'm in: import-template
  <xsd:value-of select="$schemaLocation"/><xsd:value-of
select="$formsetschema/xsd:schema/xsd:annotation/xsd:appinfo/link:linkba
seRef/@xlink:href"/><xsd:apply-templates
select="$formsetschema/xsd:schema/xsd:annotation/xsd:appinfo/link:linkba
seRef"/>
I'm in: import-template
  <xsd:value-of select="$schemaLocation"/><xsd:value-of
select="$formsetschema/xsd:schema/xsd:annotation/xsd:appinfo/link:linkba
seRef/@xlink:href"/><xsd:apply-templates
select="$formsetschema/xsd:schema/xsd:annotation/xsd:appinfo/link:linkba
seRef"/>
I'm in: import-template
  <xsd:value-of select="$schemaLocation"/><xsd:value-of
select="$formsetschema/xsd:schema/xsd:annotation/xsd:appinfo/link:linkba
seRef/@xlink:href"/><xsd:apply-templates
select="$formsetschema/xsd:schema/xsd:annotation/xsd:appinfo/link:linkba
seRef"/></p></body></html>

-----

Some sample lines taken from input files:
-----
Entrypoint xsd:  <xsd:import namespace="xyz"
schemaLocation="../myfile.xsd"></xsd:import>
Imported xsd:   <link:linkbaseRef
xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase";
xlink:href="linkbase.xml"
xlink:role="http://www.xbrl.org/2003/role/presentationLinkbaseRef";
xlink:title="Presentation Links, all" xlink:type="simple"/>
-----


Any help most appreciated!
Thanks in advance,
Chris

Current Thread