Disfruta de millones de libros electrónicos, audiolibros, revistas y más

A solo $11.99/mes después de la prueba. Puedes cancelar cuando quieras.

UF2217 - Lenguaje XML

UF2217 - Lenguaje XML

Leer la vista previa

UF2217 - Lenguaje XML

Longitud:
576 páginas
4 horas
Publicado:
14 ene 2019
Formato:
Libro

Descripción

La finalidad de esta unidad formativa es enseñar a desarrollar componentes software con lenguajes específicos, para realizar la explotación de las informaciones en repositorios según las necesidades de la organización.

Para ello, en primer lugar se analizará la definición de documentos XML, la validación mediante DTD y los esquemas XML. También se estudiará el acceso a la información de documentos XML, la transformación de documentos XML y otros lenguajes a utilizar con documentos XML. Por último, se profundizará en las aplicaciones del lenguaje XML.

Tema 1. Definición de documentos XML.
1.1 Elementos.
1.2 Atributos.
1.3 Documentos bien formados.
1.4 Entidades.
1.5 Comentarios.
1.6 Inclusión de datos no XML.
1.7 Espacios de nombres.

Tema 2. Validación mediante DTD.
2.1 Declaraciones de elementos
2.2 Declaraciones de atributo
2.3 Declaraciones de identidad general.
2.4 Entidades generales externas analizadas.
2.5 Notaciones y entidades exteriores sin analizar.
2.6 Entidades de parámetro.
2.7 Inclusión condicional.

Tema 3. Esquemas XML.
3.1 Organización del documento.
3.2 Anotaciones.
3.3 Declaraciones de elementos.
3.4 Declaraciones de atributos.
3.5 Tipos complejos.
3.6 Elementos vacíos.
3.7 Uso de grupos.
3.8 Inclusión de declaraciones externas.
3.9 Modificación de declaraciones externas.
3.10 Importación de esquemas de otros espacios de nombre.
3.11 Tipos complejos derivados.

Tema 4. Acceso a la información de documentos XML.
4.1 XPath.
4.2 XLink.
4.3 XPointer.
4.4 XQL.

Tema 5. Transformación de documentos XML.
5.1 CSS.
5.2 XSL / XSL-FOXSLT.

Tema 6. Otros lenguajes a utilizar con documentos XML.
6.1 XML Base.
6.2 XInclude.
6.3 XML Information Set.

Tema 7. Aplicaciones del lenguaje XML.
7.1 XHTML.
7.2 REST.
7.3 XML-RPC.
7.4 SOAP.
Publicado:
14 ene 2019
Formato:
Libro

Sobre el autor


Relacionado con UF2217 - Lenguaje XML

Libros relacionados

Vista previa del libro

UF2217 - Lenguaje XML - Alfonso Sandoval Santos

1.1. Elementos

1.2. Atributos

1.3. Documentos bien formados

1.4. Codificación y juego de caracteres

1.5. Entidades

1.6. Comentarios

1.7. Inclusión de datos no XML

1.8. Espacios de nombres

1.1.Elementos

Imagen 1: Logo XML

XML (eXtensible Markup Language) es un metalenguaje que nos proporciona una manera sencilla de definición de lenguajes de etiquetas estructurados, en otras palabras, XML define un conjunto de reglas semánticas que nos permiten la organización de información de distintas maneras. Es un estándar definido por el W3C que ofrece muchas ventajas:

–Bien formado.

–Extensible: Permite ampliar el lenguaje mediante nuevas etiquetas y la definición de lenguajes nuevos.

–Existe facilidad para la conversión entre los distintos vocabularios definidos.

–Fácil de leer: Al estar codificado textualmente cualquier persona puede leerlo con cierta facilidad.

–Auto descriptivo: La estructura de la información de alguna manera está definida dentro del mismo documento.

–Intercambiable: Portable entre distintas arquitecturas.

–Para su lectura e interpretación es necesario un parser, y hay productos y versiones libres.

