Changes

Jump to navigation Jump to search
21 bytes removed ,  18:38, 1 December 2023
m
Text replacement - "syntaxhighlight" to "pre"
This [[Module Library|XQuery Module]] contains functions and variables to perform XSL transformations.
By default, this module uses Java’s XSLT 1.0 Xalan implementation to transform documents. XSLT 3.0 will be enabled is used if the [https://www.saxonica.com/ Saxon XSLT Processor] is found in the class path (e.g. by placing the library files in the [[Startup#Full Distributions|{{Code|lib/custom}} directory]]). A custom specific transformer can be specified by assigning a class classpath to the system property {{Code|javax.xml.transform.TransformerFactory}}, ewith the [https://docs.oracle.gcom/en/java/javase/11/tools/java. html -D flag] on the command line, or directly in Java:
<syntaxhighlight pre lang="java">
System.setProperty(
"javax.xml.transform.TransformerFactory",
...
ctx.close();
</syntaxhighlightpre>
=Conventions=
|- valign="top"
| '''Summary'''
|Returns the name of the applied XSLT processor, or the path to a custom implementation (currently: "Java", "Saxon EE", "Saxon PE", or "Saxon HE"). If a system property was assigned that points to an existing implementation other than Saxon, the classpath is returned instead.<br/>
|}
|- valign="top"
| '''Summary'''
|Returns the supported XSLT version (currently: "1.0" or , "3.0"). "Unknown" An empty string is returned if a custom classpath in the system property points to an existing implementation was chosenother than Saxon.<br/>
|}
'''Query:'''
<syntaxhighlight pre lang="'xquery"'>
(: Outputs the result as html. :)
declare option output:method 'html';
</xsl:stylesheet>
return xslt:transform($in, $style)</syntaxhighlightpre>
'''Result:'''
<syntaxhighlight pre lang="xml">
<html>
<body>
</body>
</html>
</syntaxhighlightpre>
'''Example 2: Textual XSL transformation'''
'''Query:'''
<syntaxhighlight pre lang="'xquery"'>
xslt:transform-text(<dummy/>, 'basic.xslt')
</syntaxhighlightpre>
'''basic.xslt'''
<syntaxhighlight pre lang="xml">
<xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:template match="/">123</xsl:template>
</xsl:stylesheet>
</syntaxhighlightpre>
'''Result:'''
<syntaxhighlight pre lang="xml">123</syntaxhighlightpre>
'''Example 3: XSL transformation with variable assignment'''
'''Query:'''
<syntaxhighlight pre lang="'xquery"'>
let $in := <dummy/>
let $style := doc('variable.xsl')
return xslt:transform($in, $style, map { "v": 1 })
</syntaxhighlightpre>
'''variable.xsl'''
<syntaxhighlight pre lang="xslt">
<xsl:stylesheet version='1.0'
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
</xsl:template>
</xsl:stylesheet>
</syntaxhighlightpre>
'''Result:'''
<syntaxhighlight pre lang="xml">
<v>1</v>
<v>1</v>
</syntaxhighlightpre>
'''Example 4: XSL transformation, yielding a result and info messages'''
'''Query:'''
<syntaxhighlight pre lang="'xquery"'>
xslt:transform-report(
<_/>,
</xsl:transform>
)
</syntaxhighlightpre>
'''Result:'''
<syntaxhighlight pre lang="'xquery"'>
map {
"messages": ([<msg>START...</msg>], ["4 5 ...END"]),
"result": <xml>123</xml>
}
</syntaxhighlightpre>
=Errors=
Bureaucrats, editor, reviewer, Administrators
13,554

edits

Navigation menu