PDF de programación - Validación de Documentos XML

Imágen de pdf Validación de Documentos XML

Validación de Documentos XMLgráfica de visualizaciones

Actualizado el 16 de Abril del 2017 (Publicado el 14 de Enero del 2017)
999 visualizaciones desde el 14 de Enero del 2017
1,0 MB
44 paginas
Creado hace 11a (22/10/2012)
(3)





índice

(2.2.1) introducción
(2.2.2) posibilidades de uso de DTD
(2.2.3) definiciones en un DTD
(2.2.4) elementos
(2.2.5) declaración de atributos
(2.2.6) entidades

(2.1) documentos XML bien formados y validación ______________________ 7
(2.2) validación por DTD _____________________________________________ 8
8
8
10
10
14
19
(2.3) Validación por XML Schema ____________________________________ 22
22
22
27
27
37
37
42
43

(2.3.1) XML Schema y DTD
(2.3.2) estructura de los esquemas
(2.3.3) sintaxis de la definición de un elemento
(2.3.4) tipos simples de datos
(2.3.5) atributos
(2.3.6) tipos compuestos
(2.3.7) grupos de elementos
(2.3.8) grupos de atributos



(1)

(5)



(2) validación de
documentos XML

(2.1) documentos XML bien formados y

validación

En el tema anterior se dispusieron las bases del funcionamiento de XML. En ellas se
indicó lo que se consideraba un documento XML bien formado. Los documentos bien
formados, aseguran que las reglas de XML se cumplen y que no hay ninguna incoherencia
al usar el lenguaje. Sin embargo, no es suficiente porque podríamos definir documentos
que utilizaran los elementos que quisiéramos sin restricción. En la realidad los
elementos y los atributos que se pueden utilizar y la manera de disponerles en el
documento es fundamental para mantener una mayor homogeneidad.

Una empresa puede decidir que los documentos internos para describir el software
que utiliza la empresa deben poseer como elemento raíz un elemento llamado software
(y no otro) y que este elemento obligatoriamente debe contener los elementos nombre,
fabricante y precio. Esas reglas no se refieren a que el documento esté bien formado;
son reglas más complejas y que permitirán al documento que sea válido.

Para ello se crea un documento que contendrá las reglas que deben de cumplir los
XML que se basen en él. De modo que un documento deberá indicar qué plantilla de
reglas utiliza y deberá cumplirlas a rajatabla para considerarse válido.

Así explicado parece que la validación supone un problema, pero en realidad es una
ventaja; con la validación tenemos la seguridad de que los documentos cumplen unas
reglas más concretas y de esa forma es fácil establecer un protocolo en las empresas
para sus documentos. De hecho cuando un documento XML cumple estrictamente las
reglas generales de creación XML se dice que está bien formado; cuando además sigue
las reglas de un documento de validación entonces se dice que es válido.

Las técnicas más populares para validar documentos son:

DTD, Document Type Definition. Validación por documentos de definición de
tipos. Se utilizaba en el lenguaje SGML y de ahí debe su popularidad. Es la más
utilizada, pero tiene numerosas voces críticas porque su sintaxis no es XML.

XML Schema o esquemas XML. Mucho más coherente con el lenguaje XML es la

aconsejada actualmente, pero todavía no tiene una implantación al 100%

Relax NG. Es una notación sencilla y fácil de aprender que está haciéndose muy
popular. No tiene tantas posibilidades con el XML Schema, pero tiene una
sintaxis muy sencilla. Además admite añadir instrucciones de tipo XML Schema
por lo que se convierte en una de las formas de validación más completas.

Schematron. Permite establecer reglas que facilitan establecer las relaciones
que han de cumplir los datos de un documento XML. No es tan bueno para

(7)

lenguajes de marcas y sistemas de gestión de información
(unidad 2) Validación XML



establecer el resto de reglas de validación (orden de elementos, tipos de
datos,…)

(2.2) validación por DTD

(2.2.1) introducción

Es la técnica más veterana y, en realidad procede de SGML el lenguaje base de XML. Es
indudablemente la más utilizada, pero también la menos coherente con las reglas XML.
Su éxito se debe a que ya era una forma de validación reconocida antes de la aparición
de XML, por lo que muchísimo productos software la reconocen desde hace mucho y la
compatibilidad con ellos ha determinado su éxito.

(2.2.2) posibilidades de uso de DTD

en el propio documento

Se puede definir la estructura que debe cumplir un documento XML mediante código
DTD insertado en el propio documento. La desventaja evidente, es que esta definición
sólo vale para dicho documento, por lo que realmente no define tipos de documentos
XML (no es una plantilla en definitiva de definición de documentos internos). Por ello es
la forma menos habitual de utilizar DTD.

Su única (pero muy discutible) ventaja es que la validación está dentro del propio

documento, por lo que siempre viajan juntas la validación y el contenido del mismo.

Un documento XML que defina internamente su DTD, simplemente escribe
instrucciones DTD dentro del propio documento dentro de una etiqueta DOCTYPE. La
sintaxis es:

<!DOCTYPE raíz [....códigoDTD...]>

