20
Instituto Superior de Entre Douro e Vouga Tecnologias da Informação e da Comunicação│2011/2012 Tecnologia de Internet Trabalho realizado por: Liliana João Monteiro da Costa Santa Maria da Feira, 25 Novembro de 2011

A e xtensible markup language (xml)

Embed Size (px)

Citation preview

Page 2: A e xtensible markup language (xml)

4- Tecnologias de Internet XML

ÍNDICE

1. HTML versus XML …………………………………………………... 2

2. Regras de Construção………………………………………. 3

2.1 Regras de Sintaxe…………………………………………… 3

2.2 Secções CDATA……………………………………………. 6

2.3 Esquema DTD………………………………………………. 7

2.4 Esquema XML Schema……………………………………. 8

3. Modelos de Processamento ………………………………………. 11

3.1 SAX……………………………………………………………. 11

3.2 O DOM………………………………………………………... 11

4. Conclusão……………………………………………………………. 13

5. Bibliografia…………………………………………………………… 14

Liliana Costa 3722 ISVOUGA Página 1 de 14

Page 3: A e xtensible markup language (xml)

4- Tecnologias de Internet XML

1. HTML Versus XML

HTML e XML são primos. Eles derivam da mesma inspiração, o SGML. Ambos

identificam elementos em uma página e ambos utilizam sintaxes similares. Se você é

familiar com HTML, também o será com o XML. A grande diferença entre HTML e XML

é que o HTML descreve a aparência e a ações em uma página na rede enquanto o

XML não descreve nem aparência e ações, mas sim o que cada trecho de dados é ou

representa. Em outras palavras, o XML descreve o conteúdo do documento.

Como o HTML, o XML também faz uso de tags (palavras encapsuladas por sinais '<' e

'>') e atributos (definidos com name="value"), mas enquanto o HTML especifica cada

sentido para as tags e atributos (e frequentemente a maneira pela qual o texto entre

eles será exibido em um navegador), o XML usa as tags somente para delimitar

trechos de dados, e deixa a interpretação do dado a ser realizada completamente para

a aplicação que o está lendo. Resumindo, enquanto em um documento HTML uma tag

<p> indica um parágrafo, no XML essa tag pode indicar um preço, um parâmetro, uma

pessoa, ou qualquer outra coisa que se possa imaginar (inclusive algo que não tenha

nada a ver com um p como por exemplo autores de livros).

Os arquivos XML são arquivos texto, mas não são tão destinados à leitura por um ser

humano como o HTML é. Os documentos XML são arquivos texto porque facilitam que

os programadores ou desenvolvedores "debuguem" mais facilmente as aplicações, de

forma que um simples editor de textos pode ser usado para corrigir um erro em um

arquivo XML. Mas as regras de formatação para documentos XML são muito mais

rígidas do que para documentos HTML. Uma tag esquecida ou um atributo sem aspas

torna o documento inutilizável, enquanto, que no HTML isso é tolerado. As

especificações oficiais do XML determinam que as aplicações não podem tentar

adivinhar o que está errado em um arquivo (no HTML isso acontece), mas sim devem

parar de interpretá-lo e reportar o erro.

 O XML tem os seguintes usos:

Separar dados do HTML;

Simplificar o compartilhamento de dados;

Liliana Costa 3722 ISVOUGA Página 2 de 14

Page 4: A e xtensible markup language (xml)

4- Tecnologias de Internet XML

Simplificar a transferência de dados;

Simplificar a mudança de plataforma;

Ser a base para criação de novas linguagens

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>Liliana Costa</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.

Liliana Costa 3722 ISVOUGA Página 3 de 14

Page 5: A e xtensible markup language (xml)

4- Tecnologias de Internet XML

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.

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>-

Liliana Costa 3722 ISVOUGA Página 4 de 14

Page 6: A e xtensible markup language (xml)

4- Tecnologias de Internet XML

Os elementos estão correctamente ordenados quando as etiquetas abrem e fechamem

sequências inversas:

<x><y>Incorrecto</x></y>

