Ejemplo: múltiples claves de ordenación
En este ejemplo (ver carpeta (Mis) Documentos, C:\Documents and Settings\<usuario>\Mis Documentos\Altova\StyleVision2023\StyleVisionExamples\Tutorial\Sorting\SortingOnTwoTextKeys.sps) se enumeran en una tabla los miembros de un equipo. Cada miembro aparece en una fila de la tabla, con su nombre, apellido y dirección de correo electrónico. Imagine que queremos ordenar la lista por orden alfabético, primero por apellido y después por nombre.
Cuando la lista está todavía sin ordenar, el orden de los elementos en el documento de salida es el orden que tienen los elementos member en el documento XML (imagen siguiente, formato HTML).
En la vista Diseño, haga clic con el botón derecho en el elemento member (resaltado en azul en la imagen siguiente) y seleccione Ordenar por en el menú contextual.
Se abre el cuadro de diálogo "Definir el criterio de ordenación de los resultados" (imagen siguiente). Observe que el elemento seleccionado para la ordenación (member) aparece en el cuadro de diálogo como Ordenar nodos: member. Este nodo también es el nodo de contexto para las expresiones XPath que se usarán para seleccionar la clave de ordenación. Haga clic en el botón Agregar fila (esquina superior izquierda del panel) para añadir la primera instrucción de ordenación. En la columna Coincidencia introduzca una expresión XPath para seleccionar el nodo last. También puede hacer clic en el botón para abrir el cuadro de diálogo "Editar expresión XPath". En la columna Tipo de datos puede seleccionar cómo debe evaluarse el contenido de la clave de ordenación: como texto o como número. Y la columna Orden ofrece dos opciones: ascendente y descendiente. Seleccione Texto y Ascendente. Para terminar haga clic en Aceptar.
En la vista Diseño la etiqueta del elemento member ahora incluye un icono para indicar que contiene un filtro de ordenación (). A continuación puede ver la misma lista en formato HTML con los miembros del equipo ordenados por apellido. Observe que hay dos personas con el apellido Edwards pero no están ordenadas alfabéticamente (Nadia aparece antes que John, siguiendo el orden de los elementos en el documento XML). Por tanto necesitamos aplicar otra clave de ordenación, esta vez en el nombre (first).
En la vista Diseño haga clic con el botón derecho en la etiqueta del elemento member y seleccione Ordenar por en el menú contextual. En el cuadro de diálogo "Definir el criterio de ordenación de los resultados" anexe una fila nueva al panel y defina el elemento first como clave de ordenación (imagen siguiente). Para terminar haga clic en Aceptar.
A continuación puede ver cómo queda la lista en formato HTML, con todos los miembros del equipo ordenados por apellido y después por nombre.