xsl:stylesheet | Defines the root node of an XSL file. It appears after the prolog and must contain at least one namespace declaration. |
- version (required): defines the XSLT version utilized.
- xmlns: [namespace] (required): defines the XSLT namespace utilized.
- exclude-result-prefixes: specifies any namespaces which should not be copied when output.
|
<xsl:stylesheet version="3.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:ou="http://omniupdate.com/XSL/Variables"
xmlns:ouc="http://omniupdate.com/XSL/Variables"
exclude-result-prefixes="xsl xs ou ouc">
</xsl:stylesheet>
|
xsl:import | Imports the XSLT of another stylesheet into the current one. Elements within the included stylesheet have less precedence than those defined in the current stylesheet. |
- href (required): defines the URL of a stylesheet to be imported.
|
<xsl:import href="common.xsl"/>
|
xsl:output | Specifies the output format of the document resulting from the XSL transformation. |
- method: defines the output format. Options include
xml , html , and text . If this attribute is missing, the default is xml .
- version: specifies the version of XML to be output.
- encoding: specifies the encoding attribute on the output.
- indent: specifies whether the output should include indentations based upon a hierarchical structure.
- include-content-type: specifies whether a meta tag should be inserted into the head element. Only applicable for HTML output method using XSLT 2.0 and above.
- omit-xml-declaration: specifies whether the XML declaration should be removed from the output. Options are
yes and no . If this attribute is missing, the default value is no .
|
<xsl:output method="html" version="5.0" indent="no" encoding="UTF-8" include-content-type="no"/>
|
xsl:function | Creates your own XSL stylesheet functions, which are then called upon using an XPath expression. Any functions defined in this way need to begin with a namespace prefix which is unique to user-generated functions. |
- name (required): unique identifier for this function which must begin with a namespace prefix unique to user-generated functions.
- as: defines the type of value to be returned when the function is invoked.
- override-extension-function: specifies whether this user-generated function should override other functions of the same name. Options are
yes or no . If this attribute is missing, the default value is yes .
|
<xsl:function name="ou:ssi">
<xsl:param name="fullpath"/>
<xsl:processing-instruction name="php"> include($_SERVER['DOCUMENT_ROOT'] . "<xsl:value-of select="$fullpath" />"); ?</xsl:processing-instruction>
</xsl:function>
|
xsl:template | Defines processing instructions for a particular XML node or source element. xsl:template can be invoked by name using xsl:call-template or by pattern using xsl:apply-templates . |
- name (required): unique identifier for this template.
- match (required if no name attribute is present): pattern identifier for this template.
- mode: specifies the mode which must be matched in an
xsl:apply-templates element in order for this template to be invoked
|
<xsl:template name="common-header">
<xsl:copy-of select="ou:include-file('/_resources/includes/header.inc')"/>
</xsl:template>
<xsl:template match="table" mode="maincontent">
<xsl:variable name="contents"><xsl:value-of select="./node()"/></xsl:variable>
</xsl:template>
|
xsl:call-template | Invokes an xsl:template by name. |
- name (required): unique identifier which must match the name attribute in an
xsl:template .
- xsl:with-param: a way to pass params to the called template
|
<xsl:call-template name="common-header">
<xsl:with-param name="path">/_resources/includes/header.inc</xsl:with-param>
</xsl:call-template>
|
xsl:apply-templates | Invokes an xsl:template by pattern. |
- select (required): defines the patten which matches to an
xsl:template .
- mode: if included, only invokes an
xsl:template with a matching mode.
|
<xsl:apply-templates select="table" mode="maincontent" />
|
xsl:copy | Also known as a "shallow copy." Copies and inserts a node. It does not copy any child nodes, descendants, or attributes of the original node. |
- copy-namespace: specifies whether the namespace should be copied. Options are
yes or no . If this attribute is missing, the default value is yes .
|
<xsl:copy>
<xsl:apply-templates select="ouc:editor" />
</xsl:copy>
|
xsl:param | Declares a parameter. In this case, the value assigned to the parameter is the default and can be changed when used within an xsl:call-template or xsl:apply-templates . |
- name (required): unique identifier for this parameter.
- select: an expression which defines the value of the parameter.
- required: specifies whether the parameter is mandatory. Options are
yes or no . If this attribute is missing, the default value is no .
- as: the return type of the parameter.
|
<xsl:param name="href" required="yes" as="xs:string"/>
<xsl:param name="serverType">php</xsl:param>
|
xsl:variable | Declares a variable which is a constant value. If declared immediately within the xsl:stylesheet node, this is a global variablename (required): unique identifier for this variable. |
- select: an expression which defines the value of the variable.
- as: the return type of the variable.
|
<xsl:variable name="nav-file" select="'_nav.inc'" />
<xsl:variable name="col-count">
<xsl:choose>
<xsl:when test="$row_col_count = 4"><xsl:value-of select="$four-column-class" /></xsl:when>
<xsl:when test="$row_col_count = 3"><xsl:value-of select="$three-column-class" /></xsl:when>
<xsl:otherwise><xsl:value-of select="$two-column-class" /></xsl:otherwise>
</xsl:choose>
</xsl:variable>
|
xsl:copy-of | Also known as a "deep copy." Copies and inserts a node and all its descendents. |
- select (required): defines the value or nodes to be copied.
- copy-namespace: specifies whether the namespace should be copied. Options are
yes or no . If this attribute is missing, the default value is yes .
|
<xsl:copy-of select="ouc:div[@label='related-content']/(attribute()|ouc:editor)"/>
|
xsl:value-of | Copies the text value of a node resulting in a string output. |
- select (required): defines the value or node to be copied.
- disable-output-escaping: specifies whether special characters should be XML escaped. Options are
yes or no . If this attribute is missing, the default value is no .
|
<xsl:value-of select="tbody/tr[2]/td[1]" />
|
xsl:if | Defines a conditional test and an action to take in the event the test returns as true. |
- test (required): defines the boolean condition to be tested. Output is
true or false .
|
<xsl:if test="@required = 'true'">
<xsl:attribute name="required"></xsl:attribute>
</xsl:if>
|
xsl:choose | A parent element which wraps any number of xsl:when elements and a single, optional xsl:otherwise element. This element wraps a set of conditional options which are tested in order of appearance. | This element has no attributes. |
<xsl:choose>
<xsl:when test="output/submit_text/text() != '">
<xsl:value-of select="output/submit_text/text()" />
</xsl:when>
<xsl:otherwise>
Submit
</xsl:otherwise>
</xsl:choose>
|
xsl:when | A child element of xsl:choose . This element defines a conditional test and an action to take in the event the test returns as true. An xsl:choose element may have an unlimited number of xsl:when elements, but the first xsl:when element to return true terminates the xsl:choose operation. |
- test (required): defines the boolean condition to be tested. Output is
true or false .
|
<xsl:when test="output/submit_text/text() != '">
<xsl:value-of select="output/submit_text/text()" />
</xsl:when>
|
xsl:otherwise | An optional child element of xsl:choose . This element should be declared last within the xsl:choose and defines the action to take in the event all previously stated xsl:when elements returned false. | This element has no attributes. |
<xsl:otherwise>
Submit
</xsl:otherwise>
|
xsl:for-each | Specifies an XPath expression which may apply to multiple XML nodes and defines an action to take upon each one. |
- select (required): XPath expression identifying a specific node or value within an XML file.
|
<xsl:for-each select="tbody/tr[3]/td[1]/descendant::p">
<p class="text"><xsl:value-of select="node()"/></p>
</xsl:for-each>
|
xsl:element | Defines a literal element to be inserted during the transformation. |
(required): defines the name of the element that will be created. |
<xsl:element name="test">
<xsl:text>This is a test document</xsl:text>
</xsl:element>
Output:
<test>This is a test document</test>
|
xsl:text | Defines literal text to be inserted during the transformation. |
- disable-output-escaping: specifies whether special characters should be XML escaped. Options are
yes and no . If this attribute is missing, the default value is no .
|
<xsl:text disable-output-escaping="yes"><</xsl:text>html lang="en"<xsl:text disable-output-escaping="yes">></xsl:text>
Output:
<html lang="en">
|
xsl:comment | Outputs an HTML comment node. | This element has no attributes. |
<xsl:comment>Comment goes here</xsl:comment>
|