Você está na página 1de 51

XML

Conceitos
básicos

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 1


Tópicos

Antes de tudo, precisamos saber que...

Introdução

XML x HTML

Exemplo de um documento XML

Como podemos usar o XML

A árvore XML

Regras para sintaxe de documentos XML

Notas importantes sobre a sintaxe XML

Elementos XML

Exemplo de um documento XML

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 2


Tópicos

Regras de nomeação de elementos e atributos

Elementos x atributos

Validação de XML

Validadores XML

Alguma dúvida? Podemos prosseguir?

Marco - Questões!!!

Referências

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 3


Antes de tudo, precisamos saber que...

XML é uma ótima solução para compartilhar dados

Para implementar soluções em gestão de informações usando
XML, podemos usar:

DTD ou XSchema para especificar o modelo de dados e validar
as informações

As APIs DOM ou SAX para extrair dados dos documentos, gerar
documentos, ler e gravar em bancos de dados

XSLT e XPath para transformar os dados em outros formatos

XLink, XPointer e XQuery para criar vínculos lógicos entre os
documentos e localizar seus componentes

XSL-FO ou XHTML para formatar os dados para impressão ou
visualização na tela (PDF, Word ou Web)

SVG para gerar informações em forma de gráfico vetorial

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 4


Introdução

XML significa eXtensible Markup Language

É uma linguagem de marcação parecida com HTML, porém:

Foi projetado para transportar dados, não para exibir dados

As tags XML NÃO são predefinidas
– Podemos definir nossas próprias tags

Foi projetado para ser auto-descritivo

É independente de software e hardware para transporte de
informações

Um documento XML não faz nada

É preciso escrever um software para enviá-lo, recebê-lo ou
exibi-lo

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 5


XML x HTML

XML não é um substituto do HTML

XML e HTML foram projetadas com objetivos diferentes

XML foi projetado para o transporte e armazenamento de dados
– Com foco no que são os dados

HTML foi projetado para exibir dados
– Com foco em como os dados aparecem

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 6


XML x HTML

<h1>Kia</h1>
O HTML mostra
<h2>Cerato</h2>
COMO apresentar <p>Motor <b>2.0</b></p>

<veiculo tipo="carro">
<marca>Kia</marca>
O XML mostra
<modelo>Cerato</modelo>
O QUE apresentar <motor>2.0</motor>
</veiculo>

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 7


Exemplo de um documento XML
<?xml version="1.0" encoding="ISO- <veiculo tipo="moto">
8859-1"?>
<marca>Yamaha</marca>
<meus_veiculos>
<modelo>YZF-R1</modelo>
<veiculo tipo="carro">
<motor>1000 cc</motor>
<marca>Kia</marca>
</veiculo>
<modelo>Cerato</modelo>
<garagem quantidade="3"/>
<motor>2.0</motor>
</meus_veiculos>
</veiculo>

<veiculo tipo="carro">

<marca>Hynduai</marca>

<modelo>ix35</modelo>

<motor>2.0</motor>

</veiculo>

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 8


A árvore XML

Documentos XML formam uma estrutura de árvore que inicia
na “raiz” e termina nas “folhas”

A primeira linha é a declaração XML

Sintaxe: <?xml version=“1.0” standalone=“yes/no”
encoding=“codificação”?>
– O atributo version é o único obrigatório e deve ter o valor "1.0" (a
versão 1.1 deverá sair em breve)
– O documento XML é standalone se não faz referência a uma
Document Type Definition (DTD) ou um XML Schema

O padrão do atributo é “no”
– O atributo encoding especifica o conjunto de caracteres em uso no
documento

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 9


A árvore XML

A próxima linha descreve o elemento raiz do documento:

<meus_veiculos>

Há três elementos filhos <veiculo> da raiz e cada uma delas
possui os elementos:

<marca>

<modelo>

<motor>

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 10


Regras para sintaxe de documentos XML

Um documento XML é bem formatado quando segue algumas
regras básicas

Tais regras:

São mais simples do que para documentos HTML

Permitem que os dados sejam lidos e expostos sem nenhuma
descrição externa ou conhecimento do sentido dos dados XML

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 11


Regras para sintaxe de documentos XML

Todo documento XML deve ter um elemento raiz

Todos os elementos XML devem ter uma tag de fechamento

Tags XML são case sensitive

Os elementos XML devem estar devidamente aninhados

Os valores de atributos XML devem estar entre aspas

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 12


Regras para sintaxe de documentos XML

Os elementos XML devem estar devidamente aninhados

