Thanks for this answer. It does not seem terribly
intuitive. After all by supplying an 'as' attribute I am telling the
processor what I expect the contents to be treated as.
rules here are the same as the rules for function calling: if a function expects
an integer, then you can pass it an integer, or an untypedAtomic value, or a
node containing an integer or an untypedAtomic value, but you can't pass it (for
example) a string or a double.
Either pass an integer as the value, or pass an
untypedAtomic value (this is what happens from the command line), or declare the
parameter as being of type string, and convert it to an integer by casting, that
Also, I would suggest getting into the habit of writing
this kind of thing as
<xsl:param name="logLevel" as="xs:integer"
It's much more direct, and in some cases much more
efficient, to initialize the value to the integer 1, rather than to a document
node containing a text node containing the string representation of the number
I am getting
a "Cannot promote non-numeric value to xs:integer" with a parameter value. The
parameter definition looks like this:
When setting up
the parameters in Java I pass in a value as a string.
Can you please