Web Application Development

8 de agosto de 2012 XML Introducción: Las paginas que solo usan Lenguaje de Marcado de Hipertexto (HTML), se les dice que son programas script (conjunto de instrucciones) y se asocia con etiquetas. <HTML> </HTML> Sintaxis:   Todas las etiquetas poseen su etiqueta de cierre (con diagonal y mismo nombre). Todas con minúsculas.

Plantilla básica:

No se utilizan como nombres de etiquetas: diéresis, acentos, signos especiales, espacios, dos puntos, no inician con números.

UTF.- Unicode Text Format

UTF-8 28 = 256 Caracteres diferentes Carácter < > & “ ‘ Entidad &lt; &gt; &amp; &quot; &apos;

Link para consultar toda la tabla: www.alis.isoc.org/codeage/iso8859/jeusxiso.es.htm Ejemplo:

Parsers.- Verificadores. Son programas que verifican si el código es válido antes de compilarlo DTD.- Definición de Tipo de Documento. Pueden ser externos e internos. Un documento XML sin DTD está solamente bien formado, pero si tiene DTD y se ha escrito correctamente entonces también es válido.

Parsers:     Xmlint.exe Iexmltls.exe Xcerces Xml4Java

10 agosto de 2012 DTD Una DTD es una definición de reglas para etiquetar con sus nombres, orden, jerarquía, atributos y valores, opcionales y obligatorios. Importante: Un documento sin DTD solamente está bien formado, pero si tiene DTD y está escrito correctamente, entonces es válido. Por ejemplo: Una DTD externa: lista.dtd

15-ago-12 Acrónimos     DOM = Document Object Model JAX = Java API for XML SAX = Simple API for XML Xerces = DOM y JAX for XML

MODIFICACIÓN DE LAS ETIQUETAS DEL DTD CON ATRIBUTOS. Sintaxis:

donde el patrón tipo es (valor1|valor2|…|valorN) y la opción #OPCION es un comodín que puede ser #REQUIRED o #IMPLIED. Por ejemplo con #REQUIRED:

Utilizar el DTD con el XML siguiente:

17-ago-12 Con CDATA. Permiten espacios y caracteres especiales. Por ejemplo:

Su DTD es

Ejercicio: Validar y comentar errores si se altera un atributo de la etiqueta <imagen…>   Con NMTOKEN se excluyen espacios y caracteres especiales y solo se permiten letras, cifras, punto “.”, dos puntos “:” y guiones _-. Con IMPLIED se declara un atributo opcional. Por ejemplo, en el código anterior cambiar la etiqueta <!ATTLIST …> por la siguiente:

Ejercicio: Validar el cambio indicado de <!ATTLIST …> y comentar si se agrega lzw=”sin”.  Para predefinir valores, en el ejemplo anterior , cambiar ahora:

Ejemplo: Borrar el atributo lzw en el XML y validad. Utilizar el navegador IExplorer para observar lo que sucede si se le abre con el. Posteriormente, cambiar y probar con “no”.

Preestablecer un valor con #FIXED:

Cambiar la opción (yes|no) por:

La DTD completa queda:

Entidades y Comodines.
Son similares a las variables, se declaran una vez y su contenido puede cambiar. Por ejemplo:

Su DTD es:

Si en lugar de ESCOM se deseara escribir &nombre; y luego se validara se mostraría un mensaje similar a: “referencia la entidad no definida ‘nombre’”. Pero si se define la DTD con la sintaxis:

Para poder cambiarla a:

Ejercicio: Realizar los cambios en el xml y dtd para validar y verificar el nuevo texto. Lo anterior se conoce como entidad interna.

Entidades externas:
Para vincular entidades externas de archivos XML o textos externos se incluye la ruta:

Ejercicio: No modificar el XML anterior y almacenar el nombre en un archivo nombre.txt y solamente modificar el DTD.

Validar el XML posteriormente cambiar la etiqueta <!ENTITY…> por <!ELEMENT …> o <!ATTLIST…> y comentar los errores

Espacios e islas de datos.
Espacios de nombres: Si se tuvieran dos archivos con nombres de etiquetas iguales habría confusión y una solución sería, por ejemplo:

La declaración del espacio de nombres:

Inserción de HTML en XML.
Sintaxis de la inclusión de la etiqueta (usualmente en la raíz), por ejemplo:

Para visualizarla en un navegador, por ejemplo en IE, se puede agregar un archivo css, entre el prólogo y la raíz, asi:

Islas de datos en html Inversamente, se puede incluir XML en HTML. Una isla inicia con <xml> y termina con </xml> e incluye la elección de un identificador, por ejemplo id. Por ejemplo:

24-ago-12 XHTML. Además de las reglas de XML, los scripts y CSS se envuelven en SGML, por ejemplo:

Declaración del tipo de documento 1. Estricta.- Sin texto suelto o encerrado en párrafos o entre etiquetas <div>

2. Transicional o moderada.- Solamente se sustituye en la etiqueta anterior “Strict” y “strict” por “Transitional” y transitional, respectivamente. Los navegadores pueden no hacer caso de una DTD e internamente utilizar la estricta. Si no se incluye el DOCTYPE, el navegador se coloca en “quirks modo”, tolerará errores y mostrará lo posible en el navegador. 3. Frameset. Solamente se cambia a “Frameset” y “frameset” como en el caso anterior.