<x><y>Correcto</y></x>

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 carácter

.

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.

Liliana Costa 3722 ISVOUGA Página 5 de 14

Page 7: A e xtensible markup language (xml)

4- Tecnologias de Internet XML

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.

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 carácter "&" e terminadas pelo carácter

";").Os caracteres ilegais XML são “<” e “&” que devem ser substituídos por &lt; e

&amp; 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 &gt; &apos; e &quot; respectivamente.

Exemplo:

<condicao> se salario < 1000 entao </condicao>

Tem que ser substituído por:

<condicao> se salario &lt; 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

Liliana Costa 3722 ISVOUGA Página 6 de 14

Page 8: A e xtensible markup language (xml)

4- Tecnologias de Internet XML

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 "]]>"

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>Liliana Costa</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)>

Liliana Costa 3722 ISVOUGA Página 7 de 14

Page 9: A e xtensible markup language (xml)

4- Tecnologias de Internet XML

<!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.

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:

A utilização de DTD tem tendência a ser substituída por XML Schema, porque esta

última apresenta várias vantagens:

É extensível;

É mais expressiva que a DTD;

É escrita em XML;

Suporta tipos de dados;

Suporta espaços de nomes.

Liliana Costa 3722 ISVOUGA Página 8 de 14

Page 10: A e xtensible markup language (xml)

4- Tecnologias de Internet XML

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>

Exemplo de um XML Schema:

Liliana Costa 3722 ISVOUGA Página 9 de 14

Page 11: A e xtensible markup language (xml)

4- Tecnologias de Internet XML

<?xml version="1.0" encoding="ISO-8859-1" ?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name="shiporder">

<xs:complexType>

<xs:sequence>

<xs:element name="orderperson" type="xs:string"/>

<xs:element name="shipto">

<xs:complexType>

<xs:sequence>

<xs:element name="name" type="xs:string"/>

<xs:element name="address" type="xs:string"/>

<xs:element name="city" type="xs:string"/>

<xs:element name="country" type="xs:string"/>

</xs:sequence>

</xs:complexType>

</xs:element>

<xs:element name="item" maxOccurs="unbounded">

<xs:complexType>

<xs:sequence>

<xs:element name="title" type="xs:string"/>

<xs:element name="note" type="xs:string" minOccurs="0"/>

<xs:element name="quantity" type="xs:positiveInteger"/>

<xs:element name="price" type="xs:decimal"/>

</xs:sequence>

</xs:complexType>

Liliana Costa 3722 ISVOUGA Página 10 de 14

Page 12: A e xtensible markup language (xml)

4- Tecnologias de Internet XML

</xs:element>

</xs:sequence>

<xs:attribute name="orderid" type="xs:string" use="required"/>

</xs:complexType>

</xs:element>

</xs:schema>

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, oSAX 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

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é

Liliana Costa 3722 ISVOUGA Página 11 de 14

Page 13: A e xtensible markup language (xml)

4- Tecnologias de Internet XML

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.

Liliana Costa 3722 ISVOUGA Página 12 de 14

Page 14: A e xtensible markup language (xml)

4- Tecnologias de Internet 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 deum documento, e a linguagem HTML tem como objectivo definir a

formatação domesmo, ou seja, o XML define o assunto, e o HTML define como ele

será exibido aoutilizador. Sérgio Rocha - 2104 ISVOUGA Página 15 de 16

Liliana Costa 3722 ISVOUGA Página 13 de 14

Page 15: A e xtensible markup language (xml)

4- Tecnologias de Internet XML

5.BIBLIOGRAFIA

http://www.inf.ufsc.br/~gauthier/EGC6006/material/Aula%202/Introducao

%20e%20Sintaxe%20do%20XML.pdf

http://www.tutoriaisweb.com/abrir.php?acao=visitar&id=786

http://www.gta.ufrj.br/grad/00_1/miguel/link3.htm

http://pt.wikipedia.org/wiki/XHTML

Liliana Costa 3722 ISVOUGA Página 14 de 14