Se há um elemento A e depois um B, o elemento B precisa ser
fechado antes do A
– <A><B>informação</B></A>

Os valores de atributos XML devem estar entre aspas

Simples

Duplas

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 13


Notas importantes sobre a sintaxe XML

Alguns caracteres têm um significado especial em XML

Por exemplo, se colocarmos “<” dentro de um elemento XML, irá
gerar um erro porque o interpretador do documento irá encarar
como o início de um novo elemento

Ocorrerá um erro em:

<mensagem>if salario < 17000 then</mensagem>

Não terá nenhum erro em:

<mensagem>if salario &lt; 17000 then</mensagem>

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 14


Notas importantes sobre a sintaxe XML

Entidade predefinida Símbolo Significado

&lt; < Menor que

&gt; > Maior que

&amp; & “E” comercial

&apos; ' Aspa simples

&quot; " Aspa dupla


Apenas os caracteres “<”e “&” são estritamente ilegais em XML

O “>” é legal, mas é um bom hábito de substituí-lo
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 15
Notas importantes sobre a sintaxe XML

Comentários em XML

A sintaxe para escrever comentários em XML é semelhante ao do
HTML
– <!-- Isto é um comentário -->

O espaço em branco é preservado em XML

HTML trunca vários caracteres de espaço em branco para um
único espaço em branco

Com o XML, o espaço em branco em um documento não é
truncado

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 16


Notas importantes sobre a sintaxe XML

Para documentos XML, uma nova linha é identificada com
caractere LF

O código que apresenta uma nova linha varia de plataforma
de hardware e sistemas operacionais

LF (Line Feed) faz com que o cursor vá para a próxima linha

CR (Carriage Return) faz com que o cursor volte para o início
da lista

Exemplos do uso do LF e CR como identificação de nova linha:

LF: Unix, Linux, AIX, Xenix, Mac OS X, BeOS, Amiga, RISC OS e
outros

CR+LF: CP/M, MP/M, DOS, OS/2, Microsoft Windows

CR: Commodore, Apple II e Mac OS até Mac OS 9

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 17


Elementos XML

Um elemento XML é tudo a partir da sua tag de início até a
sua tag final

Ambas as tags são incluídas no elemento

Um elemento pode conter (OTAM):

Outros elementos

Texto

Atributos

Mistura de todas as anteriores

Podem existir elementos vazios também

Não possuem tag final

Podem possuir apenas atributos

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 18


Exemplo de um documento XML
<?xml version="1.0" encoding="ISO- <veiculo tipo="moto">
8859-1"?>
<marca>Yamaha</marca>
<meus_veiculos>
<modelo>YZF-R1</modelo>
<veiculo tipo="carro">
<motor>1000 cc</motor>
<marca>Kia</marca>
</veiculo>
<modelo>Cerato</modelo>
<garagem quantidade="3"/>
<motor>2.0</motor>
</meus_veiculos>
</veiculo>

<veiculo tipo="carro">

<marca>Hynduai</marca>

<modelo>ix35</modelo>

<motor>2.0</motor>
</veiculo>

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 19


Elementos XML

<meus_veiculos> e <veiculo> são elementos que contém
outros elementos

<veiculo> é um elemento que possui um atributo (tipo)

<marca>, <modelo> e <motor> são elementos que possuem
texto de conteúdo

<garagem quantidade="3"/> é um elemento vazio

Como não há tag final, para indicar que fechamos o elemento
vazio, colocamos o “/” antes do “>”

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 20


Regras de nomeação de elementos e atributos

Os nomes:

Podem começar com:
– Letras
– Underscore (_)
– Dois pontos (:)

Não podem:
– Começar com:

Número

Caractere de pontuação

As letras xml (ou XML, ou Xml, etc)
– São palavras reservadas
– Não podem ser usadas
– Conter espaços

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 21


Regras de nomeação de elementos e atributos

Os nomes:

Devem ser curtos e descritivos

Podem conter qualquer quantidade de:
– Letras
– Dígitos
– Underscore
– Alguns caracteres de pontuação

Embora sejam aceitos dois pontos, hífens e pontos, é
recomendável evitá-los

Eles costumam ser usados em situações específicas, como
identificar namespaces, por exemplo

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 22


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

<meus_veiculos> <meus_veiculos>

<veiculo tipo="carro"> <veiculo>

<marca>Kia</marca> <tipo>carro</tipo>

<modelo>Cerato</modelo> <marca>Kia</marca>

<motor>2.0</motor> <modelo>Cerato</modelo>

</veiculo> <motor>2.0</motor>

