Altova StyleVision 2025 Enterprise Edition

Exemple : Group-By (Persons.sps)

Accueil Préc Haut Suivant

L’exemple Persons.sps est basé sur le schéma Persons.xsd et utilise Persons.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\Persons\. La structure de document XML est comme suit : un élément de document employees peut contenir un nombre illimité d’employés person. Chaque employé person est structuré selon cet exemple :

 

<person first="Vernon" last="Callaby" department="Administration" grade="C"/>

 

Dans le design, nous regroupons des personnes selon le département. Chaque département est représenté par une table séparée et les départements sont triés par ordre alphabétique ascendant. À l’intérieur de chaque table de département, les personnes sont regroupées selon le grade (trié par ordre alphabétique ascendant) et, à l’intérieur de chaque grade, les personnes sont recensées par ordre alphabétique ascendant de leurs noms de famille.

 

Stratégie

La stratégie pour créer les groupes est la suivante. Le regroupement est créé dans l’élément person avec l’attribut du département étant le grouping-key. Ceci fait que l’élément person à trier dans les groupes basés sur la valeur de l’attribut du département. (Si le tri est précisé, alors les groupes de départements peuvent être organisés par ordre alphabétique, par exemple, d’abord l’Administration, etc.) Puisque les départements doivent être créés dans des tables séparés,le current-grouping (qui est basé sur le clé grouping-key du département) est créé comme table. Maintenant, à l’intérieur de cet ordre groupé des éléments Person, nous précisons que chaque groupe doit être trié davantage avec l’attribut grade comme grouping-key.

 

Créer SPS

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

 

1.Glissez l’élément person 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 person 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 Correspondre @department, puis cliquez sur Yes.

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 OK. (Le tri peut toujours être défini, modifié ou supprimé par la suite.)

5.Puisque chaque groupe (qui est un département) doit être créé dans une table séparée, créez le groupe actuel comme table. Faites ceci avec clic droit de la balise current-group() (capture d’écran ci-dessous), et sélectionnez Change to | Table, sélectionnant les attributs enfant @last and @grade comme colonnes de la table.

 

GroupingEx1a

 

6.Réorganiser les contenus des colonnes et cellules de la table pour que la première colonne contienne @grade et la deuxième colonne contienne les nœuds @first et @last (voir la capture d’écran ci-dessous).

7.À l’intérieur du groupe actuel, qui est groupé par département,nous souhaitons regrouper par grade. Donc dans le modèle current-group(), créez un regroupement pour l’attribut grade. Confirmer le tri par défaut. Un nouveau modèle current-group() est créé (voir capture d’écran ci-dessous).

8.Trier le groupe actuel (qui est le sous-groupe de persons et trié par grade), dans le dernier attribut last.

 

GroupingEx1b

 

9.Définir le formatage pour la table.

10.Au-dessus, la table fournir une en-tête pour la table. Puisque cahque table représente un département, le nom du département peut être obtenu de manière dynamique depuis le contexte acuel en utilisant un calcul automatique avec l’expression XPath qui appelle la fonction current-grouping-key() de XPath 2.0/3.0.

11.Répétez tout le processus, pour créer la sortie semblable, mais cette fois-ci, les grouping persons par grade, puis par département.

 

Pour consulter ou modifier le regroupement ou le tri d’un modèle, cliquez avec la touche de droite dans le modèle et sélectionnez Group by ou Sort by depuis le menu contextuel. Ceci ouvre le dialogue respectif, dans lequel les paramètres peuvent être consultés ou modifiés.

 

© 2019-2025 Altova GmbH