|
XML Schema y DTDs |
De las DTDs al XML Schema
De las DTDs al XML Schema
En un principio, con la creación de XML, se empezó empleando las DTDs como modo de especificación de modelos; la existencia de más herramientas para ello hizo que gran parte de las empresas que empezaron a trabajar con XML adoptasen el uso de las DTDs. Actualmente el uso de las estas a quedado un más restringido en su uso, y se está empezando a desarrollar de acuerdo al estándar de XML Schema; por ello, a continuación, presentaremos las transformaciones que deberían realizarse para convertir una DTD en un Schema.
En principio mostraremos a que elemento de XML Schema corresponden que elementos de las DTDs, aunque existen herramientas de traducción (DTD2HTML en Perl, XMLSpy ,...) entre estos dos lenguajes, la siguiente tabla intenta expresar como funciona con el fin de una mejor comprensión.
| DTD | XML Schema | Comentarios |
|---|---|---|
| ELEMENT | <element> | Crea un vínculo entre un nombre y unos atributos, modelos de contenido y anotaciones |
| #PCDATA | Soportado como parte de un tipo simple |
|
| ANY | <any> | Posee distintos comodines para un mayor conjunto de posibilidades. Existe también <anyAttribute> con comodines similares. |
| EMPTY | Soportado | Se elimina la existencia de elementos descendientes del actual, diferenciando de la presencia de un string vacío en un elemento. |
| Modelo deContenido | <complexType> |
|
| , (Conector de secuencia) | <sequence> |
|
| | (Conector de alternativas) | <disjunction> |
|
| ? (Opcional) | Soprtado | Se han de emplear los atributos predefinidos de maxOccurs y minOccurs |
| +(Requerido y Repetible) | Soportado | Se han de emplear los atributos predefinidos de maxOccurs y minOccurs |
| *(Opcional y Repetible) | Soportado | Se han de emplear los atributos predefinidos de maxOccurs y minOccurs |
| ATTLIST | <attributeGroup> | Se pueden agrupar declaraciones de <attributes> |
| Tipo de atributo CDATA, ID, IDREF, NOTATION, ... | Tipos <simpleType>predefinidos |
|
| ENTITY | NO Soportado | Las entidades son declaradas en declaraciones de marcas en el XML |
| ENTITY%Parameter | NO Soportada | Las entidades paramétricas permiten un mecanismo de bajo nivel que permite distintas cosas, algunas de estas se han intentado cubrir en XML Schema:
|
Si bien esta tabla vale como aproximación a los cambios que habría que realizar para poder migrar, cuando menos de ideas, del uso de las DTDs a XML Schema, es cierto que es necesario el uso de ciertos modelos UML para poder normalizar estos cambios, a este respecto es bueno resaltar el trabajo expuesto en "Migrating from XML DTD to XML Schema using UML 6"
.
















































