martes, enero 10, 2012

Definición de tipo de documento (DTD), ID & IDREFs - CBDS

Lección anterior: XML correctamente estructurado

En esta lección continuamos hablando de otro aspecto de las bases de datos en XML, es la Definición de Tipo de Documento (DTD). Un DTD asociado a un documento XML nos permite definir la estructura que tiene el XML, con esto me refiero a los elementos, atributos, subelementos y al número de ocurrencias de esos mismos elementos.

Para construir un DTD se usan las expresiones regulares, que como su nombre lo dice, es una expresión combinada con símbolos usadas como un patrón para comparar -en nuestro caso- un DTD con su respectivo XML. Esas expresiones son estándares para todos los lenguajes que permitan su uso.

Los símbolos que se usan para formar las expresiones son como un "comodín" que indica cuáles elementos se pueden elegir, si se pueden elegir varios o solo uno, si tiene que haber mínimo uno, etc.

Siendo así, veamos las más comunes, que de hecho, son las mismas que se usan para construir un DTD.

Alternación
Una barra vertical separa las alternativas. Por ejemplo, suponiendo que estemos hablando de categorías de libros, la expresión: "Jardinería|Mascotas|Ciencia-ficción" indica que un libro puede ser de Jardinería, de Mascotas o de Ciencia-ficción

Cuantificación
Un cuantificador tras un carácter especifica la frecuencia con la que éste puede ocurrir. Los cuantificadores más comunes son +, ? y *:
+
El signo más indica que el carácter al que sigue debe aparecer al menos una vez. Por ejemplo, "ho+la" describe el conjunto infinito hola, hoola, hooola, hoooola, etcétera.
?
El signo de interrogación indica que el carácter al que sigue puede aparecer como mucho una vez. Por ejemplo, "ob?scuro" casa con oscuro y obscuro.
*
El asterisco indica que el carácter que lo precede puede aparecer cero, una, o más veces. Por ejemplo, "0*42" casa con 42, 042, 0042, 00042, etcétera.
Es importante notar en esta clasificación que el "efecto" del símbolo vale para el carácter anterior al símbolo.

Agrupación
Los paréntesis pueden usarse para definir el ámbito y precedencia de los demás operadores. Por ejemplo, "(p|m)adre" es lo mismo que "padre|madre".

Sabiendo eso esta lección se pone muy simple.

Se adhiere a los requerimientos estructurales básicos y también a una definición específica del contenido
  • Definición de tipo de documento (DTD)
  • Esquema XML (XSD) 

  • Es un lenguaje como la gramática para especificar elementos, atributos, anidamiento, orden, número de ocurrencias
  • También atributos de tipo especial ID y IDREf(S)


+ DTD/XSD

  • Los programas pueden asumir una estructura
  • CSS/XSL pueden asumir una estructura
  • Especificación - intercambio de data
  • Documentación

Beneficios de establecer
tipos de datos


- DTD/XSD

  • Flexibilidad, facilidad de cambio
  • Los DTDs o XSDs pueden ser muy liosos/irregulares

Beneficios de no establecer
tipos de datos
Para validar que el documento esté correcto se necesita el programa xmllint. No tiene interfaz gráfica, no es necesaria, así que se usa por comandos, pero no se asusten es bastante fácil. Les explico:

Instalando xmllint
En Ubuntu xmllint viene instalado, es probable que para la mayoría de las otras distribuciones también, para confirmarlo abre una terminal y teclea xmllint y presiona enter, si te devuelve "comando no encontrado/command not found" debes instalarlo.

Para Windows sigue estás instrucciones:
  1. Descarga el programa de aquí.
  2. Descomprime la carpeta y cópiala donde quieras tener los archivos del programa (recomiendo en C:\)
  3. Ve al menú Inicio > Clic derecho en "Computer" > Clic en propiedades
  4. En el menú de la izquierda haz clic en "Advanced system settings / Configuraciones avanzadas del sistema"
  5. Ve a la pestaña Avanced/Avanzado
  6. Haz clic en Environment Variables / Variables de entorno
  7. En system variables / variables del sistema (no en User variables for [usuario]) busca la variable "Path" y has clic en Editar
  8. Avanza el cursor hasta la última letra del campo Variable value/Valor de la variable, pon un punto y coma y agrega la ruta donde guardas a xmllint.



Para validar un documento XML debes abrir un terminal y navegar hasta la carpeta donde está dicho documento y escribir lo siguiente:
xmllint --valid --noout nombreDocumentoXML.xml

Descarga: Definición de tipo de documento (DTD), ID & IDREFs (vídeo). Subtítulos.
DTD español | inglés.
DTD con ID e IDREFS español | inglés.

No hay comentarios:

Publicar un comentario

¿Qué opinas?