Desde su definición y debido a estas ventajas, el estándar ha sido ampliamente aceptado y adoptado para el almacenamiento e intercambio de información y junto con este uso se ha creado la necesidad de almacenar dicha información.

XML se puede ver como un subconjunto del lenguaje SGML mucho más simple. Podemos definir XML como un metalenguaje, lo que significa que XML se puede usar para definir otros lenguajes. Es el caso del lenguaje XHTML, ampliamente usado hoy en día en el desarrollo web, se ha construido usando como base XML.

Jerarquía de lenguajes

Un documento XML está formado solo por texto plano, esto es, texto en el cual todos los caracteres se representan visualmente. No hay caracteres no visibles exceptuando los de salto de línea, tabulador o espacio. Tampoco hay formatos visuales del tipo: negritas, cursivas, tamaños y tipos de letra. XML es sensible al contenido, no al formato.

Lo anterior nos conduce a decir que XML, se ha de escribir con un editor de texto plano como puede ser el proporcionado por Netbeans o Eclipse, Notepad++, o incluso el propio blog de notas del sistema operativo Windows.

Un documento XML está formado por elementos. Mediante estos elementos se almacena la información correspondiente.

Definamos en primer lugar el concepto de etiqueta.

Una etiqueta (tag) es un texto que va entre el símbolo menor que (<) y el símbolo mayor que (>). Por ejemplo, seria una etiqueta válida.

Existen dos tipos de etiquetas: de inicio (como ) y etiquetas de fin (como ).

La etiqueta de fin se forma de igual manera que la de inicio, pero anteponiendo al nombre da la etiqueta, el carácter / barra.

Etiqueta de inicio:

Etiqueta de fin:

Un elemento se compone de una etiqueta de inicio un contenido y una etiqueta de fin. En medio de las etiquetas de inicio y fin del elemento se representará el contenido que se desea almacenar.

Ejemplos

Juan Pérez Gómez

En el elemento anterior, indicamos el nombre de la persona entre la etiqueta de inicio y la de fin

23/12/1994

En el elemento anterior, indicamos la fecha de nacimiento de la persona entre la etiqueta de inicio y la de fin

La etiqueta de fin o de cierre, se ha de nombrar de la misma forma que la de inicio, en caso contrario el documento no estará bien formado y por lo tanto el parser o analizador (aplicación que lee el documento XML), no se podrá acceder a su contenido.

El elemento 23/12/1994, es erróneo puesto que las etiquetas de inicio y de fin no están nombradas de la misma forma (fechadenacimiento). Este es un error muy común que conviene tener en cuenta para evitar futuros errores.

Recuerda

Hay dos tipos de etiquetas: las de apertura <…..> y las de cierre . El texto que define el nombre de la etiqueta de inicio del elemento debe ser el mismo que defina la etiqueta de cierre.

Respecto a la sintaxis de los nombres de los elementos, debemos tener en cuenta ciertas reglas:

–Deben empezar por una letra, por el carácter _ (guión bajo) o por el carácter : (dos puntos).

–No pueden comenzar con la palabra xml en cualquier combinación posible de mayúsculas y minúsculas.

–Sólo podrán contener letras, números y los caracteres _ (guión bajo), . (punto), _ (guión bajo), : (dos puntos).

–Son case sensitive (sensible a las mayúsculas/minúsculas). Esto quiere decir que un nombre escrito en mayúsculas y el mismo escrito en minúsculas, se analizaran como dos nombres distintos

–Se recomienda no usar el carácter ñ.

Importante

Tenga en cuenta que el nombre de una etiqueta nunca podrá comenzar por el carácter espacio en blanco, sin embargo sí podrá terminar por él, aunque se pasará por alto.

Las siguientes etiquetas son válidas y el analizador las tomará como idénticas y libres del carácter espacio: y

Ejemplo

Los siguientes elementos no son correctos:

Juan Pérez Gómez

Juan Pérez Gómez

