Skip to main content
Skip table of contents

Liste des pièces

Nom de fichier :

Room list.xfd

Niveau

Moyen

XML provenant du rapport :

Pièce -> Liste de pièces -> Avec les valeurs de surface

Fichier échantillon XML :

xml/rooms.xml

Principaux concepts

Tableau répétitif, clé/indice

C'est une simple liste de toutes les pièces. Elle présente un tableau répétitif (voir 3.6) de pièce créé simplement en faisant glisser le nœud XML <pièce> du volet source des données (3) provenant de drofus-xml/room-container vers le document.
La partie "dure" de ce rapport est la troisième colonne qui présente le nom de la fonction supérieure (service) dans lequel cette pièce est placée. La zone d'en-tête de cette colonne utilise l'attribut supérieur de <niveau> descriptif qui contient le descriptif de ce niveau de fonction. Celui-ci utilise l'expression suivante

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="4e0cce98-a275-49a6-946d-4568ec3a8f6e"><ac:plain-text-body><![CDATA[

/drofus-xml/level[1]/@description

]]></ac:plain-text-body></ac:structured-macro>

Celui va simplement au nœud de premier niveau dans le document et obtient l'attribut @description.
Pour obtenir le contenu de la colonne, il faut regarder dans la hiérarchie <level> (des niveaux) qui représente l'arborescence fonctionnelle. Dans cette dernière, nous retrouverons toutes les mêmes pièces que dans le <room-container> (conteneur de pièce), mais uniquement les pièces ayant un attribut @ref qui renvoie à l'attribut room-container/room/@id. Pour pouvoir référencer cette pièce, il nous faut un index. Pour le créer, collez le code suivant dans la fenêtre "Revue->XSLT Global".

<xsl:key match="room" name="room-ref-key" use="@ref"/>

Ceci indexera tous les nœuds de <pièce> à partir de l'attribut de réf. Nous pouvons ensuite nous en servir pour rechercher la même pièce que celle que nous traitons actuellement en faisant

key('room-ref-key', @id)

Du fait que nous voulons également supérieur au-dessus de cette pièce, l'expression complète correspondant à cette zone est :

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="2a77c491-738d-4ad0-90a8-d3076e9a4b6e"><ac:plain-text-body><![CDATA[

key('room-ref-key',@id)/ancestor::level[last()]/@name

]]></ac:plain-text-body></ac:structured-macro>

Cette instruction recherche la pièce dans l'arborescence des niveaux, obtient tous les nœuds de niveau situés au-dessus, prend le dernier, puis va chercher l'attribut de nom, phui...

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.