La especificaci�n DOM es un buen ejemplo de la potencia del XML: todos los documentos HTML, correspondencias con Java, correspondencias con el IDL OMG y las correspondencias con ECMA Script han sido generados desde un solo conjunto de ficheros fuente XML. Esta secci�n describe c�mo se escribi� esta especificaci�n en XML, y c�mo se crearon las diferentes obras derivadas.
Esta especificaci�n est� escrita completamente en XML, usando un DTD basado extensivamente en el DTD usado por el Grupo de Trabajo XML para la especificaci�n XML. La principal diferencia entre el DTD usado por el Grupo de Trabajo XML y el DTD usado para esta especificaci�n est� en la adici�n de un modulo DTD para las especificaciones de las interfaces.
El modulo DTD para las especificaciones de las interfaces es una traducci�n muy poco estricta desde la especificaci�n EBNF (Extended Backus-Naur Form, Forma Backus-Naur Extendida) de la sintaxis IDL OMG a la sintaxis DTD XML. Adem�s de la traducci�n, se sum� la capacidad de describir las interfaces, creando as� una forma limitada de programaci�n literaria para definiciones de interfaces.
i bien el modulo DTD es suficiente para los prop�sitos del Grupo de Trabajo DOM, sus tipos son muy d�biles, lo cual quiere decir que hay muy pocas restricciones en las especificaciones de los tipos (la informaci�n sobre el tipo se trata en efecto como una cadena opaca). En un DTD para la comunicaci�n objeto a objeto probablemente ser�an beneficiosas algunas restricciones m�s fuertes sobre los tipos de datos.
La especificaci�n DOM se escribi� usando XML. Todos los documentos son XML v�lido. Para producir las versiones HTML de la especificaci�n, los �ndices de objetos, el c�digo fuente Java, y las definiciones IDL OMG y ECMA Script, la especificaci�n fue convertida.
La herramienta usada para la conversi�n es COST, de Joe English. COST
toma la salida ESIS de nsgmls
, crea una representaci�n interna, y entonces ejecuta scripts y manejadores de eventos sobre la estructura interna de datos. Los manejadores de eventos permiten que se especifiquen patrones de documentos y procesos asociados: cuando se encuentra un patr�n durante un recorrido en preorden del sub-�rbol del documento, se ejecuta la acci�n asociada. Este es el coraz�n del proceso de conversi�n. Los scripts se usan para enlazar entre s� las distintas componentes. Por ejemplo, cada uno de los fuentes de datos derivados principales (c�digo Java, etc.), es creado por la ejecuci�n de un script, que a su vez ejecuta uno o m�s manejadores de eventos. Los scripts y manejadores de eventos se especifican por medio de TCL.
La versi�n actual de COST
ha sido modificada en algunos aspectos a partir de la versi�n disponible al p�blico. En particular, ahora funciona correctamente bajo Windows 32-bits, usa TCL 8.0 y sigue correctamente las reglas de diferenciaci�n entre may�sculas y min�sculas de XML (aunque probablemente no podr�a manejar correctamente c�digo en lenguaje nativo).
Tambi�n podr�amos haber usado Jade
, de James Clark. Al igual que COST
, Jade
permite que se especifiquen patrones y acciones, pero Jade
se basa en DSSSL, un est�ndar internacional, mientras que COST
no lo hace. Jade
es m�s potente que COST
en muchos aspectos, pero la experiencia previa del editor con COST
hizo m�s f�cil de usar a �ste que a Jade
. Una futura versi�n o Nivel de la especificaci�n DOM se podr�a producir usando Jade
o un procesador XSL
.
Los ficheros fuente XML completos est�n disponibles en: http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/xml-source.zip
Como se ha dicho antes, todas las definiciones de los objetos est�n especificadas en XML. Las correspondencias con Java, IDL OMG y ECMA Script est�n todas generadas autom�ticamente a partir del c�digo fuente XML.
Esto es posible porque la informaci�n especificada en XML es un superconjunto de lo que estas otras sintaxis necesitan. Esto es una observaci�n general; se puede aplicar el mismo tipo de t�cnica a otras muchas �reas: a partir de una estructura rica, son posibles un procesamiento y conversi�n ricos. Para Java y el IDL OMG, es b�sicamente una cuesti�n de renombrar las palabras clave sint�cticas; para ECMA Script el proceso es algo m�s desarrollado.
Una definici�n t�pica de objeto en XML se parece a algo de este estilo:
<interface name="foo"> <descr><p>Description goes here...</p></descr> <method name="bar"> <descr><p>Description goes here...</p></descr> <parameters> <param name="baz" type="DOMString" attr="in"> <descr><p>Description goes here...</p></descr> </param> </parameters> <returns type="void"> <descr><p>Description goes here...</p></descr> </returns> <raises> <!-- Throws no exceptions --> </raises> </method> </interface>
Como se puede ver, esto no es precisamente ahorrativo en palabras, pero tampoco lo es el IDL OMG. De hecho, cuando al principio la especificaci�n se convirti� para usar XML, las definiciones IDL OMG se convirtieron autom�ticamente en el fuente XML correspondiente usando herramientas comunes de Unix para la manipulaci�n de texto.