Juan Pérez Gómez

Juan Pérez Gómez

Juan Pérez Gómez

< nombre> Juan Pérez Gómez

Juan Pérez Gómez

Sin embargo, son correctos los siguientes:

Juan Pérez Gómez

<_nombre> Juan Pérez Gómez

<:nombre> Juan Pérez Gómez

Juan Pérez Gómez

Juan Pérez Gómez

Juan Pérez Gómez

También hemos de tener en cuenta que hay algunos caracteres (>, <, comilla simple, comillas dobles) que no podemos utilizarlos en el contenido de un elemento. En su lugar, hemos de utilizar las siguientes entidades predefinidas:

Entidades predefinidas

El elemento siguiente no es correcto al incluir en el contenido el carácter >

inicio > programas > accesorios

La solución pasa por incluir las Entidades Predefinidas de la siguiente forma:

inicio > programas > accesorios

Sabías que

En otros lenguajes de programación como PHP o JavaScript, las entidades predefinidas se denominan Secuencias de Escape.

Algunos elementos pueden no tener contenido. Se les denomina elementos vacíos:

Este elemento está correctamente definido, pero su contenido es vacío.

También se puede representar por una etiqueta de auto cierre, que tiene la forma <.../>; por ejemplo:

El contenido de un elemento, puede a su vez albergar otros elementos:

Ejemplo

Juan Fernando

García García

Masculino

50

Hay que tener en cuenta una cuestión de vital importancia. Si la etiqueta de inicio de un elemento está en el contenido de otro elemento, su correspondiente etiqueta de final debe estar en el contenido de este mismo elemento, esto es, los delimitadores de los elementos deben estar estrictamente anidados, y un anidamiento inapropiado es un error. Por ejemplo:

casa

Es un error, ya que el cierre del elemento y debería terminar antes que el elemento x:

casa

Cuando un elemento alberga en su interior otro elemento, se establece una jerarquía arbórea con la siguiente terminología:

Este elemento raíz es el padre del elemento «padre».

Este elemento padre es un hijo del elemento «raíz» y padre del elemento «hijo».

Este elemento es un hijo del elemento «padre».

Ejemplo:

Juan Fernando

23

03

1965

Siguiendo la terminología anterior:

: es el elemento raíz de y de .

: es un elemento hijo de .

: es un elemento hijo de y padre de , y

: es un elemento hijo de .

: es un elemento hijo de .

: es un elemento hijo de .

1.2.Atributos

Definición

Se llama atributo a la forma en que los elementos incorporan información relacionada acerca de sí mismos, describiendo sus propiedades, y acabando de dar significado a los nodos que constituyen el árbol del documento. Por tanto un elemento, además de su identificador, puede tener un conjunto de atributos, cada uno con su nombre y valor respectivo.

Un atributo es un par nombre-valor que se encuentra dentro de la etiqueta de inicio de un elemento e indican las propiedades que pueden llevar asociadas.

La sintaxis para representar los atributos consiste en especificar el nombre del atributo dentro de la etiqueta de inicio, a continuación un símbolo «=» y finalmente el valor del atributo delimitado por comillas dobles o por comillas simples:

Valor

Valor

La sintaxis del nombre de los atributos siguen las mismas reglas que los nombres de los elementos

Siguiendo con el ejemplo anterior, el sexo del alumno anteriormente se había representado usando un elemento mientras que en el siguiente ejemplo se utiliza un atributo para incluir esta información. También se ha añadido el atributo «fechaNacimiento» para el elemento alumno.

Ejemplo:

Masculino fechanacimiento=23/03/1965>

Juan Fernando

García García

50

Se pueden usar tanto atributos como nuevos elementos para representar información. Sin embargo, el uso de un número excesivo de atributos puede provocar que el documento XML sea menos legible, más difícil de mantener y difícilmente extensible. Además hay que tener en cuenta que los atributos no pueden contener información en forma de árbol, esto es, no pueden contener otros elementos o atributos tal y como sucede con los elementos.

