Changes

Jump to navigation Jump to search
1,967 bytes added ,  14:20, 20 July 2022
no edit summary
{| width='100%'
|-valign="top"
| width='120' | '''Signatures'''
|{{Code|'''xslt:processor'''() as xs:string}}<br />
|-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").<br />
{| width='100%'
|-valign="top"
| width='120' | '''Signatures'''
|{{Code|'''xslt:version'''() as xs:string}}<br />
|-valign="top"
| '''Summary'''
|Returns the supported XSLT version (currently: "1.0" or "3.0"). "Unknown" is returned if a custom implementation was chosen.<br />
{| width='100%'
|-valign="top"
| width='120' | '''Signatures'''
|{{Func|xslt:transform|$input as item(), $stylesheet as item()|node()}}<br />{{Func|xslt:transform|$input as item(), $stylesheet as item(), $params as map(*)?|node()}}<br />{{Func|xslt:transform|$input as item(), $stylesheet as item(), $args as map(*)?, $options as map(*)?|node()}}
|-valign="top"
| '''Summary'''
|Transforms the document specified by {{Code|$input}}, using the XSLT template specified by {{Code|$stylesheet}}, and returns the result as node. {{Code|$input}} and {{Code|$stylesheet}} can be specified as<br />
[[Catalog Resolver|XML Catalog files]] will be considered when resolving URIs. Variables can be bound to a stylesheet via {{Code|$args}} (only strings are supported when using XSLT 3.0 and Saxon). The following {{Code|$options}} are available:
* {{Code|cache}}: cache XSLT transformer (speeds up repeated transformations, but increases memory consumption)
|-valign="top"
| '''Error'''
|{{Error|error|#Errors}} an error occurred during the transformation process.
{| width='100%'
|-valign="top"
| width='120' | '''Signatures'''
|{{Func|xslt:transform-text|$input as item(), $stylesheet as item()|xs:string}}<br />{{Func|xslt:transform-text|$input as item(), $stylesheet as item(), $params as map(*)?|xs:string}}<br />{{Func|xslt:transform-text|$input as item(), $stylesheet as item(), $params as map(*)?, $options as map(*)?|xs:string}}
|-valign="top"
| '''Summary'''
|Transforms the document specified by {{Code|$input}}, using the XSLT template specified by {{Code|$stylesheet}}, and returns the result as string. The semantics of {{Code|$params}} and {{Code|$options}} is the same as for [[#xslt:transform{{Function||xslt:transform]]}}.<br />|-valign="top"
| '''Error'''
|{{Error|error|#Errors}} an error occurred during the transformation process.
|}
==Examplesxslt:transform-report==
{| width='100%'|- valign="top"| width='Example 1120' | '''Signatures'''|{{Func|xslt:transform-report|$input as item(), $stylesheet as item()|xs:string}}<br />{{Func|xslt:transform-report|$input as item(), $stylesheet as item(), $params as map(*)?|xs:string}}<br />{{Func|xslt:transform-report|$input as item(), $stylesheet as item(), $params as map(*)?, $options as map(*)?|xs:string}}|- valign="top"| '''Summary'''|Transforms the document specified by {{Code|$input}}, using the XSLT template specified by {{Code|$stylesheet}}, and returns a map with the following keys: Basic XSL * {{Code|result}}: The transformation with dummy result: One or more document nodes, or (if the result cannot be converted to XML) an item of type {{Code|xs:untypedAtomic}}.* {{Code|messages}}: Informational output generated by {{Code|xsl:message}} elements: A sequence of arrays. The arrays consist of XML elements, or (for those messages that cannot be converted to XML) items of type {{Code|xs:untypedAtomic}}.The semantics of {{Code|$params}} and without parameters'''{{Code|$options}} is the same as for {{Function||xslt:transform}}.<br />For the moment, messages can only be returned with recent versions of Saxon.* {{Code|error}} (optional): An error string, which would be raised as an error by the other functions of this module.|}
'''Query:'''<syntaxhighlight lang="xquery">xslt:transform-text(<dummy/>, 'basic.xslt')</syntaxhighlight> '''basic.xslt'''<syntaxhighlight lang="xml"><xsl:stylesheet versionExamples='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'> <xsl:template match="/">123</xsl:template></xsl:stylesheet></syntaxhighlight> '''Result:'''<syntaxhighlight lang="xml">123</syntaxhighlight>
'''Example 21: XSLT XSL transformation of an input document, with XML and XSL supplied as nodes'''
'''Query:'''
(: Outputs the result as html. :)
declare option output:method 'html';
(: Turn whitespace chopping off. :)
declare option db:chop 'no';
let $in :=
</syntaxhighlight>
'''Example 2: Textual XSL transformation''' '''Query:'''<syntaxhighlight lang="xquery">xslt:transform-text(<dummy/>, 'basic.xslt')</syntaxhighlight> '''basic.xslt'''<syntaxhighlight lang="xml"><xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'> <xsl:template match="/">123</xsl:template></xsl:stylesheet></syntaxhighlight> '''Result:'''<syntaxhighlight lang="xml">123</syntaxhighlight> '''Example 3: Assigning a XSL transformation with variable to an XSLT stylesheetassignment'''
'''Query:'''
<v>1</v>
<v>1</v>
</syntaxhighlight>
 
'''Example 4: XSL transformation, yielding a result and info messages'''
 
'''Query:'''
<syntaxhighlight lang="xquery">
xslt:transform-report(
<_/>,
<xsl:transform version='2.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:template match='/'>
<xsl:message><msg>START...</msg></xsl:message>
<xml>123</xml>
<xsl:message select='4, 5, "...END"'/>
</xsl:template>
</xsl:transform>
)
</syntaxhighlight>
 
'''Result:'''
<syntaxhighlight lang="xquery">
map {
"messages": ([<msg>START...</msg>], ["4 5 ...END"]),
"result": <xml>123</xml>
}
</syntaxhighlight>
! width="110"|Code
|Description
|-valign="top"
|{{Code|error}}
| An error occurred during the transformation process.
=Changelog=
 
;Version 9.7
* Added: {{Function||xslt:transform-report}}
;Version 9.2
;Version 9.0
* Updated: [[#xslt:transform{{Function||xslt:transform]]}}, [[#xslt:transform-text{{Function||xslt:transform-text]]}}: {{Code|$options}} argument added.
* Updated: error codes updated; errors now use the module namespace
;Version 7.6
* Added: [[#xslt:transform-text{{Function||xslt:transform-text]]}}* Updated: [[#xslt:transform{{Function||xslt:transform]] }} returned error code
;Version 7.3
* Updated: $xslt:processor → [[#xslt:processor{{Function||xslt:processor]]}}, $xslt:version → [[#xslt:version{{Function||xslt:version]]}}
Bureaucrats, editor, reviewer, Administrators
13,550

edits

Navigation menu