XML com SQL Server 2000 - Parte 01 

Anderson Haertel Rodrigues

Antes de analisarmos a integração do XML com o SQL Server 2000, é interessante reforçar algumas definições e conceitos sobre XML.

eXtensible Markup Language - XML

O propósito principal de XML é a descrição, troca, processamento e interoperabilidade de informações (pode-se dizer também documentos) de maneira fácil e padronizada entre bancos de dados, ferramentas de desenvolvimento, OD (objetos distribuídos), browsers, WAP, etc. O XML também pode ser classificado como tecnologia de infra-estrutura, pois serve de alicerce para o desenvolvimento de outras tecnologias de controle XML.

XML é baseado em SGML (Standard Generalized Markup Language), criado por volta de 1986. A idéia do SGML é a mesma do XML, mas suas regras mostraram-se muito complicadas e extensas. O XML manteve todos os pontos positivos do SGML,  porém de forma mais clara e simples. A origem do XML se deve ao World Wide Web Consortium (W3C): http://www.w3.org/, que continua responsável também pelo controle dos padrões que regem a linguagem. Como o título da matéria sugere, a integração do XML com o SQL Server tornou-se realidade a partir da versão 2000.

Com o XML chegaram também outras siglas, dentre as quais merece destaque o XMLQuery (ver Nota 1). XMLQuery (pode ser chamada também de XQuery) é uma linguagem de pesquisa XML com funções parecidas com a nossa velha Structured Query Language (SQL).

 

Nota 1. Onde aprender XMLQuery

Para ficar por dentro do XMLQuery, acesse os links: http://www.gnu.org/software/qexo/XQuery-Intro.html  e http://www.w3.org/TR/xquery/

Conhecendo o XML

Antes de iniciarmos com os recursos do XML disponíveis no SQL Server 2000, vamos recordar algumas das principais regras e conceitos importantes sobre essa linguagem.

Um documento XML é estruturado em forma de árvore. Possui sempre um elemento raiz, de onde outros elementos irão se ramificar. A estrutura em forma de árvore estabelece como as informações são definidas e sua relação com outros elementos to texto – como encontrar um elemento ou um grupo de elementos e como devem ser processados os elementos encontrados. Na Listagem 1 podemos visualizar um exemplo de arquivo XML.

 

Listagem 1. Visualização de um arquivo XML.


 

A seguir estão listadas algumas definições básicas, mas de extrema importância em documentos XML :

·         Elemento: um elemento (corresponde ao tag em HTML) é um texto especial delimitado pelos caracteres “<” e “>”. Um elemento XML funciona como uma espécie de marcador, e serve para definir o significado do texto que vem a seguir. A utilização de tabulação entre os elementos é uma prática que facilita a visualização, sendo frequentemente utilizada em documentos XML. Na Listagem 2,  “Instrucoes”, “Titulo” e “Sequencia” são elementos.

·         Atributo: é um par/valor que está associado ao elemento. Os atributos são declarados após o nome do elemento. Atributos devem estar delimitados por  aspas “”, exemplo:

 

”Logotipo”

 

·         Schemas: um schema descreve a estrutura de um arquivo XML, isto é, quais são os elementos, atributos, a relação entre os elementos (quem é filho de quem), o tipo de dado para elementos e atributos, etc. As regras que regem a utilização de schemas fogem do escopo dessa matéria, mas podem ser vistas em detalhes num tutorial bastante interessante, basta acessar http://www.w3schools.com/schema/default.asp .

De volta ao XML e ao SQL Server 2000

Ao contrário do que acontece com um formato binário, onde apenas o responsável pela sua criação entende  seu significado, a linguagem XML estabelece um formato em modo texto que pode ser facilmente entendido. Em virtude da semelhança com arquivos-texto, uma questão pode ser levantada:

- Para a troca de informações não seria mais indicado o uso de arquivos texto - os famosos .TXT (delimitados ou com tabulação) -  no lugar de um arquivo em formato XML?

Resposta: Não!

A troca de informações entre aplicações que utilizam o formato texto (FlatFile) é uma “boa” opção, e talvez ainda seja bastante utilizado. O ponto negativo desse formato é que, tanto o programa responsável pela exportação quanto aquele responsável pela leitura dos dados (importação) devem estar cientes do formato utilizado, caso contrário a troca de informações não será bem sucedida. O processo de troca de informações com arquivos texto pode ser facilmente violado quando o programa exportador muda um byte de posição e/ou cria um elemento novo (nova coluna). Neste caso, o processo de importação falhará ou, pior ainda, os dados serão importados e armazenados de forma incorreta.

Com a utilização do XML, os pontos negativos dos arquivos texto são contornados, pois sua formatação garante uma separação efetiva entre dados, atributos e elementos nele transmitidos de forma que a alteração do arquivo  não altera, necessariamente, o processamento dos dados pelo fato dos arquivos - antes e após a alteração -  serem compatíveis, garantindo a correta interpretação de seu conteúdo.

O que devemos ter em mente também neste contexto é que o XML e a T-SQL são complementares, isto é, onde existe a limitação de um entra em cena o outro e vice-versa. O T-SQL é o meio preferido para conversar com o SQL Server, por intermédio de comandos DML (INSERT,  UPDATE, DELETE, etc) ou DDL (CREATE, DROP, ALTER, etc). Já o XML é um padrão de formatação utilizado em processos de comunicação que reduz o problema de conversação entre vários aplicativos, e, num futuro, quem sabe, entre vários bancos de dados. Imagine SQL Server, Oracle, DB2, FireBird, etc, todos com suporte nativo ao XML: os problemas de conversação e incompatibilidades teriam chegado ao fim: um mesmo comando poderia ser escrito com “marcações” diferentes para atender, por exemplo, o T-SQL do SQL Server ou o PL-SQL do Oracle.