Zhang Jian, Universidad de Correos y Telecomunicaciones de Beijing
Limitaciones de XML
Actualmente, los datos de contenido de muchos sitios web se almacenan en bases de datos o archivos de datos. Para los desarrolladores de programas web, si desean extraer información útil de la base de datos, el método tradicional es escribir scripts en el lado del servidor (como VBScript, JavaScript, CGI, ASP, Perl, etc.) y ejecutar la base de datos La consulta SQL obtiene los registros relevantes y luego organiza los resultados de la consulta en una página HTML y la devuelve al cliente. El usuario utiliza el navegador para observar los resultados finales.
Para mejorar la flexibilidad y escalabilidad de los servicios del sistema y permitir una gama más amplia de objetivos de servicio, muchos sitios web comerciales hacen todo lo posible para proporcionar reglas comerciales, datos originales y formularios de presentación como servicios independientes. La forma en que HTML incrusta datos en la visualización obviamente no satisface esta necesidad. Por tanto, almacenar datos originales en documentos XML y utilizar hojas de estilo para mostrar contenido son las ventajas de la tecnología XML adecuada para el comercio electrónico. Pero, en esencia, la tecnología XSL no está orientada a la visualización de datos. Es una tecnología de conversión de formato que es mucho menos rica que HTML en términos de medios y métodos de visualización. Para los programadores, una solución más ideal es combinar las dos tecnologías de HTML y XML para complementar las ventajas de cada una, de modo que los datos originales reales puedan mantener su significado y estructura originales mientras aprovechan al máximo la visualización en constante cambio de HTML. . XML Data Island es el producto de esta fusión tecnológica. Utiliza la etiqueta <XML> para incrustar datos XML directamente en páginas HTML, logrando así las ventajas complementarias de las dos.
Cómo manejar islas de datos en IE
Para poder manejar este tipo de página HTML con código XML incrustado, Internet Explorer 4.0 (en adelante, IE 4.0) introdujo la tecnología DSO (Objetos de origen de datos, objeto de origen de datos), que es implementado con el subprograma Java.
Por ejemplo:
<APPLET CODE="com.ms.xml.dso.XMLDSO.class"
ID="xmldso" WIDTH=0 HEIGHT=0 MAYSCRIPT=TRUE>
<PARAM NAME="URL" VALUE="myXML.xml">
< /APPLET>
En el ejemplo anterior, el atributo CODE especifica el subprograma DSO Java, el atributo MAYSCRIPT garantiza que el script del cliente pueda procesar el objeto de datos y la etiqueta PARAM especifica la ubicación del documento XML.
La limitación del uso de Java es que solo puede describir la dirección URL de XML en el documento HTML, pero no puede incrustar directamente etiquetas XML en él. Esto todavía está muy por detrás de la solución de isla de datos real. Microsoft ha ampliado la tecnología DSO en Internet Explorer 5.0 (en adelante, IE 5.0), superando las limitaciones anteriores e integrando verdaderamente HTML y XML. Las páginas HTML admiten el uso directo de etiquetas <XML>.
Por ejemplo:
<HTML>
<XML ID="xmldso">
<?xml version="1.0"?>
algún XML...
</XML>
Siempre que el ID de cada isla de datos sea único, se puede incluir en la página Las islas de datos están integradas donde sea necesario y estos DSO son independientes entre sí.
Además del método de incrustación directa del ejemplo anterior, también puede utilizar referencias externas para vincular islas de datos.
Por ejemplo:
<XML ID="xmldso" SRC="myXML.xml">
</XML>
De esta manera, solo cuando los objetos del cliente de la empresa continúan usando IE 4.0 y para resolver los problemas de compatibilidad de estos clientes, El subprograma de Java es una opción que los programadores deben considerar.
En la tecnología DSO implementada por IE 5.0, si los datos son el resultado de consultar la base de datos a través del lenguaje SQL, entonces se almacenan en el conjunto de registros ADO (ActiveX Data Objects). El servidor envía este control ActiveX (normalmente un conjunto de registros ADO) al cliente, donde el programa de script del cliente realiza un procesamiento adicional. De hecho, IE 5.0 maneja islas de datos XML como un conjunto de registros ADO especial.
Enlace de datos XML
1. Asignación de conjuntos de registros ADO
Cada elemento principal en XML se asigna a un registro en el conjunto de registros ADO, y los subelementos se asignan correspondientemente a campos (también llamados dominios) en el conjunto de registros.
Por ejemplo, la isla de datos XML books.xml existe de la siguiente manera:
<XML ID="xmldso">
<?xml version="1.0"?>
<booklist>
<book>
<title>Hablar claro sobre computadoras</title>
< isbn>72 -80088-005</isbn>
</book>
<book>
<title>Microondas Gourmet </title>
<isbn>72-80081-082</isbn>
</book>
</booklist>
</XML >
En este momento, el conjunto de registros ADO asignado es:
título isbn
Straight Talk About Computers 72-80088-005
Gourmet Microwave 72-80081-082
2. Vinculación a elementos HTML
Después de incrustar islas de datos en un documento HTML, puede vincular islas de datos XML a elementos HTML. Cada entrada DSO (es decir, isla de datos) tiene un número de identificación único. Primero, establezca el atributo DATASRC en el elemento HTML en el ID correspondiente para asociar el elemento HTML con la isla de datos. Luego determine el elemento XML extraído estableciendo el valor del atributo DATAFLD.
Por ejemplo, el código vinculado al elemento DIV es el siguiente:
<DIV ID=title DATASRC=#xmldso DATAFLD="title"></DIV>
<DIV ID=price DATASRC=#xmldso DATAFLD="isbn"></ DIV>
Nota: No todos los elementos HTML se pueden vincular a islas de datos XML. Actualmente, los elementos que soportan este mecanismo de vinculación DSO son los siguientes:
A. APPLET, BUTTON, DIV, FRAME, IFRAME, IMG, INPUT (los tipos aquí son: CHECKBOX, HIDDEN, LABEL, PASSWORD, RADIO y TEXT), LABEL, MARQUEE, SELECT, SPAN, TABLE y TEXTAREA.
3. Datos XML explícitos en formato tabular
Si vincula los datos XML al elemento TABLE, se pueden mostrar automáticamente en un formato tabular de varias filas.
Por ejemplo, el código que vincula datos XML al elemento TABLE es el siguiente:
<TABLE BORDER=1 DATASRC="#xmldso">
<THEAD>
<TR><TH>Título</TH>
<TH>ISBN</TH >>TR >
</THEAD>
<TBODY>
<TR><TD><DIV DATAFLD="title"></DIV></TD>
<TD><DIV DATAFLD="isbn">
</DIV>< /TD>< /TR>
</TBODY>
</TABLE>
De esta manera, los dos están vinculados estableciendo el atributo DATASRC en el elemento TABLE en #xmldso. La tabla se divide en dos partes: encabezado (THEAD) y cuerpo de la tabla (TBODY). Cada elemento <book> se mostrará como una fila de tablas. Los datos que se muestran en cada columna se especifican mediante el atributo DATAFLD en el elemento DIV.