</meus_veiculos> </veiculo>

</meus_veiculos>

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 23


Elementos x atributos

No primeiro exemplo, tipo é um atributo e, no segundo, é um
elemento

Ambos os exemplos fornecem a mesma informação

Não há regras sobre quando usar atributos ou quando usar
elementos

Atributos são úteis em HTML

Em XML, o conselho é evitá-los
– Use os elementos em seu lugar

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 24


Elementos x atributos

Os atributos são difíceis de ler e manter

Use os elementos para dados

Use atributos para informações que não são relevantes para
os dados

Para finalizar a discussão

Atributos não podem conter múltiplos valores
– Elementos podem

Atributos não podem conter estruturas de árvore
– Elementos podem

Atributos não são facilmente expansíveis
– Para alterações futuras

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 25


Validação de XML

XML com a sintaxe correta é um XML “bem formado”


Um XML “válido” é um documento:

“Bem formado”

Que também está de acordo com as regras de um:
– Document Type Definition (DTD) (define a estrutura de um
documento XML) ou
– XML Schema (alternativa suportada pela W3C baseada em XML para
o DTD)

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 26


Validadores XML

Os validadores XML verificam se os documentos escritos em
XML estão corretos.

Alguns validadores:

http://validator.w3.org/

http://w3schools.com/xml/xml_validator.asp

http://www.validome.org/xml/

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 27


Alguma dúvida? Podemos prosseguir?

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 28


Questões do curso

[RGA 2011] O HTML foi projetado para transportar dados e o
XML para exibir dados.

[RGA 2011] Não existem tags predefinidas no XML.

[RGA 2011] Um documento XML não é auto-descrito, pois
precisa-se de algum aplicativo para interpretá-lo.

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 29


Questões do curso

[RGA 2011] O HTML XML foi projetado para transportar dados
e o XML HTML para exibir dados.

Gabarito: ERRADO.

Troca de termos.

[RGA 2011] Não existem tags predefinidas no XML.

Gabarito: CERTO.

[RGA 2011] Um documento XML não é auto-descrito, pois
precisa-se de algum aplicativo para interpretá-lo.

Gabarito: ERRADO.

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 30


Questões do curso

[RGA 2011] XML é dependente de software, porém não de
hardware para transporte de informações.

[RGA 2011] Um documento XML não faz nada: é preciso
escrever um software para enviá-lo, recebê-lo ou exibi-lo.

[RGA 2011] XML é um substituto do HTML.

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 31


Questões do curso

[RGA 2011] XML é independente de software, porém não de
hardware para transporte de informações.

Gabarito: ERRADO.

[RGA 2011] Um documento XML não faz nada: é preciso
escrever um software para enviá-lo, recebê-lo ou exibi-lo.

Gabarito: CERTO.

[RGA 2011] XML não é um substituto do HTML.

Gabarito: ERRADO.

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 32


Questões do curso

[RGA 2011] Não é necessário um elemento raiz em um
documento XML.

[RGA 2011] Tags XML não são case sensitive.

[RGA 2011] A tag <concurso></Concurso> contém erro na
formação de seu nome.

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 33


Questões do curso

[RGA 2011] Não é necessário um elemento raiz em um
documento XML.

Gabarito: ERRADO.

[RGA 2011] Tags XML não são case sensitive.

Gabarito: ERRADO.

[RGA 2011] A tag <concurso></Concurso> contém erro na
formação de seu nome de sintaxe.

Gabarito: ERRADO.

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 34


Questões do curso

[RGA 2011] O elemento <mensagem> if salario < 20000
</mensagem> não contém erro de sintaxe.

[RGA 2011] O elemento <mensagem> if salario > 20000
</mensagem> não contém erro de sintaxe.

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 35


Questões do curso

[RGA 2011] O elemento <mensagem> if salario < 20000
</mensagem> não contém erro de sintaxe.

Gabarito: ERRADO.

Se colocarmos "<" dentro de um elemento XML, irá gerar um
erro porque o interpretador do documento irá encarar como o
início de um novo elemento.

[RGA 2011] O elemento <mensagem> if salario > 20000
</mensagem> não contém erro de sintaxe.

Gabarito: CERTO.

Apenas os caracteres “<”e “&” são estritamente ilegais em XML.

O “>” é legal, mas é um bom hábito de substituí-lo.

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 36


Questões do curso

[RGA 2011] Os comentários em XML são idênticos em HMTL.

[RGA 2011] O espaço em branco, assim como acontece no
HMTL, não é preservado em XML.

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 37


Questões do curso