Dentro de los símbolos [ y ] se especifican las instrucciones DTD. Ejemplo:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE persona [
<!ELEMENT persona (nombre)>
<!ELEMENT nombre (#PCDATA)>
]>



<persona>
<nombre>Antonio</nombre>
</persona>

(8)

1er curso de administración de sistemas informáticos en red
autor: Jorge Sánchez – www.jorgesanchez.net

en un documento externo privado

En este caso la validación se crea en un documento-plantilla externa. De modo que
cuando un documento debe cumplir las reglas de la plantilla DTD, se debe indicar la
ruta (sea relativa o absoluta) a la misma.

La sintaxis de la etiqueta DOCTYPE que permite asignar un DTD privado a un

documento XML es:

<!DOCTYPE raíz SYSTEM "rutaURLalDTD">

Salvo que se desee crear un único documento con una validación DTD, lo lógico es
utilizar la forma de DTD externa ya que de esa forma se pueden validar varios
documentos a la vez. La ruta puede ser absoluta y entonces se indica su URL:

<!DOCTYPE raíz SYSTEM "http://www.empresa.com/docs.dtd">

Pero puede ser relativa:

<!DOCTYPE raíz SYSTEM " docs.dtd">

Entonces se busca al archivo DTD desde el directorio donde se encuentra el archivo XML
que queremos validar (en el ejemplo, el archivo docs.dtd debe encontrarse en el mismo
directorio que el archivo que contiene ese código DOCTYPE).

En ambos casos se puede añadir código DTD para en ese documento concreto añadir

instrucciones de validación. Ejemplo:

<!DOCTYPE raíz SYSTEM “http://www.empresa.com/docs.dtd” [

<!ELEMENT nombre (#PCDATA)>

] >

DTD externo de tipo PUBLIC

Se entiende que SYSTEM se utiliza cuando el documento DTD es privado. Si se trata de
un documento de uso público, entonces se usa PUBLIC. La sintaxis sería:

<!DOCTYPE raíz PUBLIC “nombreDTD” “DTD_URL”>

La raíz sigue siendo el nombre del elemento raíz. El nombreDTD es el nombre público
que se le da al DTD en cuestión. Si disponemos de un repositorio de DTDs públicos
(como ocurre en entornos de trabajo como Oxygene por ejemplo) le cargaría sin ir a
Internet. Si el nombreDTD no es reconocido se usa la dirección URL para descargarlo y
utilizarlo. Ejemplo:

<!DOCTYPE html PUBLIC

"-//W3C//DTD XHTML 1.0 Strict//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

Este es el DOCTYPE para una página web escrita en XHTML 1.0 estricto, utilizada para
validar miles de páginas web.

atributo standalone de la etiqueta de cabecera

La etiqueta <?xml de cabecera de todo documento XML, posee un atributo llamado
standalone que puede tomar dos valores:

yes. En caso de el documento XML no utilice DTD externa

(9)

lenguajes de marcas y sistemas de gestión de información
(unidad 2) Validación XML



no. Cuando el documento obligatoriamente hace uso de DTD externa

(2.2.3) definiciones en un DTD

En un código DTD (tanto externo como interno) se pueden definir:

Los elementos que se pueden utilizar en un documento XML. En esta definición

se indica además que pueden contener dichos elementos.

Los atributos que pueden poseer los elementos. Además incluso indicando sus

posibles valores válidos.

Entidades que puede utilizar el documento XML.

(2.2.4) elementos

Mediante un DTD podemos especificar elemento que se puede utilizar en un XML se
define en su DTD mediante una etiqueta !ELEMENT. La sintaxis de la misma es:

<!ELEMENT nombre tipo>

El nombre es el identificador que tendrá el elemento en el documento XML (hay que
recordar que se distingue entre mayúsculas y minúsculas).

El tipo indica el funcionamiento del elemento, relativo al contenido que puede

tener. A continuación se indican las posibilidades de este parámetro

tipos de contenido en los elementos

EMPTY

Significa que el elemento no podrá tener contenido alguno, es un elemento vacío (como
la etiqueta br de las páginas web). Ejemplo de definición de elemento vacío:

<!ELEMENT línea EMPTY >

Cuando se indica como tipo la palabra EMPTY, se indica que el elemento no puede tener
contenido, pero sí podrá contener atributos (si se especifican en el DTD).

Los elementos definidos con EMPTY sólo pueden utilizarse de esta forma:

<línea></línea>

o bien:

<línea />

ANY

Permite cualquier contenido en el elemento, sin restricciones de ningún tipo. Es decir
puede contener texto, otro tipo de datos y cualquier etiqueta. Además puede tener
atributos.

(10)

Ejemplo:

1er curso de administración de sistemas informáticos en red
autor: Jorge Sánchez – www.jorgesanchez.net

<?xml version="1.0"?>
<!DOCTYPE persona [
<!ELEMENT persona (nombre, apellidos)>
<!ELEMENT nombre (#PCDATA)>
<!ELEMENT apellidos ANY>
]>
<per
  • Links de descarga
http://lwp-l.com/pdf1455

Comentarios de: Validación de Documentos XML (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad