Modelar con XML
Los lenguajes de modelado XML
XML, así como SGML antes que él, permite crear tus propios nombres de elementos. En el ejemplo que utilizamos en lecciones anteriores, podríamos haber empleado el elemento <pers> en lugar de <personName> y <townName> en lugar de <town>:
1 2 3 4 5 |
<personName>Robert Smith</personName> <street>Castle street</street> <houseNr>123</houseNr> <town>Dublin</town> <telephoneNr>0891232245</telephoneNr> |
Así pues, este ejemplo podría escribirse de la siguiente forma:
1 2 3 4 5 |
<pers>Robert Smith</pers> <streetName>Castle street</streetName> <house>123</house> <townName>Dublin</townName> <telephone>0891232245</telephone> |
De esta forma, la codificación con XML sigue describiendo correctamente los datos codificados y, probablemente, hay miles de formas diferentes de nombrar estos elementos. Para los humanos, no tiene importancia que empleemos nombres de elementos similares, ya que podemos entender que <pers> o <personName> o <persName> hacen referencia al nombre de una persona. Sin embargo, los ordenadores, por lo general, trabajan utilizando algoritmos de encaje de cadenas de caracteres [string matching], por lo que los elementos <pers>, <personName> y <persName> representan tres cosas diferentes, de la misma forma que lo son para nosotros <pers> <perro> <pez>.
Para lograr una mayor uniformidad en la denominación y en la sintaxis de los elementos, SGML emplea una gramática de reglas llamada Definición del Tipo de Documento (DTD). Las DTD pueden utilizarse, además, con XML. Las DTD son un conjunto de reglas que especifican qué elementos constitutivos se emplean en un documento SGML/XML, con qué frecuencia pueden utilizarse y qué atributos pueden contener.
Las DTD representan un modelo abstracto de la estructura de un documento XML, al mismo tiempo que ofrecen un mecanismo para que la comunidad o cualquier individuo desarrollen un vocabulario de diferentes nombres para los elementos que describen los datos que está codificando. Con el tiempo, el W3C, el consorcio que controla y desarrolla los estándares HTML y XML, desarrolló un lenguaje basado en reglas, específico para documentos XML escritos en una sintaxis propia de XML. Aunque es posible aún utilizar las DTD con XML, en la actualidad es más común emplear un Esquema XML (XML Schema) y RNG, pues son mucho más potentes y flexibles. Conforme avance el curso, abordaremos la sintaxis de las DTD, pues es más fácil de aprender y usar que el Esquema XML, y, por otra parte, los principios generales de modelado empleados en ambos formalismos son semejantes.