Altova StyleVision 2025 Enterprise Edition

Exemple : Group-By (Scores.sps)

Accueil Préc Haut Suivant

L’exemple Scores.sps est basé sur le schéma Scores.xsd et utilise Scores.xml comme son fichier de travail XML. Il est situé dans le dossier (Mes) Documents, C:\Documents and Settings\<username>\My Documents\Altova\StyleVision2025\StyleVisionExamples\Tutorial\Grouping\Scores\. La structure du document XML est comme suit : l’élément de document results contient un ou plusieurs éléments group et un ou plusieurs éléments match. Un élément group contient un ou plusieurs éléments team, et un élément match est structuré selon cet exemple :

 

<match group="A" date="2007-10-12">

 <team name="Brazil" for="2" points="3"/>

 <team name="Germany" for="1" points="0"/>

</match>

 

Le design consiste en trois parties (capture d’écran ci-dessous) : (i) les résultats match présentés par jour ((groupés sur //match/@date); (ii) les résultats match présentés par groupe (groupés sur //match/@group); et (iii) tables dde groupes fournissant un aperçu des positions par groupe (une table dynamique de l’élément du groupe, avec des calculs automatiques pour calculer les données requises).

 

GroupingEx2a

 

Stratégie

Pour les deux sections contenant les résultats match, nous regroupons les correspondances par date et tournament-group. Pour les membres de chaque groupe (groupe date et tournament), nous créons des tables sans bords (à des fins d’alignement). Donc les correspondances lues sur une seule date seront dans une table séparée, et les résultats d’une correspondance d’un seul groupe tournament seront dans une table séparée (par exemple, correspondances du Groupe A). Pour la section des group-tables, l’élément group est créé comme table dynamique, avec des calculs automatiques fournissant la valeur des données requises.

 

Créer SPS

Le design a été créé comme suit :

 

1.Glissez l’élément /results/match depuis l’arborescence de schéma et créez-le comme son contenu.

2.Cliquez avec la touche de droite sur la balise de l’élément match et, dans le menu contextuel, sélectionnez Group by.

3.Dans le dialogue Définir regroupement de sortie, sélectionnez group-by, configurez l’expression XPath dans la case de texte Match à @ date, puis cliquez sur OK.

4.Un dialogue apparaît demandant si les groupes devraient être triés. Puisque nous souhaitons que les groupes soient triés selon l’ordre alphabétique ascendant par défaut, cliquez sur Oui. (Le tri peut toujours être défini, modifié ou supprimé par la suite.)

5.Puisque chaque groupe (qui est un date) doit être créé dans une table séparée, créez le groupe actuel comme table. À cette fin, cliquez avec la touche de droite sur la balise current-group(), sélectionnant Change to | Table, puis en sélectionnant les nœuds descendants team/@name et team/@for comme colonnes de la table (voir la capture d’écran ci-dessous).

 

GroupingEx2b

 

6.Définir un tiret dans chaque cellule qui sera la sortie si la correspondance n’est pas la dernière dans le groupe actuel. Faites-le en utilisant le modèle conditionnel avec une condition définie comme position() != last(). Ceci fournit une sortie telle que : Brazil - Germany ou 2 - 1.

7.Mettez un calcul automatique dans l’en-tête qui sort la grouping-clé pour le groupe respectif pour le groupe respectif (expression XPath: current-grouping-key()).

8.Formatter la table telle que requise.

9.Pour grouper les correspondances par groupe tournament, répétez le processus entier, mais grouper les correspondances cette fois-ci dans l’attribut group de match.

10.Pour les tables du groupe (dans la troisième section du design), qui contiennent les niveaux de chaque équipe dans le groupe, créez l’élément /results/group comme table dynamique. Ajoutez des colonnes tel que requis (utilisant les commandes Table | Ajouter Colonne ou Table | Insérer Colonne). Définir les calculs automatiques dans chaque colonne pour calculer la sortie requise (3 points pour un win; 1 point pour un draw; 0 point pour un loss). Puis, finalement, triez la table par ordre descendant de points totaux obtenus. Pour voir les expressions XPath utilisées pour obtenir ces résultats, cliquez avec la touche de droite sur le calcul automatique ou sur le modèle trié, et sélectionnez, respectivement, les commandes Éditer XPath et Trier par.

 

© 2019-2025 Altova GmbH