xsl:function

Allows the creation of user-defined stylesheet function that can be called from any XPath expression within the stylesheet in which the function is defined. This instruction is supported in XSLT 2.0 only.

Format

<xsl:function name="Qname" as="sequence type" [override="yes" | "no"]> 
function_body 
</xsl:function> 

Description

The value of the name attribute, Qname, is a qualified name and takes the form prefix:name. The prefix is required in order to avoid possible conflicts with any functions in the default function namespace. The prefix cannot refer to a reserved namespace.

The function_body contains zero or more <hyperlink>xsl:param elements that specify the formal arguments of the function. These xsl:param elements are followed by a sequence constructor that defnes the value to be returned by the function. The xsl:param elements within an xsl:function element must be empty; they cannot have a select attribute because they must be specified.

An xsl:function declaration can only appear as a top-level element in a stylesheet.

Example

Here is an example from the W3C XSLT Working Draft of a simple function that reverses the order of the words in a sentence.

<xsl:transform  
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
  xmlns:xs="http://www.w3.org/2001/XMLSchema" 
  xmlns:str="http://example.com/namespace" 
  version="2.0" 
  exclude-result-prefixes="str"> 
  
<xsl:function name="str:reverse" as="xs:string"> 
  <xsl:param name="sentence" as="xs:string"/> 
  <xsl:sequence   
     select="if (contains($sentence, ' ')) 
             then concat(str:reverse(substring-after($sentence, ' ')), 
                         ' ', 
                         substring-before($sentence, ' ')) 
             else $sentence"/> 
</xsl:function> 
  
<xsl:template match="/"> 
<output> 
  <xsl:value-of select="str:reverse('DOG BITES MAN')"/> 
</output> 
</xsl:template> 
  
</xsl:transform> 

DTD Validator

This page talks about Stylus Studio's DTD Validator it has the ability to specify any third-party XML parsers and validators, real-time syntax checking and DTD validation error reporting, backmapping, integrating third-party DTD validators and more!

The XML Primer: Editing and Validating XML in Stylus Studio

The XML primer demonstrates editing and validating XML in Stylus Studio demonstrates XML editing tools and utilities to simplify working with XML documents. Learn how to automate XML editing operations and troubleshoot XML documents today!

Stylus Studio is a Real Cost-Saver in Novell Implementations

Learn how TriVir, a leading consulting group used Stylus Studio to implement a Novell based solutions using DirXML, eDirectory, and the exteNd suite for their government customers.

DTD vs. Schema

Stylus Studio provides tools for working with both W3C XML Schema and DTD's - this tutorial explains what the differences are between the two, providing a technical comparison of DTD vs Schema.

Stylus Most Wanted

 
Free Stylus Studio XML Training:
W3C Member