Zhang Jian, Universidade de Correios e Telecomunicações de Pequim
Limitações do XML
Atualmente, os dados de conteúdo de muitos sites são armazenados em bancos de dados ou arquivos de dados. Para desenvolvedores de programas Web, se quiserem extrair informações úteis do banco de dados, o método tradicional é escrever scripts no lado do servidor (como VBScript, JavaScript, CGI, ASP, Perl, etc.) e executar o banco de dados A consulta SQL obtém os registros relevantes e, em seguida, organiza os resultados da consulta em uma página HTML e a retorna ao cliente. O usuário usa o navegador para observar os resultados finais.
A fim de melhorar a flexibilidade e a escalabilidade dos serviços do sistema e permitir uma gama mais ampla de metas de serviço, muitos sites comerciais fazem o possível para fornecer regras de negócios, dados originais e formas de apresentação como serviços independentes. A forma como o HTML incorpora dados no display obviamente não atende a essa necessidade. Portanto, armazenar dados originais em documentos XML e usar folhas de estilo para exibir conteúdo são as vantagens da tecnologia XML adequada para comércio eletrônico. Mas, em essência, a tecnologia XSL não é orientada para a exibição de dados. É uma tecnologia de conversão de formato muito menos rica que o HTML em termos de meios e métodos de exibição. Para os programadores, uma solução mais ideal é combinar as duas tecnologias de HTML e XML para complementar as vantagens uma da outra, de modo que os dados originais reais possam manter seu significado e estrutura originais, enquanto aproveitam ao máximo a exibição em constante mudança do HTML Skill. . XML Data Island é o produto desta fusão tecnológica. Ele usa a tag <XML> para incorporar dados XML diretamente em páginas HTML, percebendo assim as vantagens complementares dos dois.
Como lidar com ilhas de dados no IE
Para poder lidar com esse tipo de página HTML com código XML incorporado, o Internet Explorer 4.0 (doravante denominado IE 4.0) introduziu a tecnologia DSO (Data Source Objects, objeto de fonte de dados), que é implementado com Java Applet.
Por exemplo:
<APPLET CODE="com.ms.xml.dso.XMLDSO.class"
ID="xmldso" WIDTH=0 HEIGHT=0 MAYSCRIPT=TRUE>
<PARAM NAME="URL" VALUE="myXML.xml">
< /APPLET>
No exemplo acima, o atributo CODE especifica o miniaplicativo Java DSO, o atributo MAYSCRIPT garante que o script do cliente possa processar o objeto de dados e a tag PARAM especifica a localização do documento XML.
A limitação do uso de Java é que ele só pode descrever o endereço URL do XML no documento HTML, mas não pode incorporar diretamente a tag XML nele. Isso ainda está muito aquém da solução real da ilha de dados. A Microsoft expandiu a tecnologia DSO no Internet Explorer 5.0 (doravante denominado IE 5.0), rompendo as limitações anteriores e integrando verdadeiramente HTML e XML. As páginas HTML suportam o uso direto de tags <XML>.
Por exemplo:
<HTML>
<XML ID="xmldso">
<?xml version="1.0"?>
algum XML...
</XML>
Desde que o ID de cada ilha de dados seja único, ele pode ser incluído em a página As ilhas de dados são incorporadas sempre que necessário e esses DSOs são independentes uns dos outros.
Além do método de incorporação direta no exemplo acima, você também pode usar referências externas para vincular ilhas de dados.
Por exemplo:
<XML ID="xmldso" SRC="myXML.xml">
</XML>
Desta forma, somente quando os objetos clientes da empresa continuarem a usar o IE 4.0, e para resolver os problemas de compatibilidade desses clientes, o miniaplicativo Java é uma opção a ser considerada pelos programadores.
Na tecnologia DSO implementada pelo IE 5.0, se os dados forem resultado de consulta ao banco de dados por meio da linguagem SQL, eles serão armazenados no conjunto de registros ADO (ActiveX Data Objects). O servidor envia esse controle ActiveX (geralmente um conjunto de registros ADO) para o cliente, onde o programa de script do cliente executa processamento adicional. Na verdade, o IE 5.0 trata ilhas de dados XML como um conjunto especial de registros ADO.
Ligação de dados XML
1. Mapeamento do conjunto de registros ADO
Cada elemento principal em XML é mapeado para um registro no conjunto de registros ADO e os subelementos são mapeados correspondentemente para campos (também chamados de domínios) no conjunto de registros.
Por exemplo, a ilha de dados XML books.xml existe da seguinte forma:
<XML ID="xmldso">
<?xml version="1.0"?>
<booklist>
<book>
<title>Straight Talk About Computers</title>
< isbn>72 -80088-005</isbn>
</book>
<book>
<title> Microondas Gourmet </title>
<isbn>72-80081-082</isbn>
</book>
</booklist>
</XML >
Neste momento, o conjunto de registros ADO mapeado é:
title isbn
Straight Talk About Computers 72-80088-005
Gourmet Microwave 72-80081-082
2. Vinculação a elementos HTML
Depois de incorporar ilhas de dados em um documento HTML, você pode vincular ilhas de dados XML a elementos HTML. Cada entrada DSO (ou seja, ilha de dados) possui um número de identificação exclusivo. Primeiro, defina o atributo DATASRC no elemento HTML para o ID correspondente para associar o elemento HTML à ilha de dados. Em seguida, determine o elemento XML extraído configurando o valor do atributo DATAFLD.
Por exemplo, o código vinculado ao elemento DIV é o seguinte:
<DIV ID=title DATASRC=#xmldso DATAFLD="title"></DIV>
<DIV ID=price DATASRC=#xmldso DATAFLD="isbn"></ DIV>
Nota: Nem todos os elementos HTML podem ser vinculados a ilhas de dados XML. Atualmente, os elementos que suportam este mecanismo de ligação DSO são os seguintes:
A. APPLET, BUTTON, DIV, FRAME, IFRAME, IMG, INPUT (os tipos aqui são: CHECKBOX, HIDDEN, LABEL, PASSWORD, RADIO e TEXT), LABEL, MARQUEE, SELECT, SPAN, TABLE e TEXTAREA.
3. Dados XML explícitos em formato tabular
Se você vincular os dados XML ao elemento TABLE, eles poderão ser exibidos automaticamente em um formato tabular de múltiplas linhas.
Por exemplo, o código que vincula dados XML ao elemento TABLE é o seguinte:
<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>
Dessa forma, os dois são vinculados definindo o atributo DATASRC no elemento TABLE como #xmldso. A tabela é dividida em duas partes: cabeçalho (THEAD) e corpo da tabela (TBODY). Cada elemento <book> será exibido como uma linha de tabelas. Os dados exibidos em cada coluna são especificados pelo atributo DATAFLD no elemento DIV.