"Michael" == Michael Kay <mike(_at_)saxonica(_dot_)com> writes:
>> > Pass the parameter as the Xpath value "(1, 2, 3)".
>>
>> If the system allows xpath expressions to be specified
>> externally. Unless I've missed something, saxon (for example)
>> only allows (on the command line) parameters to be specified by
>> a string value or be specified as a document node by passing in
>> a file name/uri.
Michael> Yes. Some products allow you to specify an XPath
Michael> expression as the parameter value. With Saxon you always
Michael> pass a value, not an expression.
I too always pass a value, not an expression.
But I get round this for passing XPath parameter expressions from the
command line by converting them to a value first.
I do this by:
1) Saving the static context of the xsl:tranform/stylesheet element of
the principal stylesheet module in the executable stylesheet. I can
then use this to parse the parameter into a parsed XPath
expression.
2) I create a dynamic context based on the initial context node and
evaluate the expression using that context.
3) The resulting value is then set as the parameter.
The sharp-eyed amongst you will notice that there is no initial
context node if only an initial template is requested. In this case I
disallow XPath expression strings as parameters.
But in fact passing (1,2,3) as a parameter is quite likely to be of
great use in just such a scenario. So one day I intend to remove this
limitation. It should be fairly easy - I just have no time right now.
I think Saxon could easily be adapted to use such a scheme.
--
Colin Adams
Preston Lancashire
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--