Tablas
En un diseño SPS se pueden utilizar dos tipos de tabla: tablas SPS y tablas CALS/HTML. Estos dos tipos de tabla son muy diferentes y es importante comprender estas diferencias. Esta sección describe en detalle cómo se debe usar cada tipo.
Tablas SPS
Una tabla SPS es un componente de un diseño SPS al que se le da estructura y formato en el diseño. Se puede crear en cualquier parte del diseño y puede crear tantas tablas SPS como quiera.
Las tablas SPS son dispositivos de presentación y se representan usando el vocabulario de presentación del formato de salida. La estructura de una tabla SPS no está representada por nodos del documento XML, aunque el contenido propiamente dicho de las celdas de la tabla proceda de nodos del documento XML.
Hay dos tipos de tablas SPS:
•Tablas estáticas: las crea paso a paso la persona que diseña el SPS. Después de crear la estructura de la tabla se define el contenido de cada celda por separado. El contenido de las celdas puede proceder de diferentes posiciones de la estructura del esquema e incluso de tipos diferentes. No olvide que las filas de una tabla estática no representan una estructura de datos repetitiva. Por eso este tipo de tabla se denomina estática: tiene una estructura fija que no cambia, independientemente del contenido XML.
•Tablas dinámicas: están pensadas para estructuras de datos del documento XML que se repiten. Pueden crearse para elementos de esquema que tienen una subestructura (es decir, que tienen como mínimo un atributo o elemento secundario). Cualquier elemento de una subestructura se repite si existe más de una instancia suya. Cada instancia del elemento equivale a una fila de la tabla dinámica y sus elementos o atributos secundarios (todos o algunos) equivalen a las columnas de la tabla. La estructura de una tabla dinámica, por tanto, refleja el contenido del archivo XML y cambia con el contenido de forma dinámica.
Tablas CALS/HTML
El modelo de contenido de una tabla CALS o HTML se define en el documento XML (y por extensión en el DTD o en el esquema) y sigue la correspondiente especificación (CALS o HTML). Después puede especificar en el diseño SPS si la tabla CALS/HTML se procesa o no como tabla. La estructura de datos XML que representa la tabla CALS/HTML en este caso genera marcado de tabla para cada formato de salida. El formato de las tablas CALS/HTML se puede especificar en el documento XML de instancia o en el SPS o en ambos.
Por ejemplo, observe la vista previa HTML de esta tabla HTML.
![tbl_xml_table_auth](./images/tbl_xml_table_auth.png)
Este sería el fragmento de código HTML para la tabla XML anterior:
<table border="1" width="40%">
<tbody>
<tr>
<td>Name</td>
<td>Phone</td>
</tr>
<tr>
<td>John Merrimack</td>
<td>6517890</td>
</tr>
<tr>
<td>Joe Concord</td>
<td>6402387</td>
</tr>
</tbody>
</table>
El documento XML original podría ser este:
<phonelist border="1" width="40%">
<items>
<person>
<data>Name</data>
<data>Phone</data>
</person>
<person>
<data>John Merrimack</data>
<data>6517890</data>
</person>
<person>
<data>Joe Concord</data>
<data>6402387</data>
</person>
</items>
</phonelist>
Observe que los nombres de elemento del documento XML no necesitan tener semántica de tabla. Sin embargo, la estructura de la tabla, debe corresponder al modelo de tabla HTML o CALS. Además, tenga en cuenta que:
•Al elemento de columna HTML <td/> solamente puede corresponder un elemento XML.
•Una tabla CALS/HTML se puede insertar en cualquier posición del documento XML donde, según el esquema, se permita el elemento que corresponde al elemento table.
•En la vista Authentic los datos se introducen directamente en las celdas de la tabla. Estos datos se almacenan como contenido del elemento de tabla CALS/HTML correspondiente.
•Las propiedades de formato de una tabla CALS/HTML pueden venir del documento XML o se pueden especificar en el diseño SPS.
Resumen para diseñadores
Desde el punto de vista del diseñador del SPS, podemos resumir todo esto en tres puntos:
•La estructura de una tabla SPS se define en el SPS. Por el contrario, la estructura de una tabla CALS/HTML se especifica en el esquema y debe seguir la del modelo de la tabla CALS/HTML. Sin embargo, los nombres de elemento del esquema pueden ser diferentes de los nombres de elemento de los modelos de tabla CALS o HTML.
•Los elementos colspan y rowspan de las tablas SPS se especifican en el SPS. Pero en las tablas CALS/HTML, los colspan y rowspan se especifican en el documento XML de instancia.
•El formato de tabla de las tablas SPS se especifica en el SPS. El formato de las tablas CALS/HTML se especifica en el documento XML de instancia y/o en el SPS.