1) O documento discute as diferenças entre HTML e XML, afirmando que HTML é para formatação gráfica enquanto XML é para estrutura de dados.
2) Detalha as regras de construção de documentos XML, incluindo sintaxe, seções CDATA, esquemas DTD e XML Schema.
3) Explica dois modelos de processamento XML - SAX e DOM - e como cada um lida com documentos XML.
1. Instituto Superior de Entre Douro e Vouga
Tecnologias da Informação e da Comunicação│2010/2011
Tecnologias de Internet
Trabalho realizado por:
Sérgio Paulo Lopes da Rocha
Santa Maria da Feira, 26 Novembro de 2010
2. TP 4 - Trabalho Prático XML
Í NDICE
1. HTML versus XML................................................................................................. 3
2. Regras de construção ........................................................................................... 5
2.1 Regras de Sintaxe......................................................................................... 5
2.2 Secções CDATA ........................................................................................... 7
2.3 Esquema DTD............................................................................................... 9
2.4 Esquema XML Schema .............................................................................. 10
3. Modelos de Processamento ................................................................................ 14
3.1 SAX............................................................................................................. 14
3.2 DOM............................................................................................................ 14
4. Conclusão............................................................................................................ 15
5. Bibliografia........................................................................................................... 16
Sérgio Rocha - 2104 ISVOUGA Página 2 de 16
3. TP 4 - Trabalho Prático XML
1. HTML VERSUS XML
Em traços muito gerais o HTML (HyperText Markup Language) é identificado por um
conjunto de códigos que permitem representar graficamente um determinado
documento, através de uma formatação baseada num esquema de etiquetas (tags)
que, posteriormente, são interpretadas pelos browsers.
Tal como o HTML, o XML (eXtensible Markup Language) também utiliza etiquetas
como <title> ou <body> e atributos como "lang=en". Mas, enquanto que, com o HTML é
a própria linguagem que especifica o que cada etiqueta e atributo especificam, o XML
usa as etiquetas apenas para delimitar blocos de dados e deixa a interpretação dos
mesmos para a aplicação. Assim, em função do contexto programático, um <p> que
em HTML significa sempre um novo parágrafo, pode em XML significar um preço, uma
pessoa, ou o que nós desejarmos.
O HTML especifica a formatação gráfica de um documento, enquanto que o XML
especifica a estrutura de dados.
Com o XML, não estamos limitados a etiquetas predefinidas, podemos criar a nossa
estrutura e definir uma interpretação para essa estrutura, sempre disponível no nosso
sistema informático.
O XML é uma tecnologia de conteúdos alternativa, e também complementar ao HTML,
que vai provavelmente rivalizar mais com os formatos proprietários de armazenamento
de documentos, do que propriamente com o HTML. Por ser altamente adaptável aos
dados que pretende descrever, por facilitar a interacção entre aplicações e
documentos, e por produzir documentos auto-descritivos, a tecnologia XML tem
condições para se tornar num standard para a publicação, armazenamento e
transferência de documentos por via electrónica.
Relativamente ao HTML, o XML trás grandes vantagens na sua utilização. Para além
da possibilidade de definição de novas marcas e etiquetas à medida dos utilizadores e
de um maior controlo sobre a aplicação de formatações e da forma como estas
aparecem nos browsers, o utilizador do XML fica com a certeza de publicar os seus
documentos num formato standard (independente dos fabricantes de software),
facilmente interpretável por múltiplas aplicações e, em certa medida, auto-explicativo.
Sérgio Rocha - 2104 ISVOUGA Página 3 de 16
4. TP 4 - Trabalho Prático XML
O esquema seguinte apresenta de forma simples a estrutura do XML:
O XML tem os seguintes usos:
• Separar dados do HTML;
• Simplificar o compartilhamento de dados;
• Simplificar a transferência de dados;
• Simplificar a mudança de plataforma;
• Ser a base para criação de novas linguagens para a Web.
Sérgio Rocha - 2104 ISVOUGA Página 4 de 16
5. TP 4 - Trabalho Prático XML
2. REGRAS DE CONSTRUÇÃO
As regras de construção englobam os seguintes itens: sintaxe, secções CDATA,
esquema DTD e XML schema.
2.1 REGRAS DE SINTAXE
As regras de sintaxe da XML são bastante simples, mas devem ser seguidas
rigorosamente pelos interpretadores. Deste modo, estes programas podem ser menos
complexos, evitando situações de interpretação ambígua.
Sendo uma linguagem baseada em etiquetas, os documentos em XML têm que
respeitar rigorosamente as regras de construção de elementos e atributos.
Exemplo:
<?xml version="1.0" encoding="ISO-8859-1"?>
<mensagem>
<de>Sérgio Rocha</de>
<para>Nuno Peixoto</para>
<assunto>Entrega de Trabalho Prático</assunto>
</mensagem>
Utilizando o exemplo acima descrito, podemos analisar as principais regras de
construção de documentos XML.
• O documento inicia-se com a declaração XML (pode surgir opcionalmente no
início do documento), seguindo-se o início do elemento raiz do documento, que
se chama mensagem.
• As três linhas seguintes contêm três elementos filhos de mensagem (de, para e
assunto). Cada um destes elementos poderia ter outros sub-elementos e assim
sucessivamente.
• O documento termina com o fecho do elemento raiz.
Sérgio Rocha - 2104 ISVOUGA Página 5 de 16
6. TP 4 - Trabalho Prático XML
A declaração XML pode surgir opcionalmente no início do documento. Esta declaração
define a versão da XML e a codificação de caracteres utilizada. No exemplo, a versão é
a 1.0 e o código de caracteres é o ISO-8859-1 (Latin-1/W est European).
A declaração XML faz parte da estrutura do documento, mas não é um elemento,
sendo que para diferenciar, a sintaxe da declaração utiliza —<? ... ?>“ em vez de
“<...>“. Uma outra diferença é que a declaração não tem uma etiqueta de fecho
correspondente.
O código de caracteres utilizado define a maneira como os diferentes caracteres que
compõem o documento XML são representados no ficheiro. Caso sejam utilizados
caracteres fora do código definido, o interpretador gera um erro ao ler o ficheiro. Alguns
valores frequentes para esta definição são —UTF-8“, —UTF-16“ (correspondentes a
Transformações Unicode).
- Os documentos XML têm que ter um elemento raiz, e esse elemento tem que ser
único. Os restantes elementos têm que estar dentro do elemento raiz. Todos os
elementos podem ter sub-elementos (elementos filhos):
<raiz>
<filho>
<neto>...</neto>
</filho>
</raiz >
- Todos os elementos de um documento têm que conter o fecho das etiquetas
respectivas:
<x>Incorrecto
<x>Correcto</x>
- Os elementos estão correctamente ordenados quando as etiquetas abrem e fecham
em sequências inversas:
<x><y>Incorrecto</x></y>
<x><y>Correcto</y></x>
Sérgio Rocha - 2104 ISVOUGA Página 6 de 16
7. TP 4 - Trabalho Prático XML
No primeiro exemplo: abrir x, abrir y, fechar x, fechar y œ> Incorrecto.
No segundo exemplo: abrir x, abrir y, fechar y, fechar x œ> Correcto.
Os sub-elementos têm que estar correctamente ordenados dentro do seu elemento pai.
- As etiquetas XML diferenciam entre maiúsculas e minúsculas (são case-sensitive):
<Mensagem>Errado</mensagem>
<mensagem>Correcto </mensagem>
<Mensagem>Correcto </Mensagem>
O primeiro exemplo é incorrecto porque a etiqueta de abertura não corresponde à
etiqueta de fecho (diferem na primeira letra), o que já não acontece nos dois outros
exemplos.
- Os valores dos atributos têm que estar envolvidos em aspas:
<mensagem numero="13">
- O XML preserva o espaço branco (espaços, mudanças de linha, tabulações, etc).
Este espaço não é reduzido a um único caracter.
- A sintaxe para escrever comentários em documentos XML é a seguinte:
<!-- Comentário -->
Se um documento respeitar todas estas regras de construção, diz-se bem-formado
(well-formed) e pode ser utilizado por qualquer interpretador XML. Além de bem-
formado, um documento pode ser também válido. Um elemento diz-se válido se é bem
formado e respeita uma gramática definida por DTD ou XML Schema.
2.2 SECÇÕES CDATA
Todo o texto de um documento XML é interpretado durante a leitura do ficheiro, para
permitir a detecção de inícios e fins de etiquetas.
Sérgio Rocha - 2104 ISVOUGA Página 7 de 16
8. TP 4 - Trabalho Prático XML
Existem alguns caracteres que são ilegais em XML, pois a sua utilização gera
documentos com interpretações ambíguas. Estes caracteres têm que ser substituídos
por entidades referenciais (começadas pelo caracter "&" e terminadas pelo carácter ";").
Os caracteres ilegais XML são “<” e “&” que devem ser substituídos por < e &,
respectivamente. Existem outros caracteres, que apesar de não serem ilegais, também
devem ser substituídos para evitar dificuldades de leitura, sendo >, ' e " que devem ser
substituídos por >, ' e ", respectivamente.
Exemplo:
<condicao> se salario < 1000 entao </condicao>
Tem que ser substituído por:
<condicao> se salario < 1000 entao </condicao>
O CDATA permite definir secções de texto do documento XML que não são
interpretadas, e que portanto não restringem a utilização de caracteres ilegais. Uma
secção CDATA começa com "<![CDATA[" e termina com "]]>":
Exemplo:
<script>
<![CDATA[
if (a < b && a < 0) then
return 1;
else
return 0;
]]>
</script>
As secções CDATA não podem conter outras secções CDATA, ou seja, não podem
conter as sequências de caracteres "<![CDATA[" ou "]]>".
Sérgio Rocha - 2104 ISVOUGA Página 8 de 16
9. TP 4 - Trabalho Prático XML
A sequência "]]>" também não pode ter espaços nem mudanças de linha no seu
interior.
2.3 ESQUEMA DTD
O objectivo de uma Document Type Definition (DTD) é construir uma gramática que
define a estrutura e elementos válidos de um tipo de documento XML. Os documentos
que respeitam essa DTD dizem-se válidos.
A DTD é efectuada numa linguagem própria com sintaxe própria, diferente do XML. O
documento XML pode conter uma DTD embebida ou usar uma referência externa.
Exemplo de um documento XML que referencia DTD:
<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "mensagem.dtd">
<?xml version="1.0" encoding="ISO-8859-1"?>
<mensagem>
<de>Sérgio Rocha</de>
<para>Nuno Peixoto</para>
<assunto>Entrega de Trabalho Prático</assunto>
</mensagem>
Exemplo de DTD (mensagem.dtd):
<!ELEMENT mensagem (de,para,assunto)>
<!ELEMENT de (#PCDATA)>
<!ELEMENT para (#PCDATA)>
<!ELEMENT assunto (#PCDATA)>
Quando o documento XML é lido por um interpretador, se a opção de validação estiver
activa, o DTD é utilizado para validar o documento. Caso o documento não respeite o
DTD, gera-se um erro.
Sérgio Rocha - 2104 ISVOUGA Página 9 de 16
10. TP 4 - Trabalho Prático XML
2.4 ESQUEMA XML SCHEMA
A linguagem XML Schema, também conhecida por XML Schema Definition (XSD), é
uma alternativa à DTD, mas as suas regras sintácticas são baseadas nas da XML. Por
este motivo, a XML Schema é uma aplicação da XML que descreve a estrutura de um
documento.
Os tipos de dados em XML Schema ou são “simple” ou “complex”.
Tipo “simple”:
• é um dos tipos básicos: string, date, float, double, timeDuration, ...
• restringe o texto que pode aparecer no valor dum atributo ou no conteúdo dum
elemento textual.
Tipo “complex”:
• Elemento que tenha atributos ou elementos filho;
• Restringe o conteúdo dum elemento relativamente aos atributos e elementos
filho que pode ter.
Um XML Schema define:
• Elementos que podem aparecer num documento;
• Atributos que podem aparecer num documento;
• Elementos que são elementos filhos;
• A ordem dos elementos filhos;
• O número de elementos filhos;
• Se um elemento é vazio ou pode incluir texto;
• Tipos de dados para elementos e atributos;
• Valores por omissão ou fixos para elementos e atributos.
A utilização de DTD tem tendência a ser substituída por XML Schema, porque esta
última apresenta várias vantagens:
Sérgio Rocha - 2104 ISVOUGA Página 10 de 16
11. TP 4 - Trabalho Prático XML
• É extensível;
• É mais expressiva que a DTD;
• É escrita em XML;
• Suporta tipos de dados;
• Suporta espaços de nomes.
Exemplo de um documento XML que referencia um Schema:
<?xml version="1.0" encoding="ISO-8859-1"?>
<shiporder orderid="889923"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="shiporder.xsd">
<orderperson>John Smith</orderperson>
<shipto>
<name>Ola Nordmann</name>
<address>Langgt 23</address>
<city>4000 Stavanger</city>
<country>Norway</country>
</shipto>
<item>
<title>Empire Burlesque</title>
<note>Special Edition</note>
<quantity>1</quantity>
<price>10.90</price>
</item>
<item>
<title>Hide your heart</title>
<quantity>1</quantity>
<price>9.90</price>
</item>
Sérgio Rocha - 2104 ISVOUGA Página 11 de 16
13. TP 4 - Trabalho Prático XML
</xs:sequence>
<xs:attribute name="orderid" type="xs:string"
use="required"/>
</xs:complexType>
</xs:element></xs:schema>
Sérgio Rocha - 2104 ISVOUGA Página 13 de 16
14. TP 4 - Trabalho Prático XML
3. MODELOS DE PROCESSAMENTO
Existem dois modelos de processamento de documentos XML:
• Simple API for XML (SAX);
• Documento Object Model (DOM).
A escolha do modelo de processamento num programa XML não depende só das suas
características, depende também da funcionalidade disponível na biblioteca de
programação utilizada.
3.1 SAX
O SAX processa documentos em série, lendo os dados XML e produzindo eventos de
vários tipos: início de documento, início de elemento, caracteres, fim de elemento, fim
de documento, etc.
Este modelo de processamento é mais rápido e utiliza menos memória que o DOM,
devendo ser utilizado, por exemplo, no servidor de aplicações em rede. No entanto, o
SAX necessita de mais programação para definir o tratamento dos eventos lançados
pelo interpretador durante a leitura dos dados XML. Outra restrição é que não é
possível voltar atrás no documento, devido ao processamento em série.
3.2 DOM
O DOM lê o documento e constrói uma estrutura em árvore, em que cada nó é um
componente do documento XML. Os nós podem ser elementos, atributos, texto e até
comentários. Os dois tipos mais comuns são elementos e texto.
Utilizando o DOM é possível criar nós, remover nós, alterar o seu conteúdo e percorrer
o nó hierarquicamente (pai, filhos e irmãos). O principal problema deste modelo de
processamento é que necessita de bastante memória, o que pode ser impeditivo de
manipular documentos de grande dimensão. Por este motivo, o DOM é sobretudo
utilizado em aplicações cliente orientadas a utilizador, que tipicamente correm em
máquinas com poucos problemas de memória.
Sérgio Rocha - 2104 ISVOUGA Página 14 de 16
15. TP 4 - Trabalho Prático XML
4. CONCLUSÃO
O XML permite múltiplas formas de visualização, permitindo assim, que um único
documento possa ser apresentado de diversas formas, de acordo com o gosto do
utilizador ou de acordo com as configurações da aplicação em uso.
Essa múltipla visualização é processada localmente, no cliente, permitindo-nos ainda a
integração de dados estruturados de diversas fontes, tais como bancos de dados. Essa
integração pode ser feita num servidor intermediário, e os dados estarão disponíveis
para clientes ou outros servidores.
Por ser extensível, o XML pode descrever dados de uma enorme variedade de
aplicações (registo de dados, notícias, transacções comerciais, etc...) e por possuir
tags auto-descritivas não precisa de uma descrição de contexto acoplada ao
documento como o HTML.
Permite actualizações granulares, evitando que uma simples modificação num
documento resulte na necessidade da actualização completa do mesmo.
Em síntese conclui-se que a linguagem XML é destinada a descrever o conteúdo de
um documento, e a linguagem HTML tem como objectivo definir a formatação do
mesmo, ou seja, o XML define o assunto, e o HTML define como ele será exibido ao
utilizador.
Sérgio Rocha - 2104 ISVOUGA Página 15 de 16
16. TP 4 - Trabalho Prático XML
5. BIBLIOGRAFIA
• http://pt.wikipedia.org/wiki/XML
• http://www.centroatl.pt/titulos/tecnologias/imagens/oguiapraticoda-xml-excerto.pdf
• http://www.w3schools.com/xml/default.asp
• http://www.xml.com/
Sérgio Rocha - 2104 ISVOUGA Página 16 de 16