Il est possible de paramétrer la présentation au moyen d'attributs ayant des valeurs par défaut auxquelles le "stylesheet" peut se référer comme avec "indent" et "separation" dans l'exemple suivant tiré du canevas "sections" dans
page_ex.xsl
:
<TR><TD width="{@indent}">
<xsl:call-template name="nbsp"/></TD>
<TD width="{@separation}">
<xsl:call-template name="nbsp"/></TD>
...
</TR>
dans le DTD
page_ex.dtd
nous pouvons trouver les déclarations correspondantes d'où viennent les valeurs:
<!ELEMENT sections (section+, body?)>
<!ATTLIST sections
%core.att;
width %RelativeLength; "95%"
height %RelativeLength; "80%"
indent %RelativeLength; "30%"
separation %RelativeLength; "2%"
>
Cette façon de paramétrer vous donne aussi l'opportunité de les changer dans des cas exceptionnels en spécifiant simplement les valeurs désirées localement moyennant les attributs de l'élément.
| | Ce qui examinerons plus de près le marquage HTML engendré et les déclarations en entête dans
page_ex.html
ou le soumettent à un valideur HTML découvriront des divergences. L'exemple présenté est en réalité le fruit d'un compromis entre générer du pur marquage HTML4 et engendrer marquage XHTML1, car XML, XSL, et XSLT requièrent que tout élément doit avoir son marquage de clôture. Par exemple vous ne pouvez pas spécifier dans XSLT la génération d'un élément META sans son META/ (à moins que vous voulez recourir à une construction très compliquée avec des éléments xsl:text, voir la règle canevas nommée "br", pour une instance très simple du genre). Des essais avec différents navigateurs ont montré que des éléments avec marquage de clôture, bien que pas contemplé par HTML4, ne donnent lieu à aucun inconvénient.
L'attribut "height" qui apparaît dans les éléments table ne fait pas partie des spécifications HTML4, cependant il est reconnu par la plupart des navigateurs pour raisons de compatibilité avec des versions précédentes. On l'utilise souvent pour contrôler la mise en page de ce site.
|
|