Para la validación se puede descargar desde www.chami.com/html-kit, que incluye a TIDY del W3C, Por ejemplo:

Formato CSS para XML: Se crea un archivo CSS con texto plano por ejemplo hola.css y el código con un formato como el siguiente:

donde documento es el nombre de la etiqueta y “Font-family” selecciona la fuente “Arial” - “sansserif”. Por ejemplo para el siguiente hola.xml:

Ejercicio.- Probar el documento con y sin la línea 2. La raíz con la fuente es la etiqueta con la más alta jerarquía y los elementos dentro de la raíz heredan el formato, pero pueden individualizarse, agregando:

Se puede asignar tipo, tamaño, color, borde o marcos. Se puede asignar lo misma instrucción a dos etiquetas, o más, separadas por comas:

29-ago-12 Aplicación con CSS.

Ahora el css:

XML y XSLT: XSL: eXtensible Stylesheet Language. XSLT: eXtensible Stylesheet Language Transform. Donde, XSLT es una su especificación de XSL y es un conjunto de reglas para transformar XML en HTML, en WML, en SVG, en RTF o en PDF u otros.

Por ejemplo: Abrir el archivo hola.xml e insertar la siguiente línea:

Ahora el hola.xsl:

Donde:   Línea 2 = elemento raíz de este archivo. Línea 3 = Sintaxis de X-path que coloca allí el foco: <xsl:value-of select="documento/pregunta"/> 1. Línea 6 = Pregunta es un título de primer orden h1. Otro ejemplo:

Observar que XSLT permite elementos HTML ilimitados. XSLT Para el siguiente ejercicio considerar los archivos lista.xml y lista.dtd dados con anterioridad. En el lista.xml, insertar debajo del enlace a la DTD un enlace al XSL. Ahora el XSL:

Donde: “lista/libro” son los elementos de la ruta XPath afectados por el for. El orden predeterminado es ascendente. Para el desendente: <xsl:sort select=”titulo” order=”descending”/> Enseguida se incluyen titulo, autor, editorial,

descripción y precion son value-of. El punto ”.” significa un comodin de número ilimitado de elementos X-Path. El css es:

31-ago-12 XML Schema: Retomando el documento inicial lista.xml, se modifica la etiqueta del elemento raíz para referenciar a lista.xsd. El prefijo xsi significa xml schema instance. Notar qe el archivo XSD es en realidad un archivo XML:

Donde la segunda línea es la línea de referencia.

Los tipos de etiqueta xsd:element pueden ser: Tipo xsd:string xsd:decimal xsd:integer xsd:date xsd:boolean Característica Secuencia ilimitada de caracteres XML Entero o decimal Enteros positivos o negativos Fechas Verdadero o Falso

Una opción de validación es descargando Schematron desde www.Topologi.com. El archivo que se descarga es: Tsv usw.zip, el cual se descomprime y muestra un archivo EXE o MSI para instalarlo. Una vez instalado se inicia con: Inicio>programas>Tipologi>Schiematron Validator. Se muestra una ventana y en la parte izquierda se indica el XML y en la derecha el esquema. Hipervínculos con XLink:

Xlink:type -> Define el tipo de hipervínculo Xlink:href -> Posee la ruta a la página por acceder. Xlink:title -> incluye el titulo de la página. Xlink:show -> con new el resultado del vínculo se abre en una nueva ventana y con replace se remplaza el contenido de la página que se esté mostrando.

Tarea: Investigar como se ejecuta Xlink en una aplicación web.

SERVLETS.
-javax.servlet. -Servlet -HTTPServlet TAREA: 1. Diseñar su propio manual de instalación y configuración de Apache, Tomcat, Glassfish y IIS para aplicaciones con PHP y Java. Incluir documentación e imágenes detalladas. 2. doGet, doPost, modificarServlets 3. NOTA IMPORTANTE: Documentar para cada ejercicio de carpetas y archivos que realiza el IDE 4. Investigar cómo se crea y se ejecuta los archivos jar y war.

Método GET: Envia la información codificada adherida a la solicitud de la página. La sintaxis es: http://www.prueba.com/hola?var1=valor1&var2=valor2 Nunca se debe utilizar GET para el envío de contraseñas o información importante al servidor. La longitud de un GET es de máximo 1024 caracteres. La información es pasada con QUERY_STRING y es accesible también con la variable de ambiente QUIERY_STRING para que se maneje con el método doGet(). Método POST: Es más confiable que GET, pero envía la información en un mensaje separado. Se atiende con el método doPost(). Para la lectura de los parámetros se utilizan:    getParameter() .- lee un parámetro del formulario. getParameterValues() .- Si el parámetro aparece más de una vez regresa varios valores, por ejemplo de un checkbox. x _ x getParameterNames() .-Si se desea una lista completa detodos los parámetros en la solicitud actual. Por ejemplo:

Llamar al sevlet, por ejemplo, con: http://localhost:8080/HolaIPN?nombre=Benito&apellido=Juarez Observar que el archivo web.xml tenga la siguiente apariencia:

Si se desea, se puede copiar el archvio class en <Tomcat-installation-directory>/webapps/ROOT/WEB-INF/classes Y también el xml en: <Tomcat-installation-directory>/webapps/ROOT/WEB-INF/

- Para varios valores:

Tarea: Cambiar por el uso con POST.