XSLT Marc21 Mini guide
XSL stands for EXtensible Stylesheet Language, and is a style sheet language for XML documents.
XSLT = XSL Transformations
XSLT is the most important part of XSL.
XSLT is used to transform an XML document into another XML document, or another type of document that is recognized by a browser, like HTML and XHTML. Normally XSLT does this by transforming each XML element into an (X)HTML element.
XSLT Uses XPath
XSLT uses XPath to find information in an XML document. XPath is used to navigate through elements and attributes in XML documents.
Correct Style Sheet Declaration
The root element that declares the document to be an XSL style sheet is <xsl:stylesheet> or <xsl:transform>.
Note: <xsl:stylesheet> and <xsl:transform> are completely synonymous and either can be used!
The correct way to declare an XSL style sheet according to the W3C XSLT Recommendation is:
xmlns:xsl=”http://www.w3.org/1999/XSL/Transform”>
or:
xmlns:xsl=”http://www.w3.org/1999/XSL/Transform”>
To get access to the XSLT elements, attributes and features we must declare the XSLT namespace at the top of the document.
Link the XSL Style Sheet to the XML Document
Add the XSL style sheet reference to your XML document (“cdcatalog.xml”):
<?xml version=”1.0″ encoding=”UTF-8″?>
<?xml-stylesheet type=”text/xsl” href=”cdcatalog.xsl”?>
<catalog> …
Some Screen XSLT samples about tables and textual formatting :
Again, We must declare the XSLT namespace at the top of the document like marc norms (prefix marc instead xsl) below :
Useful information about each specific XSL element.
apply-imports : Applies a template rule from an imported style sheet
apply-templates : Applies a template rule to the current element or to the current element’s child nodes
attribute : Adds an attribute
attribute-set : Defines a named set of attributes
call-template : Calls a named template
choose : Used in conjunction with <when> and <otherwise> to express multiple conditional tests
comment : Creates a comment node in the result tree
copy : Creates a copy of the current node (without child nodes and attributes)
copy-of : Creates a copy of the current node (with child nodes and attributes)
decimal-format : Defines the characters and symbols to be used when converting numbers into strings, with the format-number() function
element : Creates an element node in the output document
fallback : Specifies an alternate code to run if the processor does not support an XSLT element
for-each : Loops through each node in a specified node set
if : Contains a template that will be applied only if a specified condition is true
import : Imports the contents of one style sheet into another. Note: An imported style sheet has lower precedence than the importing style sheet
include : Includes the contents of one style sheet into another. Note: An included style sheet has the same precedence as the including style sheet
key : Declares a named key that can be used in the style sheet with the key() function
message Writes a message to the output (used to report errors)
namespace-alias Replaces a namespace in the style sheet to a different namespace in the output
number Determines the integer position of the current node and formats a number
otherwise Specifies a default action for the <choose> element
output Defines the format of the output document
param Declares a local or global parameter
preserve-space Defines the elements for which white space should be preserved
processing-instruction Writes a processing instruction to the output
sort Sorts the output
strip-space Defines the elements for which white space should be removed
stylesheet Defines the root element of a style sheet
template Rules to apply when a specified node is matched
text Writes literal text to the output
transform Defines the root element of a style sheet
value-of Extracts the value of a selected node
variable Declares a local or global variable
when Specifies an action for the <choose> element
with-param Defines the value of a parameter to be passed into a template
In addition, there are the following built-in XSLT functions:
current() Returns the current node
document() Used to access the nodes in an external XML document
element-available() Tests whether the element specified is supported by the XSLT processor
format-number() Converts a number into a string
function-available() Tests whether the function specified is supported by the XSLT processor
generate-id() Returns a string value that uniquely identifies a specified node
key() Returns a node-set using the index specified by an <xsl:key> element
system-property() Returns the value of the system properties
unparsed-entity-uri() Returns the URI of an unparsed entity