[RGA 2011] Os comentários em XML são idênticos em HMTL.

Gabarito: CERTO.

[RGA 2011] O espaço em branco, assim como não acontece no
HMTL, não é preservado em XML.

Gabarito: ERRADO.

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 38


Questões do curso

[RGA 2011] XML armazena uma nova linha com um par de
caracteres retorno de carro (CR) e avanço de linha (LF).

[RGA 2011] Um elemento XML é tudo aquilo que está entre as
tags inicial e final, não as incluindo.

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 39


Questões do curso

[RGA 2011] XML armazena uma nova linha com um par de
caracteres retorno de carro (CR) e avanço de linha (LF).

Gabarito: ERRADO.

[RGA 2011] Um elemento XML é tudo aquilo que está entre as
tags inicial e final, não as incluindo.

Gabarito: ERRADO.

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 40


Questões do curso

[RGA 2011] O que um elemento pode conter?

[RGA 2011] A tag <123_testando></123_testando> não
contém erro na formação de seu nome.

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 41


Questões do curso

[RGA 2011] O que um elemento pode conter?

OTAM:
– Outros elementos
– Texto
– Atributos
– Uma mistura de todas as anteriores

[RGA 2011] A tag <123_testando></123_testando> não
contém erro na formação de seu nome.

Gabarito: ERRADO.

Os nomes não podem começar com um
– Número
– Caractere de pontuação

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 42


Questões do curso

[RGA 2011] A tag <xml_eh_legal></xml_eh_legal> contém
erro na formação de seu nome.

[RGA 2011] A tag <aprendendo xml></aprendendo xml> não
contém erro na formação de seu nome.

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 43


Questões do curso

[RGA 2011] A tag <xml_eh_legal></xml_eh_legal> contém
erro na formação de seu nome.

Gabarito: CERTO.

Os nomes não podem começar com as letras xml (ou XML, ou
Xml, etc).

[RGA 2011] A tag <aprendendo_xml></aprendendo_xml>
não contém erro na formação de seu nome.

Gabarito: ERRADO.

Apenas um erro:
– Os nomes não podem conter espaços.

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 44


Questões do curso

[RGA 2011] As tags <livro tipo="informatica"></livro> e
<livro><tipo>informatica</tipo></livro> fornecem
informações diferentes.

[RGA 2011] As regras para um documento XML ser bem
formatado são mais complexas do que para documentos
HTML.

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 45


Questões do curso

[RGA 2011] As tags <livro tipo="informatica"></livro> e
<livro><tipo>informatica</tipo></livro> fornecem
informações diferentes iguais.

Gabarito: ERRADO.

Ambos os exemplos fornecem a mesma informação

Não há regras sobre quando usar atributos ou quando usar
elementos

[RGA 2011] As regras para um documento XML ser bem
formatado são mais complexas simples do que para
documentos HTML.

Gabarito: ERRADO.

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 46


Regras para sintaxe de documentos XML

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 47


Regras para sintaxe de documentos XML

Todo documento XML deve ter um elemento raiz

Todos os elementos XML devem ter uma tag de fechamento

Tags XML são case sensitive

Os elementos XML devem estar devidamente aninhados

Os valores de atributos XML devem estar entre aspas

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 48


Questões do curso

[RGA 2011] O seguinte trecho de um documento XML está
correto:

<b><i>texto</b></i>

[RGA 2011] Todo documento XML válido é um documento
bem formado, mas nem todo documento XML bem formado é
um documento válido.

[RGA 2011] Os validadores XML verificam se os documentos
escritos em XML estão corretos.

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 49


Questões do curso

[RGA 2011] O seguinte trecho de um documento XML está
correto:

<b><i>texto</i></b></i>

Gabarito: ERRADO.

[RGA 2011] Todo documento XML válido é um documento
bem formado, mas nem todo documento XML bem formado é
um documento válido.

Gabarito: CERTO.

[RGA 2011] Os validadores XML verificam se os documentos
escritos em XML estão corretos.

Gabarito: CERTO.

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 50


Referências

Componentes de um XML: http://www.htmlstaff.org/ver.php?
id=441

Definição conceitual do XML:
http://www.gta.ufrj.br/grad/00_1/miguel/link5.htm

Guia prático visual XML – Kevin Howard Goldberg – Editora
Alta Books

Introdução ao XML – Helder Rocha:
http://www.argonavis.com.br/palestras/xml/index.html

XML Tutorial da W3 Schools:
http://w3schools.com/xml/default.asp

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoaraujo@gmail.com 51

Você também pode gostar