Este problema de decidir entre un elemento o un atributo es habitual en Informática (diferenciación entidad/atributo en el modelo Entidad/Relación, diferenciación clase/atributo en el ámbito del análisis y diseño orientado a objetos, etc.) y en XML, aunque no haya reglas, se puede recomendar no usar atributos en exceso y dejarlos casi exclusivamente para representación de metadatos.

Siguiendo esta recomendación, en el ejemplo tanto el atributo «sexo» como el atributo «fechaNacimiento» se pueden convertir en elementos. Además en este ejemplo se ha añadido un identificador del alumno como atributo:

Ejemplo:

5421>

Juan Fernando

García García

Masculino

50

23

03

1965

1.3.Documentos bien formados

Si un documento escrito en XML no está bien formado, no se considera un documento XML, por lo que el analizador al delectarlo, procede a notificarlo e interrumpe su trabajo.

Para que podamos decir que un documento está bien formado, este debe cumplir las siguientes normas:

Un documento XML debe contener un único elemento raíz.

Sólo puede haber un par de etiquetas que diferencien el inicio y el final del documento, como en HTML, donde se utiliza y .

Etiquetas cerradas

Todos los elementos tienen que tener una etiqueta de cierre. La pareja es correcta.

Los elementos pueden tener entre las dos etiquetas cualquier tipo de contenido, como Manual imprescindible de PHP .

Etiquetas vacías

En HTML se permiten elementos sin contenido. En XML también, pero la etiqueta debe ser de la siguiente forma:

Los espacios en blanco

Los nombre de las etiquetas NO deben comenzar por el carácter espacio en blanco.

La Cabecera

Secuencias de escape

Los caracteres &, <, >, las comillas simples y las comillas dobles están prohibidas como contenido y deben utilizarse símbolos de escape para utilizarlas.

Estructura jerárquica de elementos

Los documentos XML deben seguir una estructura estrictamente jerárquica con lo que respecta a las etiquetas que delimitan sus elementos. Una etiqueta debe estar correctamente «incluida» en otra.

Además, los elementos con contenido, deben estar correctamente «cerrados».

La estructura se permite, pero no la siguiente .

Comentarios

A veces es conveniente insertar comentarios en el documento XML, que sean ignorados por el procesado de la información y las reproducciones del documento. Los comentarios tienen este formato:

Los comentarios no van dentro de la definición de una etiqueta

Aparecen sólo caracteres aceptados por la codificación del documento

Esta debe estar definida en el atribulo encoding del encabezado.

Los elementos son case-sensitive

XML es sensible al tipo de letra utilizado, es decir, trata las mayúsculas y minúsculas como caracteres diferentes. La etiqueta de inicio y fin de un elemento deben concordar en mayúsculas y minúsculas.

Si un elemento de XML está definido como «ELEMENTO», no podemos usar «elemento», ni «Elemento», ni «eleMENto» para referirnos a él.

Nombrando cosas

No se pueden crear nombres que empiecen con la cadena «xml», «xMI», «XML o cualquier otra variante. Las letras y guiones se pueden usar en cualquier parte del nombre. También se pueden incluir dígitos, guiones y caracteres de punto, pero no se puede empezar por ninguno de ellos. El resto de caracteres, como algunos símbolos, y espacios en blanco, no se pueden usar.

Valores de atributos

Los valores de atributos en XML siempre deben estar encerradas en comillas simples ( ‹ ) o dobles ( « ).

En el siguiente ejemplo, la primera línea sería incorrecta en XML, no así la segunda:

Un elemento no tiene dos atributos con el mismo nombre.

Un elemento puede tener varios atributos, pero cada uno con un nombre distinto.

Ejemplo:

Veamos un ejemplo de documento bien formado en el que aparece el marcado XML cuyos elementos estructuran el documento de forma que el elemento raíz estado contiene los elementos nombre, presidente y provincias.

