Framework unificado para desarrollo de interfaces J2EE Documento de Patrones para la descripción formal de interfaces de usuario Versión 0.1 Patrones para la descripción formal de interfaces de usuario Versión <0.1> Historia de Revisión Fecha 22/06/2005 Versión <0.1> Descripción Creación. Responsable Diego Castañeda Cristian Castañeda Alejandro Báez INVESTIGADORES: ALEJANDRO BAEZ CRISTIAN CASTAÑEDA DIEGO CASTAÑEDA DIRECTOR: JAVIER SANCHEZ Framework unificado para desarrollo de interfaces J2EE Documento de Patrones para la descripción formal de interfaces de usuario Versión 0.1 TABLA DE CONTENIDO 1. Introducción..................................................................................... 3 2. Modelo para la descripción formal de las Interfaces de Usuario. ..... 4 2.1. Descripción del Modelo Gráfico ................................................. 4 2.1.1. Formulario ........................................................................... 4 2.1.2. Cabecera............................................................................. 4 2.1.3 SubFormulario ...................................................................... 5 2.1.4. Selección............................................................................. 5 2.1.5. Cuadros CRUD.................................................................... 5 2.1.6. Atributos .............................................................................. 6 2.1.7. Criterios ............................................................................... 6 2.1.8. Ver Detalle........................................................................... 6 2.2. Proceso ..................................................................................... 7 3. Patrones basados en relaciones...................................................... 8 3.1. RELACION UNO A MUCHOS ................................................... 8 3.2. RELACION MUCHOS A MUCHOS ..........................................10 3.3. RELACION UNO A UNO ..........................................................12 3.4. BÚSQUEDA .............................................................................14 4. Asociaciones con Componentes.....................................................16 5. Lenguaje traducido a XML..............................................................17 5.1 Tags ..........................................................................................17 5.2 Estructura ..................................................................................20 2 Framework unificado para desarrollo de interfaces J2EE Documento de Patrones para la descripción formal de interfaces de usuario Versión 0.1 1. Introducción Este documento describe un lenguaje para generar modelos que permitan la especificación, visualización y construcción de las interfaces graficas de un sistema; además de esto, se plantean una serie de patrones cuyo objetivo es estandarizar ciertos casos comunes en el desarrollo de las mismas, con el fin de disminuir la complejidad, ya que este tipo de modelos organizan y resaltan los detalles mas importantes a ser tenidos en cuenta para la construcción de las interfaces. Este modelo beneficiara los desarrollos porque se planea con anticipación los elementos que se van a necesitar en el mismo, previniendo que se haga una inversión de tiempo en la construcción de componentes que no sean necesarios. Además de lo anterior, este modelo permite definir un alcance que deja claro los resultados que se quieren obtener. Adicionalmente se presenta un lenguaje XML que describe como estará construida las diferentes interfaces de la aplicación 3 Framework unificado para desarrollo de interfaces J2EE Documento de Patrones para la descripción formal de interfaces de usuario Versión 0.1 2. Modelo para la descripción formal de las Interfaces de Usuario. 2.1. Descripción del Modelo Gráfico A continuación describiremos cada uno de los elementos del lenguaje gráfico que describirá las interfaces con su respectiva representación. 2.1.1. Formulario Consigna todos los elementos que tenga el modelo, se identifica con un numero y se relaciona inmediatamente con la clase principal que va ser mostrada dentro del el. 2.1.2. Cabecera Representa el conjunto de atributos que se desean mostrar de una clase especifica. Se grafica con un hexágono alargado de la siguiente forma: 4 Framework unificado para desarrollo de interfaces J2EE Documento de Patrones para la descripción formal de interfaces de usuario Versión 0.1 2.1.3 SubFormulario Se encuentra dentro de otro formulario, muestra los detalles relacionados con la clase principal; Se representa con un cuadrado que tiene un dobles en la parte inferior. Representa un SubFormulario 2.1.4. Selección Este es una característica del formulario; representa una clase principal que puede ser escogida de las dos que tienen la relación. Habiendo hecho esto se manejará como un formulario. S Representa una Selección 2.1.5. Cuadros CRUD Estos cuadros de selección muestran para cada formulario las operaciones a realizar con sus diferentes atributos ( Crear, Leer, Actualizar, Borrar). Si el cuadro R (read) esta marcado, implica que se necesita una consulta previa para poder visualizar este formulario. En el caso de create no necesariamente involucra una consulta previa. 5 Framework unificado para desarrollo de interfaces J2EE Documento de Patrones para la descripción formal de interfaces de usuario Versión 0.1 2.1.6. Atributos Corresponden a los elementos de un clase, que se desean incluir en la interfaz; estos siempre estarán ubicados en la cabeceara ya sea de un formulario o un subformulario. En la consultas es necesario especificar la clase a la cual pertenece porque cada atributo que se consulte puede pertenecer a una clase diferente. 2.1.7. Criterios Corresponden a los elementos que se van a considerar a la hora de hacer una consulta en el sistema, es necesario que se especifique la clase asociada, ya que se puede dar el caso que cada uno de ellos tenga relación con una clase distinta. 2.1.8. Ver Detalle Este cuadro se utiliza en los formularios de búsqueda y determina si se podrá ver los detalles de cada uno de los registros consultados. X Si en un formulario de búsqueda no se encuentra marcado este cuadro, implica que los registro consultados no podrán ser vistos en detalle y por lo tanto no será posible actualizarlo ni borrarlo. 6 Framework unificado para desarrollo de interfaces J2EE Documento de Patrones para la descripción formal de interfaces de usuario Versión 0.1 2.2. Proceso 1. Partiendo del modelo entidad Relación, definir los siguientes formatos para cada uno de las entidades: • • Nombre De la Entidad Atributos: i. Tipo. ii. Obligatoriedad. iii. Longitud. iv. Otros. v. Llave Primaria. vi. Llave Foránea. Podemos definir para estos elementos una tabla de la siguiente manera: TABLA Atributo X1 X2 # Tipo String Int Obligatoriedad Longitud Si Si 255 10 Otros Llave Llave Primaria Foránea auto Tabla XX numérico PK X4 De tal manera se podrá conocer todas las características de las entidades trascendentales de una aplicación. 7 Framework unificado para desarrollo de interfaces J2EE Documento de Patrones para la descripción formal de interfaces de usuario Versión 0.1 3. Patrones basados en relaciones 3.1. RELACION UNO A MUCHOS Nombre: Uno a Muchos Solución: Realizar un diseño que incluya cada clase con sus atributos ha ser tenidos en cuenta en la interfaz, que determine una organización y que permita una pre-visualización formal de la misma. Problema que resuelve: ¿Qué elementos se deben escoger y como se deben organizar en la creación de una interfaz de usuario que representa una relación de uno a muchos en un modelo de objetos? Explicación: El CRUD de esta relación es enfocada principalmente en la entidad padre, es decir la que tiene en la cardinalidad el “uno”, sus detalles “muchos” son mapeados desde este punto sin necesidad de hacer un CRUD aparte para esta ultima entidad. El Modelo de objetos seria: 0..1 0..* Gráficamente se puede representar de la siguiente manera: 8 Framework unificado para desarrollo de interfaces J2EE Documento de Patrones para la descripción formal de interfaces de usuario Versión 0.1 Ejemplo: En el caso de prueba de la video tienda encontramos como ejemplo de uno a muchos, la siguiente relación: 0..1 0..* Un contrato tiene de cero a muchos autorizados, y un autorizado solo puede pertenecer a cero o muchos contratos. Esta relación es la típica representación de el patrón de uno a muchos. Su formalización utilizando el lenguaje seria: Tenemos contrato como clase padre, de ella solo se mostrara una instancia mientras que de personas se mostraran varias como una lista. Los atributos a ser tenidos en cuenta, son los que aparecen en cada uno de los encabezados, el resto de atributos de cada una de las clases no se muestran en la interface debido a que se considero que no son relevantes en este caso. 9 Framework unificado para desarrollo de interfaces J2EE Documento de Patrones para la descripción formal de interfaces de usuario Versión 0.1 3.2. RELACION MUCHOS A MUCHOS Nombre: Muchos a Muchos Solución: Realizar un diseño que incluya cada clase con sus atributos ha ser tenidos en cuenta en la interfaz, que determine una organización y que permita una pre-visualización formal de la misma. Problema que resuelve: ¿Qué elementos se deben escoger y como se deben organizar en la creación de una interfaz de usuario que representa una relación de muchos a muchos en un modelo de objetos? Explicación: En este caso el CRUD estaría enfocado en reducir la complejidad seleccionando una de las entidades que se están relacionando para que actué como si fuera padre, la idea es llegar a una relación uno a muchos donde el padre pueda cambiar generando nuevos hijos. El modelo de objetos seria: 0..* 0..* Gráficamente se puede representar de la siguiente manera: (Eligiendo a x como padre): S 10 Framework unificado para desarrollo de interfaces J2EE Documento de Patrones para la descripción formal de interfaces de usuario Versión 0.1 Ejemplo: En el caso de prueba de la video tienda encontramos como ejemplo de muchos a muchos, la siguiente relación: 0..* 0..* Una Película tiene de cero a muchos audios y un audio se puede incluir en cero o muchas películas. Expresando la relación anterior formalmente su representación seria: S Tenemos película como clase padre, de ella solo se mostrara una instancia que se escogió previamente, mientras que de constante se mostraran varias como una lista. Los atributos a ser tenidos en cuenta, son los que aparecen en cada uno de los encabezados, el resto de atributos de cada una de las clases no se muestran en la interface debido a que se considero que no son relevantes en este caso. 11 Framework unificado para desarrollo de interfaces J2EE Documento de Patrones para la descripción formal de interfaces de usuario Versión 0.1 3.3. RELACION UNO A UNO Nombre: Uno a Uno Solución: Realizar un diseño que incluya cada clase con sus atributos ha ser tenidos en cuenta en la interfaz, que determine una organización y que permita una pre-visualización formal de la misma. Problema que resuelve: ¿Qué elementos se deben escoger y como se deben organizar en la creación de una interfaz de usuario que representa una relación de uno a uno en un modelo de objetos? Explicación: En las relaciones uno a uno el CRUD formaría un formulario único, identificando cada instancia para que el usuario distinga la diferencia en loa campos que esta llenando. El modelo de objeto seria: 0..1 0..1 Gráficamente se puede representar de la siguiente manera: 12 Framework unificado para desarrollo de interfaces J2EE Documento de Patrones para la descripción formal de interfaces de usuario Versión 0.1 Ejemplo: En el caso de prueba de la video tienda encontramos como ejemplo de uno a uno, la siguiente relación: 0..1 0..1 Un contrato tiene solo un afiliado y un afiliado se puede incluir solo en un contrato. Expresando la relación anterior formalmente su representación seria: En este caso no es relevante cual es la clase padre debido a que todo queda en el mismo formulario, y los atributos de cada clase no se distinguen. Al unir las dos clases el formulario queda conformado como si se tratara de un solo formulario. 13 Framework unificado para desarrollo de interfaces J2EE Documento de Patrones para la descripción formal de interfaces de usuario Versión 0.1 3.4. BÚSQUEDA Nombre: Búsqueda Solución: Establecer de forma estandariza una forma de organizar las búsquedas en el sistema para que sean fáciles de implementar y eficientes en sus resultados. Para esto se escogerán previamente las clases y atributos ha ser tenidos en cuenta en la consulta, que relacionen criterios y resultados esperados. Problema que resuelve: ¿Cómo se deben diseñar las consultas para que incluyan los criterios y resultados apropiados? Explicación: Para cada búsqueda que se requiera en el sistema se deben especificar las clases involucradas y así mismo determinar sus criterios de búsqueda con los campos que se desean mostrar como resultados de esta. Gráficamente se puede representar de la siguiente manera: X 14 Framework unificado para desarrollo de interfaces J2EE Documento de Patrones para la descripción formal de interfaces de usuario Versión 0.1 Ejemplo: Para las consultas es diferente, estas pueden involucrar varias clases un ejemplo de esto se muestra a continuación: 0..1 0..* 0..1 0..* Una consulta que se desea hacer consiste en que a partir del numero de una factura se puedan ver los detalles de la misma y la cedula del afiliado con quien esta relacionada. Esta consulta involucra las clases contrato, facturas y detalleFactura. Su representación formal gráfica es la siguiente: X 15 Framework unificado para desarrollo de interfaces J2EE Documento de Patrones para la descripción formal de interfaces de usuario Versión 0.1 4. Asociaciones con Componentes Por cada elemento del lenguaje grafico se va a asociar con uno o varios componentes de los Frameworks escogidos (JSF, Tapestry); Para esto diseñamos la siguiente tabla: ELEMENTO Formulario Cabecera SubFormualrio Selección Cuadros CRUD Atributos Criterios Cuadro Deatalle JSF h:form h:outputLabel, h:inputText x:dataTable h:selectOneMenu h:form h:outputLabel, h:inputText h:outputLabel, h:inputText h:commandButton TAPESTRY Forms Labels, Text Fields Tablas Combo Box Forms Labels, Text Fields Labels, Text Fields DirectLink La anterior tabla no es una camisa de fuerza para el programador, solo es una posible guia de lo que se podria usar al traducir en terminos de componentes los elementos definidos en el lenguaje gráfico. 16 Framework unificado para desarrollo de interfaces J2EE Documento de Patrones para la descripción formal de interfaces de usuario Versión 0.1 5. Lenguaje traducido a XML A continuación se concreta el lenguaje grafico generado pasándolo a código XML, con el fin que sirva para la generación automática de clases a partir de él. XML(eXtensible Markup Language) permite personalizar las etiquetas que describen la presentación y el tipo de los elementos de datos, con el fin de generar un lenguaje dinámico que pueda ser definido por el cliente como el lo necesite. Al traducir el lenguaje grafico fue necesario utilizar XML, debido a que se necesitaba definir elementos que fueron creados únicamente para la generación del mismo a datos que pudieran ser manejados y con los que fuese posible generar código mas adelante. El lenguaje generado fue el siguiente: 5.1 Tags Los tags son ramificaciones de un texto ya sea XML, HTML, XHTML, etc; que sirven para la organización y esructuración del mismo con fin que los interpretadores que trabajan en base a estos puedan revisar la estructura y actuar conforme a ella. <?xml version="1.0" encoding="iso-8859-1" ?> :Tag requerido en todo archivo XML, se refiere a la versión que se esta usando para el documento que lo contiene y la codificación del mismo. <SCREEN> Tag que muestra el comienzo de un documento que representa una pagina, este tag es la raíz del documento, y todo debe ir incluido de el. <FORM> Tag que contiene las características generales de la forma, las cuales son: • • • NUMER: Es el numero único de la pagina a crear con el fin de llevar un control sobre ellas. NAME: Es el nombre de la pagina a crear para poder identificarla de las demás, este será el nombre del archivo que la representa gráficamente. TYPE: Es el tipo definido por los patrones que se especificaron en este documento anteriormente. 17 Framework unificado para desarrollo de interfaces J2EE Documento de Patrones para la descripción formal de interfaces de usuario Versión 0.1 <TOPIMAGE> Tag que dice las características del recuadro que se va a ubicar en la parte superior, las cuales son: • • • WIDTH: Indica el ancho del recuadro superior. HEIGHT: Indica el largo del recuadro superior. LOCATION: La ubicación de la imagen o logo que se quiera insertar en el recuadro superior. <MENU> Tag que contiene todas las características del menú, incluyendo nombres y ubicaciones de los destinos de los links. Aquí tenemos: • • WIDTH: Indica el ancho del recuadro inferior izquierdo. HEIGHT: Indica el largo del recuadro inferior izquierdo. <LINK> Tag que contiene los link y las direcciones de los mismos, se encuentra incluido en el tag “MENU”. • • • NAME: Indica el nombre de se desea aparezca en el link. REFERENCE: Indica la pagina a la cual se desea hacer redirección. SUBLINK: Indica el nombre de un link a cual hace referencia, es decir si el depende otro link como un sub-nodo de este (Útil para la construcción de un Tree u otro menú a partir de este). <CONTENT> Tag que contiene los elementos y características de el cuadro principal. En este tag encontramos: • • WIDTH: Indica el ancho del recuadro inferior derecho. HEIGHT: Indica el largo del recuadro inferior derecho. <HEADER> Tag que contiene los elementos y características de un encabezado (generado en el lenguaje grafico). Se encuentra incluido dentro del tag “CONTENT”. <ATRIBUTE> Tag que representa un atributo (generado en el lenguaje grafico). Se encuentra incluido dentro del tag “HEADER”. • • • NAME: Indica el nombre del atributo. CLASS: Indica la clase a la cual pertenece a la cual hace referencia. SEARCH: Indica si este atributo va a ser utilizado como criterio de búsqueda, en este caso ya no seria un atributo a mostrar si no un dato a recolectar para generar un resultado a partir de el. 18 Framework unificado para desarrollo de interfaces J2EE Documento de Patrones para la descripción formal de interfaces de usuario Versión 0.1 • • • • • • • • REPRESENTATION: Indica el componente que va representar. Esto se usará cuando se vaya a generar código dinámico. LINK: Indica la pagina a la cual se desea hacer redirección. TYPE: Indica el tipo de dato que va a tener este atributo. NULL: Indica si el valor que tome el atributo puede ser nulo o no. MIN: Indica el valor mínimo que puede tomar el atributo. MAX: Indica el valor máximo que puede tomar el atributo. TMIN: Indica el tamaño mínimo que puede tomar el atributo. TMAX: Indica el tamaño máximo que puede tomar el atributo. <TABLE> Tag que contiene los elementos y características de una tabla (detalle como se representa en el lenguaje grafico). Se encuentra incluido dentro del tag “CONTENT”. Contiene lo siguiente • SIZE: Indica el numero de columnas que va tener la tabla. <COLUMN> Tag que representa una columna de la tabla(Para mostrar los atributos de los detalles). Se encuentra incluido dentro del tag “TABLE”. • • • • • • • • • • NAME: Indica el nombre de la columna. CLASS: Indica la clase a la cual pertenece a la cual hace referencia. REPRESENTATION: Indica el componente que va representar. Esto se usará cuando se vaya a generar código automaticamente. LINK: Indica la pagina a la cual se desea hacer redirección. TYPE: Indica el tipo de dato que va a tener esta columna. NULL: Indica si el valor que tome la columna puede ser nulo o no. MIN: Indica el valor mínimo que puede tomar la columna. MAX: Indica el valor máximo que puede tomar la columna. TMIN: Indica el tamaño mínimo que puede tomar la columna. TMAX: Indica el tamaño máximo que puede tomar la columna. 19 Framework unificado para desarrollo de interfaces J2EE Documento de Patrones para la descripción formal de interfaces de usuario Versión 0.1 5.2 Estructura A continuación se muestra la estructura formal del archivo descriptor XML, para la genercion de interfaces gráficas. <?xml version="1.0" encoding="iso-8859-1" ?> <SCREEN> <FORM NUMER="NUMEROFORMATO" NAME="NOMBREFORMATO" TYPE="ONETOONE|MANYTOONE|MANYTOMANY|SEARCH" /> <TOPIMAGE WIDTH="ANCHO" HEIGHT="ALTO" LOCATION="UBICACIONIMAGEN" /> <MENU WIDTH="ANCHO" HEIGHT="ALTO"> <LINK NAME="NOMBRELINK" REFERENCE="DIRECCIONLINK|NONE" SUBLINK="NOMBRESUBLINK|NONE" /> </MENU> <CONTENT WIDTH="ANCHO" HEIGHT="ALTO"> <HEADER> <ATTRIBUTE NAME="NOMBREATRIBUTO" CLASS="NOMBRECLASE|NONE" SEARCH="YES|NO" REPRESENTATION="LABEL|BOTTON|IMAGE|LINK|COM BO|TEXT" LINK="DIRECCIONLINK|NONE" TYPE="STRING|INTEGER|STRING[]|DATE" NULL="YES|NO" MIN="VALOR|NONE" MAX="VALOR|NONE" TMIN="VALOR|NONE" TMAX="VALOR|NONE" /> </HEADER> <TABLE SIZE="TAMANOTABLA"> <COLUMN NAME="NOMBRECOLUMNA" CLASS="NOMBRECLASE|NONE" REPRESENTATION="LABEL|BOTTON|IMAGE|LINK|COM BO|TEXT" LINK="DIRECCIONLINK|NONE" TYPE="STRING|INTEGER|STRING[]|DATE" NULL="YES|NO" MIN="VALOR|NONE" MAX="VALOR|NONE" TMIN="VALOR|NONE" TMAX="VALOR|NONE" /> </TABLE> </CONTENT> </SCREEN> 20 Framework unificado para desarrollo de interfaces J2EE Documento de Patrones para la descripción formal de interfaces de usuario Versión 0.1 Esta estructura fue diseñada para generar las interfaces con una estructura predefinida. Esta estructura contiene tres recuadros cada uno con una funcionalidad diferente: 1. Recuadro Superior: Se usa para cargar una imagen aluciva al sistema o la empresa. En el documento XML, la etiqueta TOPIMAGE es la representante de este recuadro, por esta razon tiene un elemento que permite definir la ubicación de la imagen a insertar. 2. Recuadro Inferior Izquierdo: Este se usa para ubicar un menu cuya función es la navegabilidad entre las paginas. En el descriptor XML la etiqueta MENU es la encargada de espeficar las caracteristicas del mismo, que van desde sublinks(Como los nodos de un arbol), hasta direcciones de los mismos. 3. Recuadro Inferior Derecho: En este recuadro se mostraran todas las pantallas que tienen funcionalidad para el sistema, contienen atributos y tablas. En el lenguaje que se elaboro este recuadro es representado por el tag “CONTENT”, que puede tener muchos atributos(includo en <HEADER> en el tag <ATTRIBUTE>) con caracteristicas especiales que pueden servir como criterios de busqueda y tablas que muestran resultados (incluido en <TABLE> en el tag <COLUMN>). Ejemplo: 21 Framework unificado para desarrollo de interfaces J2EE Documento de Patrones para la descripción formal de interfaces de usuario Versión 0.1 <?xml version="1.0" encoding="iso-8859-1" ?> <SCREEN> <FORM NUMER="0" NAME="Principal" TYPE="ONETOONE" /> <TOPIMAGE WIDTH="100%" HEIGHT="20%" LOCATION="./imagines/titulo.gif" /> <MENU WIDTH="18%" HEIGHT="80%"> <LINK NAME="Alquileres" REFERENCE="PaginaAlquileres " SUBLINK="NONE" /> <LINK NAME="DevolverPeliculas" REFERENCE=" PaginaDevolverPeliculas " SUBLINK="NONE" /> <LINK NAME="Facturas" REFERENCE="PaginaFacturas " SUBLINK="NONE" /> <LINK NAME="Peliculas" REFERENCE="PaginaPeliculas " SUBLINK="NONE" /> <LINK NAME="Clientes" REFERENCE="PaginaClientes " SUBLINK="NONE" /> <LINK NAME="Constantes" REFERENCE="PaginaConstantes " SUBLINK="NONE" /> <LINK NAME="Salir" REFERENCE="PaginaInicio " SUBLINK="NONE" /> </MENU> <CONTENT WIDTH="82%" HEIGHT="80%"> <HEADER> <ATTRIBUTE NAME="label1" CLASS=" NONE" SEARCH="NO" REPRESENTATION="LABEL " LINK=" NONE" TYPE="STRING " NULL=" NO" MIN="NONE" MAX="NONE" TMIN=" NONE" TMAX=" NONE" /> </HEADER> <HEADER> <ATTRIBUTE NAME="label2" CLASS=" NONE" SEARCH="NO" REPRESENTATION="LABEL " LINK=" NONE" TYPE="STRING " NULL=" NO" MIN="NONE" MAX="NONE" TMIN=" NONE" TMAX=" NONE" /> </HEADER> <HEADER> <ATTRIBUTE NAME="label2" CLASS=" NONE" SEARCH="NO" REPRESENTATION="LABEL " LINK=" NONE" TYPE="STRING " NULL=" NO" MIN="NONE" MAX="NONE" TMIN=" NONE" TMAX=" NONE" /> </HEADER> 22 Framework unificado para desarrollo de interfaces J2EE Documento de Patrones para la descripción formal de interfaces de usuario Versión 0.1 <TABLE SIZE="3"> <COLUMN NAME="Estrenos" CLASS="NONE" REPRESENTATION="LABEL " LINK="NONE" TYPE="STRING " NULL="NO" MIN="NONE" MAX=" NONE" TMIN=" NONE" TMAX=" NONE" /> <COLUMN NAME="Pelicula1" CLASS="Pelicula" REPRESENTATION="LABEL " LINK="NONE" TYPE="STRING " NULL="NO" MIN="NONE" MAX=" NONE" TMIN=" NONE" TMAX=" NONE" /> <COLUMN NAME="Pelicula2" CLASS="Pelicula" REPRESENTATION="LABEL " LINK="NONE" TYPE="STRING " NULL="NO" MIN="NONE" MAX=" NONE" TMIN=" NONE" TMAX=" NONE" /> <COLUMN NAME="Promociones" CLASS="NONE" REPRESENTATION="LABEL " LINK="NONE" TYPE="STRING " NULL="NO" MIN="NONE" MAX=" NONE" TMIN=" NONE" TMAX=" NONE" /> <COLUMN NAME="Promocion1" CLASS="NONE" REPRESENTATION="LABEL " LINK="NONE" TYPE="STRING " NULL="NO" MIN="NONE" MAX=" NONE" TMIN=" NONE" TMAX=" NONE" /> <COLUMN NAME="Noticias" CLASS="NONE" REPRESENTATION="LABEL " LINK="NONE" TYPE="STRING " NULL="NO" MIN="NONE" MAX=" NONE" TMIN=" NONE" TMAX=" NONE" /> </TABLE> </CONTENT> </SCREEN> 23