XSLT Esbudellat

Convencions

Darrera modificació 2011-04-25

Els documents d'aquest web usen una sèrie de convencions terminològiques i d'estil per evitar confusions.

Terminologia

Element:

Es considera un element qualsevol node de tipus element d'un arbre XML, el qual es pot representar mitjançant dues etiquetes o en la forma resumida d'una etiqueta autotancada.

Quan s'esmenti un element en el text, aquest anirà sempre precedit per un prefix pre-definit. Element definit segons EBNF.

  • Exemple: xsl:template

L'element pot dur opcionalment un predicat seguint les normes XPath és a dir, entre [ i ].

  • Exemple: xsl:template[@select]
Atribut:

Es considera un atribut qualsevol node de tipus atribut d'un arbre XML.

Quan s'esmenti un atribut en el text, aquest anirà sempre precedit per una arroba (@) i opcionalment durà un valor associat. Atribut definit segons EBNF.

  • Exemple 1: @select
  • Exemple 2: @select="."
Etiqueta:

Es considera una etiqueta la marca d'inici o la marca de fi d'un element.

Quan s'esmenti una etiqueta en el text, aquesta anirà sempre precedida d'un menor-que (<) i durà un major-que (>) al final. Etiqueta definida segons EBNF.

Quan s'esmenti una etiqueta de la qual s'ha omès un o més atributs, aquest acabarà amb tres punts ().

  • Exemple 1: <xsl:template>
  • Exemple 2: <xsl:template select="." …>

Qualsevol element o atribut pot dur un modificador quantitatiu:

?
Zero o una vegada
+
Una o més vegades
*
Zero o més vegades

Per tant, per indicar que un atribut “flags” és opcional l'expressió serà @flags?. O, si un element “when” és repetible l'expressió serà xsl:when+.

Definicions EBNF (notació W3C)

Element ::=
                              QName
                              ( '[' (
                              Atribut
                              ' '? )+ ']' )?
                            Atribut ::= '@'
                              QName
                              ( '=' '"'
                              Valor
                              '"' )?
                            Etiqueta ::= '<' '/'?
                              QName
                              (
                              QName
                              '=' '"'
                              Valor
                              '"' )* '…'? '/'? '>'
                            QName ::= ( [A-Za-z]+ ':' )? [A-Za-z_-.]+
                            Valor ::= [^"<>]+
                          

Prefixos en noms qualificats (xs:QName)

Els noms qualificats que s'esmenten al text que no formin part d'un exemple que defineixi l'associació del prefix a un espai de noms segueix les definicions següents:

xsl
http://www.w3.org/1999/XSL/Transform
xs
http://www.w3.org/2001/XMLSchema
fn
http://www.w3.org/2005/02/xpath-functions
html, xhtml
http://www.w3.org/1999/xhtml
svg
http://www.w3.org/2000/svg
xlink
http://www.w3.org/1999/xlink
xi
http://www.w3.org/2001/XInclude
rdf
http://www.w3.org/1999/02/22-rdf-syntax-ns#
dc
http://purl.org/dc/elements/1.1/
dct
http://purl.org/dc/terms/
dml
http://purl.oclc.org/NET/dml/1.0