España

Juan Andrés

Rodríguez Luque

1>Valencia

2 >Baleares

Recuerda

Si un documento no está bien formado, el analizador no podrá acceder a la información contenida en el.

Escribir un documento XML bien formado, no es suficiente para crear una aplicación por sencilla que sea, ya que de alguna forma se tiene que limitar o controlar en mayor o menor medida el tipo de datos a incorporar.

Si tuviéramos una aplicación para manejar información de las facturas de una empresa en la que tuviésemos el siguiente documento XML:

5000

Vicente Sanchez

María del Carmen Pérez

Juan Esteve

edad media

Sería inútil, a nivel de la información que contiene. El documento está bien formado pero presenta evidentes errores de sentido se la información, ya que una factura debe pertenecer a un único cliente y que una fecha debe especificarse en el formato del tipo día/mes/año.

Por lo tanto, hay que ir más allá de que el documento este bien formado y validar la estructura usada y la información que contiene.

Esta cuestión es importante ya que la finalidad del marcado consiste tanto en describir la estructura lógica como la estructura física del documento, y por ello, es obligado que XML proporcione un mecanismo para poder especificar ambas, de forma que se exprese por un lado las restricciones sobre su estructura lógica y por otro la plena identificación de las unidades de almacenamiento necesarias (la fecha no puede ser texto, el importe de una factura ha de ser necesariamente numérico, etc.).

En XML se recurre a ficheros de definición o esquemas que especifican la distribución de datos y los contenidos que están permitidos en un documento. Concretamente, un esquema es una forma de especificar restricciones sintácticas al marcado al objeto de definir su estructura.

La necesidad de contar con un mecanismo como este es evidente, ya que si se considera el elemento importe:

5000

Además de poder validar que tiene un contenido, es necesario asegurarse que este contenido es numérico. Por ello sin medidas apropiadas, la expresión:

hola

Se consideraría aceptable y las aplicaciones que usarán un documento con este marcado no tendrían otro remedio que comprobar que el contenido de importe es numérico, y tomar la acción apropiada si no lo fuera, con toda la laboriosidad que ello supondría.

Por ello, en el esquema que se use en XML hay que expresar de alguna forma que el dato del elemento importe puede ser descrito como numérico, con lo que 5000 quedaría validado, mientras que con hola fallaría. En XML si un documento está de acuerdo con un esquema se dice que es válido respecto a él, y en caso contrario se declara como no válido.

Los esquemas se verán más adelante.

Importante

En XML, hay que distinguir entre documento válido y documento bien formado, en este último no existen limitaciones sobre el número o tipo de contenidos, mientras que en un documento válido, además de estar bien formado se deben respetar las restricciones establecidas por la definición externa de un esquema.

Ejemplo

Para terminar con los documentos bien formados, vamos a mostrar un documento XML que almacene información de tres equipos de fútbol (nombre, ciudad y entrenador) con dos jugadores (nombre, posición y nacionalidad) cada uno. La posición (portero, defensa, medio, delantero) la vamos a representar mediante un atributo del jugador.

Levante

Valencia

Pedro López

Javier Jiménez

venezolano

Luis Suarez

alemán

Real Sociedad

San Sebastián

Juan González

peruano

Miguel González

mexicano

Granada C.G.

Granada

Juan Muros

español

Juan Lirola

español

Jesús ortega

chileno

1.4.Codificación y juego de caracteres

Hay un elemento especial que hay que incluir como el primero dentro del documento, el elemento de declaración de XML. Todos los documentos en XML deben declarar que son documentos XML de la siguiente forma:

Como no es una etiqueta XML que contenga datos, no necesita una etiqueta de cierre, es tal cual se muestra.

Esta declaración tiene tres atributos optativos: versión, encoding y standalone.

Version

Proporciona la identificación de la versión de XML a la cual se ajusta el documento. Para ello, se agrega el atributo versión:

1.0 ?>

