Zhang Jian, Universität für Post und Telekommunikation Peking
Einschränkungen von XML
Derzeit werden die Inhaltsdaten vieler Websites in Datenbanken oder Datendateien gespeichert. Wenn Webprogrammentwickler nützliche Informationen aus der Datenbank extrahieren möchten, besteht die herkömmliche Methode darin, Skripte auf der Serverseite zu schreiben (z. B. VBScript, JavaScript, CGI, ASP, Perl usw.) und die Datenbank auszuführen SQL-Abfrage Ruft die relevanten Datensätze ab, organisiert dann die Abfrageergebnisse in einer HTML-Seite und gibt sie an den Client zurück. Der Benutzer verwendet den Browser, um die Endergebnisse zu beobachten.
Um die Flexibilität und Skalierbarkeit von Systemdiensten zu verbessern und ein breiteres Spektrum an Dienstzielen zu ermöglichen, versuchen viele kommerzielle Websites ihr Bestes, Geschäftsregeln, Originaldaten und Präsentationsformen als unabhängige Dienste bereitzustellen. Die Art und Weise, wie HTML Daten in die Anzeige einbettet, erfüllt diesen Bedarf offensichtlich nicht. Daher sind die Speicherung von Originaldaten in XML-Dokumenten und die Verwendung von Stylesheets zur Anzeige von Inhalten die Vorteile der für den E-Commerce geeigneten XML-Technologie. Aber im Wesentlichen ist die XSL-Technologie nicht auf die Datenanzeige ausgerichtet, sondern eine Formatkonvertierungstechnologie, die hinsichtlich der Anzeigemittel und -methoden weitaus weniger umfangreich ist als HTML. Für Programmierer besteht eine idealere Lösung darin, die Vorteile der beiden Technologien HTML und XML zu kombinieren, sodass die tatsächlichen Originaldaten ihre ursprüngliche Bedeutung und Struktur beibehalten und gleichzeitig die sich ständig ändernde Darstellung von HTML voll ausnutzen können . XML Data Island ist das Produkt dieser Technologiefusion. Es nutzt den <XML>-Tag, um XML-Daten direkt in HTML-Seiten einzubetten und so die komplementären Vorteile beider zu nutzen.
Umgang mit Dateninseln im IE
Um diese Art von HTML-Seite mit eingebettetem XML-Code verarbeiten zu können, hat Internet Explorer 4.0 (im Folgenden als IE 4.0 bezeichnet) die DSO-Technologie (Data Source Objects, Datenquellenobjekt) eingeführt implementiert mit Java Applet.
Beispiel:
<APPLET CODE="com.ms.xml.dso.XMLDSO.class"
ID="xmldso" WIDTH=0 HEIGHT=0 MAYSCRIPT=TRUE>
<PARAM NAME="URL" VALUE="myXML.xml">
< /APPLET>
Im obigen Beispiel gibt das CODE-Attribut das DSO-Java-Applet an, das MAYSCRIPT-Attribut stellt sicher, dass das Client-Skript das Datenobjekt verarbeiten kann, und das PARAM-Tag gibt den Speicherort des XML-Dokuments an.
Die Einschränkung bei der Verwendung von Java besteht darin, dass es nur die URL-Adresse von XML im HTML-Dokument beschreiben kann, das XML-Tag jedoch nicht direkt darin einbetten kann. Dies liegt immer noch weit hinter der echten Dateninsellösung. Microsoft hat die DSO-Technologie in Internet Explorer 5.0 (im Folgenden als IE 5.0 bezeichnet) erweitert, wodurch bisherige Einschränkungen durchbrochen und HTML und XML wirklich integriert wurden. HTML-Seiten unterstützen die direkte Verwendung von <XML>-Tags.
Zum Beispiel:
<HTML>
<XML ID="xmldso">
<?xml version="1.0"?>
some XML...
</XML>
Solange die ID jeder Dateninsel eindeutig ist, kann sie eingefügt werden Auf der Seite werden Dateninseln eingebettet, wo immer dies erforderlich ist, und diese DSOs sind unabhängig voneinander.
Neben der direkten Einbettungsmethode im obigen Beispiel können Sie auch externe Referenzen verwenden, um Dateninseln zu verknüpfen.
Beispiel:
<XML ID="xmldso" SRC="myXML.xml">
</XML>
Auf diese Weise nur, wenn die Kundenobjekte des Unternehmens weiterhin IE 4.0 verwenden und um die Kompatibilitätsprobleme dieser Kunden zu lösen, Das Java-Applet ist eine Option, die Programmierer berücksichtigen sollten.
Wenn die Daten in der von IE 5.0 implementierten DSO-Technologie das Ergebnis einer Abfrage der Datenbank über die SQL-Sprache sind, werden sie im ADO-Datensatz (ActiveX Data Objects) gespeichert. Der Server sendet dieses ActiveX-Steuerelement (normalerweise ein ADO-Recordset) an den Client, wo das Client-Skriptprogramm die weitere Verarbeitung durchführt. Tatsächlich behandelt IE 5.0 XML-Dateninseln als speziellen ADO-Datensatz.
XML-Datenbindung
1. ADO-Recordset-Zuordnung
Jedes Hauptelement in XML wird einem Datensatz im ADO-Recordset zugeordnet, und die Unterelemente werden entsprechend Feldern (auch Domänen genannt) im Recordset zugeordnet.
Die XML-Dateninsel „books.xml“ existiert beispielsweise wie folgt:
<XML ID="xmldso">
<?xml version="1.0"?>
<booklist>
<book>
<title>Straight Talk About Computers</title>
< isbn>72 -80088-005</isbn>
</book>
<book>
<title> Gourmet Microwave </title>
<isbn>72-80081-082</isbn>
</book>
</booklist>
</XML >
Zu diesem Zeitpunkt lautet der zugeordnete ADO-Datensatz:
title isbn
Straight Talk About Computers 72-80088-005
Gourmet Microwave 72-80081-082
2. Bindung an HTML-Elemente
Nachdem Sie Dateninseln in ein HTML-Dokument eingebettet haben, können Sie XML-Dateninseln an HTML-Elemente binden. Jeder DSO-Eintrag (d. h. Dateninsel) hat eine eindeutige ID-Nummer. Setzen Sie zunächst das DATASRC-Attribut im HTML-Element auf die entsprechende ID, um das HTML-Element mit der Dateninsel zu verknüpfen. Bestimmen Sie dann das extrahierte XML-Element, indem Sie den DATAFLD-Attributwert festlegen.
Der an das DIV-Element gebundene Code lautet beispielsweise wie folgt:
<DIV ID=title DATASRC=#xmldso DATAFLD="title"></DIV>
<DIV ID=price DATASRC=#xmldso DATAFLD="isbn"></ DIV>
Hinweis: Nicht alle HTML-Elemente können an XML-Dateninseln gebunden werden. Derzeit unterstützen folgende Elemente diesen DSO-Bindungsmechanismus:
A. APPLET, BUTTON, DIV, FRAME, IFRAME, IMG, INPUT (die Typen hier sind: CHECKBOX, HIDDEN, LABEL, PASSWORD, RADIO und TEXT), LABEL, MARQUEE, SELECT, SPAN, TABLE und TEXTAREA.
3. Explizite XML-Daten in einem Tabellenformat
Wenn Sie die XML-Daten an das TABLE-Element binden, können sie automatisch in einem mehrzeiligen Tabellenformat angezeigt werden.
Der Code, der XML-Daten an das TABLE-Element bindet, lautet beispielsweise wie folgt:
<TABLE BORDER=1 DATASRC="#xmldso">
<THEAD>
<TR><TH>Title</TH>
<TH>ISBN</TH ></TR >
</THEAD>
<TBODY>
<TR><TD><DIV DATAFLD="title"></DIV></TD>
<TD><DIV DATAFLD="isbn">
</DIV>< /TD>< /TR>
</TBODY>
</TABLE>
Auf diese Weise werden die beiden gebunden, indem das DATASRC-Attribut im TABLE-Element auf #xmldso gesetzt wird. Die Tabelle ist in zwei Teile unterteilt: Kopfzeile (THEAD) und Tabellenkörper (TBODY). Jedes <book>-Element wird als Tabellenzeile angezeigt. Welche Daten in den einzelnen Spalten angezeigt werden, wird durch das DATAFLD-Attribut im DIV-Element angegeben.