[
Lists Home |
Date Index |
Thread Index
]
- From: Daniel Barclay <Daniel.Barclay@digitalfocus.com>
- To: José Manuel Beas <jmbeas@telenium.es>
- Date: Tue, 31 Oct 2000 15:17:49 -0500
José Manuel Beas wrote:
>
> I have a XML file with a parameter definition zone.
>
> <parameters>
> <param ident="param1">
> <param ident="param2">
> </parameters>
>
> And i want to apply a XSLT file to this XML file
>
> XSLT File
>
> <xsl:template match="parameters">
> <xsl:for-each select="param">
> <xsl:param name="@ident"/>
> </xsl:for-each>
> </xsl:template>
>
> But when XSLT-parser(SAXON) processes it, shows this error:
>
> "Name @ident contains invalid characters"
>
> How should i solve this problem??
The name attribute of xsl:param must be a QName (see
http://www.w3.org/TR/xslt#element-param ); specifically, the
parameter name must be given literally in the XSLT source, and can't
be specified with an expression.
I'm pretty sure there's no way to define XSLT parameters or variables
whose names are defined in the XML source document (the file being
transformed).
If you're going to provide parameter values in an XML file, you can
probably create one XSLT parameter or variable whose value is a nodeset
that is the content (children) of the "parameters" element (something
like <xsl:variable name="params" select=".../param" />), and then can
extract specific values with something like $var[@ident="param1"].
If you really want to map your given XML to XSLT parameters, I think
you'd have to transform the given XML into an XSLT stylesheet with
a second XSLT stylesheet.
Daniel
--
Daniel Barclay
Digital Focus
Daniel.Barclay@digitalfocus.com
|