Aunque en estos momentos ya ha aparecido la versión 1.1, el uso de 1.0 es muy general, y a pesar de que esta declaración sea opcional, debe usarse ya que en un futuro, por defecto puede asumirse que un documento es de la última versión, con lo que surgirían problemas y errores evitables con la declaración de versión.

encoding

Además, en la declaración XML, especificamos la codificación del documento, esto es muy importante para la interpretación de los caracteres, especialmente si se trata una lengua con características especiales como sería el caso del japonés.

La codificación puede ser, por ejemplo, US-ASCII (7 bits) o UTF-8 (código Unicode del que el ASCII es un subconjunto), UCS-2, EUC-JP, Shift_JIS, Big5, ISO-8859-1 hasta ISO-8859-7. En general, y para uso con lenguajes europeos, incluyendo el juego de caracteres especiales del castellano, usamos UTF-8 o ISO-8859-1:

1.0 encoding=UTF-8?>

Este elemento indica al analizador que recibe un archivo de datos en XML, que se está escribiendo en XML y que debe corresponder el archivo a la especificación XML de la versión 1.0. Además indica que el conjunto de caracteres utilizado es UTF-8.

standalone

Por último, se puede incluir una declaración de documento autónomo (standalone), que indica si se necesita un documento externo (DTD o esquena XML) para definir la estructura del documento. Puede tener los valores yes o no. En caso de no indicarse el atributo standalone, se entenderá como si se hubiese establecido a no, que es su valor por defecto.

1.0 encoding=ISO-8859-1 standalone=yes?>

Este elemento indica al analizador que recibe un archivo de datos en XML, que se está escribiendo en XML y que debe corresponder el archivo a la especificación XML de la versión 1.0. Además indica que el conjunto de caracteres utilizado es ISO-8859-1. Por otro lado se indica que el documento debe ser validado por una DTD en un documento externo.

El uso de Unicode es un requisito impuesto a XML para la codificación de los caracteres de sus textos. Este sistema de codificación nació con el objetivo de poder procesar la totalidad de los caracteres de los lenguajes actualmente existentes en el mundo. Al poner esta exigencia XML aseguraba la universalidad buscada para la Web.

Unicode define la codificación de más de 90.000 caracteres individuales, asignando a cada uno un número (por ejemplo: 64.812) de forma que todo dato, representado por los miembros de un determinado conjunto de caracteres, tiene su soporte en bytes.

Para manejar eficientemente toda esta cantidad de caracteres, Unicode combina diferentes codificaciones, de forma que un mismo carácter puede usarse con diferentes secuencias y/o número de bytes, y asimismo usar diferente número de bytes para caracteres distintos.

El conjunto ISO-8859-7 incluye letras griegas, mientras que el conjunto ISO-8859-1 no lo hace. Para solucionar esto, Unicode, trabaja simplemente cambiando, según las necesidades, la forma como cada carácter se codifica en bytes.

Los analizadores XML incorporan la doble capacidad de, por un lado, convertir unos caracteres en otros antes de presentarlos a la aplicación, y por otro, saber cómo tratar otros conjuntos de caracteres con codificaciones basadas en los diferentes subconjuntos de Unicode. De esa manera, XML realmente no deja nunca cambiar el conjunto de caracteres, ya que siempre es Unicode, y sólo lo ajusta a cada uso concreto. El que la universalidad no se consiga en la medida que sería deseable no es achacable a XML sino a la forma de trabajar de muchos autores de documentos, que se han acostumbrado, por comodidad, a trabajar con determinados subconjuntos de códigos.

En el siguiente esquema podemos ver algunos caracteres especiales con su codificación Unicode.

Has llegado al final de esta vista previa. ¡ para leer más!
Página 1 de 1

Reseñas

Lo que piensa la gente sobre UF2217 - Lenguaje XML

0
0 valoraciones / 0 Reseñas
¿Qué te pareció?
Calificación: 0 de 5 estrellas

Reseñas de lectores