Tema 02
Sintaxe XML
Tema 02
Sintaxe XML
Autoria: Robert Siqueira
Como citar esse documento:
SIQUEIRA, Robert. Linguagem para Organização e Transferência de Dados para Web: Sintaxe XML. Caderno de Atividades. Anhanguera Publica-
ções: Valinhos, 2014.
Índice
CONVITEÀLEITURA PORDENTRODOTEMA
Pág. 3 Pág. 3
ACOMPANHENAWEB
Pág. 21 Pág. 22
Pág. 24 Pág. 25
Pág. 25 Pág. 26
© 2014 Anhanguera Educacional. Proibida a reprodução final ou parcial por qualquer meio de impressão, em forma idêntica, resumida ou modificada em língua
portuguesa ou qualquer outro idioma.
CONVITEÀLEITURA
No tema anterior, apresentamos a organização responsável pela maioria dos padrões de tecnologias existentes na
Web. Nele, você teve o primeiro contato com um arquivo XML, o formato e os cenários em que ele pode ser utilizado.
Também aprendeu que é possível formatar um arquivo XML para exibição em diversas mídias, sejam impressas ou
visuais. Neste tema, nós vamos aprofundar o tratamento das regras e sintaxes usadas para escrever um arquivo XML
completo. Ao final dele, você será capaz de escrever um arquivo totalmente compatível com qualquer aplicativo leitor de
XML e, para que isso aconteça, existem regras que necessitam ser seguidas para permitir o arquivo e garantir que ele
seja o mais fiel possível às especificações elaboradas pela W3C.
PORDENTRODOTEMA
Sintaxe XML
Até esse ponto, você aprendeu para que serve um XML e, basicamente, como ele deve ser escrito. É importante
lembrar que a escrita do conteúdo de um arquivo XML não possui quaisquer restrições, isto é, embora um XML não
seja feito exatamente para leigos, afinal é um arquivo não muito trivial para leitura ou para propósitos de apresentação
de conteúdo, é importante que você elabore um conteúdo que possa ser lido e compreendido por qualquer pessoa.
Lembra-se do nosso exemplo de um arquivo XML para Notas Fiscais Eletrônicas? O conteúdo do exemplo descreve
uma NF-e e qualquer pessoa com um conhecimento básico de nota fiscal saberá interpretá-lo. Contudo, a especificação
XML determina algumas regras para a escrita do arquivo. Seguindo essas regras, você tem um arquivo conhecido como
well-formed, ou seja, um arquivo escrito corretamente.
É importante que você siga essas regras básicas, pois isso garantirá que qualquer aplicativo interpretador de XML
consiga ler seu arquivo. Para que você consiga seguir os exemplos, é necessário que seja utilizado um editor de XML
ou qualquer outro que você conheça. Lembre-se apenas de salvar o arquivo com a extensão .xml.
3
PORDENTRODOTEMA
Figura 2.1 Arquivo XML referente a um cadastro de veículos 1.
Todo arquivo XML deve começar com o elemento <?xml version=”1.0” ?>. Este elemento indica qual a versão do XML
está sendo utilizada. Atualmente, já existe a versão 1.1 com algumas diferenças, listadas no Quadro 2.1, contudo, todos
os aplicativos conseguem interpretar as duas versões.
4
PORDENTRODOTEMA
Quadro 2.1 Diferenças entre versões 1.0 e 1.1 do XML.
XML 1.1 é compatível com o XML 1.0 não é compatível com o padrão
padrão Unicode. Unicode.
XML 1.1 reconhece caracteres
XML 1.0 não reconhece.
no final da linha.
XML 1.1 possui um conjunto
XML 1.0 possui controle de ambiguidade,
de caracteres de controle para
porém, com pouco controle.
permitir caracteres ambíguos.
Fonte: Elaborada pelo autor
A tag <veiculos> é chamada de root element ou elemento raíz. Veja que, através deste elemento, é possível entender
que o documento se trata de um cadastro de veículos. Todo documento possui apenas um elemento deste tipo, sendo
assim, todos os elementos abaixo dele são considerados elementos filho. A tag </veiculos> identifica a finalização de
todo o conteúdo de <veiculos>, portanto, para o fechamento de uma tag é necessário o uso da barra </>.
A tag <veiculos> possui um elemento filho chamado <veiculo> que também possui outros elementos filho que
descrevem várias informações do veículo. Observe que todas as tags do documento possuem abertura e fechamento.
Essa estrutura é extremamente importante, pois permite aos aplicativos que vão interpretar seu XML saber onde começa
e onde termina suas tags. O texto que vem entre as tags de abertura e fechamento é o conteúdo. Lembre-se: após a
abertura de uma tag você pode ter um conteúdo ou então outras tags filhas. Em nosso exemplo as tags <veiculo> e
<acessorios> possuem diversas tags filhas e a tag <modelo> possui apenas um conteúdo. A Figura 2.2 apresenta
outro exemplo de XML.
5
PORDENTRODOTEMA
Figura 2.2 Exemplo de arquivo XML.
<voos>
O exemplo da Figura 2.2 ilustra o cenário de uma lista de voos de várias companhias aéreas. O conteúdo deste XML
pode ser interpretado da seguinte forma:
• <?xml version=”1.0” ?>: tag responsável por identificar que este arquivo é um XML e que a versão é a 1.0.
• <voos>: tag que possuirá um conjunto de voos, sendo que cada voo será identificado pela tag <voo>.
6
PORDENTRODOTEMA
• <voo>: tag que identifica as informações do voo.
Escrever um XML é nada mais que estruturar tags coerentemente. Vejamos um exemplo de XML mal formatado na
Figura 2.3.
</livros>
Consegue identificar o problema com o XML da Figura 2.3? A tag <titulo> poderia conter uma tag ou um conteúdo, porém,
ela possui os dois elementos. A tag <autor> possui apenas conteúdo, porém, não está sendo fechada coerentemente,
isto é, para que o XML fosse considerado correto, ele deveria estar no formato:
7
PORDENTRODOTEMA
<titulo>Aprenda XML em 24 horas</titulo>
<autor>Robert Siqueira</autor>
</livros>
Lembre-se sempre de seguir a ordem de abertura e fechamento das tags. Se você abriu a tag <livro> e depois a
<titulo>, é necessário fechar a <titulo> antes da <livro>. Agora que você entendeu como estruturar as tags de um XML,
vamos às próximas regras e características especiais.
Observe a Figura 2.5 e tente perceber o que este XML possui de diferente do anterior.
8
PORDENTRODOTEMA
Figura 2.5 Exemplo de XML com atributo em tag.
</livros>
Conseguiu notar a diferença? O XML da Figura 2.5 possui duas novidades em sua estrutura. A primeira é que a tag
<livro paginas=”200”> possui o atributo paginas com um valor de 200.
O uso de atributos em tags é recomendável nos casos em que você precisa especificar algum detalhe para a tag em
si. Neste XML, era necessário especificar que o livro possui 200 páginas, então se optou por utilizar um atributo. É
importante notar que todo valor de um atributo deverá vir entre aspas simples ou duplas. A segunda novidade é a tag
</isbn>. Observe que essa tag não possui uma tag de abertura e tão pouco um conteúdo. Isso ocorre porque nosso
cadastro de livros pode ter livros que não tenham um ISBN e, nesse caso, é permitido fazer a representação com uma
tag vazia. Podemos dizer que essa é a forma simplificada de <isbn></isbn>, que significa que a tag existe, mas não
possui conteúdo. Outro ponto importante é que é possível ter uma tag com atributos e sem qualquer conteúdo. Veja o
exemplo da Figura 2.6.
9
PORDENTRODOTEMA
Figura 2.6 Exemplo de XML com atributo e sem conteúdo.
</personagens >
Observe no exemplo da Figura 2.6 que todas as tags <personagem> possuem somente atributos. Veja um exemplo
mais completo com atributos e conteúdos associados na Figura 2.7.
10
PORDENTRODOTEMA
Figura 2.7 Exemplo de XML com atributos e conteúdo.
11
PORDENTRODOTEMA
A Figura 2.7 possui um exemplo de conteúdo XML referente a um conjunto de computadores e cada um deles possui
características diferentes. Vamos analisar esse conteúdo. A tag <computadores> é o elemento raíz do XML e possui um
conjunto de tags <computador>. Cada <computador> possui um código e este está sendo representado pelo atributo
código=””. Dentro de <computador> temos as tags <monitor> e <acessorios>. Cada monitor pode ter uma marca
distinta, portanto, existe o atributo marca=”” para cada tag <monitor>. O mesmo ocorre para as tags <tamanhoTela> e
<processador>. Em <tamanhoTela>, o atributo medida identifica que tipo de medida o conteúdo contempla por esta
tag. Poderíamos ter a medida em centímetros, por exemplo. Em <processador>, assim como em <monitor>, temos um
atributo para identificar a marca do componente. O último ponto importante sobre esse exemplo é a tag <acessorios>.
Esta tag possui como conteúdo um conjunto de acessórios que o computador tem. Observe que, no exemplo, nos
computadores de código 9000 e 9001, esta tag está representada como </acessórios>. Esta tag não possui conteúdo
ou tags filhas, portanto, qualquer aplicativo responsável por ler esse XML poderia considerar, por exemplo, que esse
computador não tem acessórios.
2. Toda tag deve ser aberta e fechada, com exceção das tags vazias como </isbn>.
3. As tags devem ser aninhadas corretamente, fechando as tags mais internas primeiro.
O conteúdo de um XML é case-sensitive, isto é, todo interpretador diferencia letras maiúsculas e minúsculas. Veja
o exemplo da Figura 2.8.
12
PORDENTRODOTEMA
Figura 2.8 Exemplo de XML com palavras maiúsculas e minúsculas.
</personagens >
Fonte: Elaborada pelo autor
Observe no exemplo que as tags <PERSONAGEM> e <personagem> possuem exatamente o mesmo conteúdo,
porém, para um interpretador XML as tags são completamente diferentes. Normalmente, a menos que haja realmente
essa necessidade, você deve evitar esse tipo de comportamento, pois torna o conteúdo XML complexo para leitura e
interpretação, além disso, aumenta a possibilidade de erros no aplicativo que fará a leitura deste conteúdo. Vejamos
mais um exemplo desse comportamento na Figura 2.9.
13
PORDENTRODOTEMA
Figura 2.9 Exemplo de XML com tags de mesmo nome.
A Figura 2.9 apresenta um exemplo de XML com uma lista de usuários de um sistema hipotético. A tag <usuarios>
possui um conjunto de usuários e cada um é identificado por <USUARIO> ou <usuario>. Como visto anteriormente,
o interpretador diferencia maiúscula de minúscula, portanto, essas duas tags são consideradas diferentes. Para este
cenário, ter a tag com mesmo nome não é muito indicado, pois cada uma contém um conjunto de informações diferentes. A
tag <usuario> possui informações da conta do usuário para acesso ao sistema e a tag <USUARIO>, possui informações
cadastrais do usuário.
Caracteres Especiais
Ao escrever um XML é necessário, às vezes, o uso de caracteres especiais como > (sinal de maior) ou < (sinal
de menor). Neste caso, como fazer com que o interpretador não pense que é a abertura ou fechamento de uma tag?
Existem algumas entidades pré-definidas para esse propósito. A Figura 2.10 apresenta algumas delas.
14
PORDENTRODOTEMA
Figura 2.10 Exemplo de XML com entidades pré-definidas.
</matematica >
A entidade &g; será interpretada como o sinal maior “>” e < como o sinal menor “<”. A Figura 2.11 apresenta o resultado
deste XML em um browser.
15
PORDENTRODOTEMA
Existem outras entidades como & (& comercial), ' (apóstrofo) e " (aspas duplas) que devem ser utilizadas
no XML para não ocorrer problemas de interpretação durante o processo de análise do XML. A Figura 2.12 apresenta
estes outros exemplos de entidades pré-definidas.
16
PORDENTRODOTEMA
Figura 2.13 Resultado do conteúdo XML com entidades pré-definidas.
Manter seu XML documentado é uma forma prática de permitir que outras pessoas entendam o que você está
fazendo. Para isso, existe uma sintaxe especial: <!—comentário XML -->. Observe o exemplo da Figura 2.14.
17
PORDENTRODOTEMA
Figura 2.14 Exemplo de comentário em XML.
</empresasTI >
O comentário também possui abertura <!-- e fechamento -->, um pouco diferente das tags tradicionais.
Para visualizar seu XML, caso você não esteja fazendo uso de algum editor específico para XML, é possível abrir
seu arquivo em um browser. A maioria dos browsers (Firefox, Google Chrome, Internet Explorer, Safari) consegue
interpretar e analisar arquivos XML. Portanto, abrindo seu arquivo em qualquer um destes browsers, será possível ver
toda a árvore do conteúdo XML. O exemplo da Figura 2.15 contempla todos os elementos estudados até o momento.
18
PORDENTRODOTEMA
Figura 2.15 Exemplo com todos os elementos XML.
<?xml version=”1.0” ?>
<computadores>
<computador codigo=”9000”>
<monitor marca=”AOC”>
<tamanhoTela medida=”polegada”>22"</tamanhoTela>
<tipoTela>LCD</tipoTela>
</monitor>
<processador marca=”Intel”>2.5G</processador>
</acessorios>
</computador>
<computador codigo=”9001”>
<monitor marca=”CCE”>
<tamanhoTela medida=”polegada”>27"</tamanhoTela>
<tipoTela>LED</tipoTela>
<processador marca=”AMD”>2.7G</processador>
</monitor>
</acessorios>
</computador>
<computador codigo=”9002”>
<monitor marca=”AT"T”>
<tamanhoTela medida=”polegada”>30"</tamanhoTela>
<tipoTela>LCD</tipoTela>
<processador marca=”AMD”>3.3G</processador>
</monitor>
<acessorios>
<mouse>
<tipo>Prova d' agua</tipo>
</mouse>
<teclado>SIM</teclado>
</acessorios>
</computador>
<computadores>
19
PORDENTRODOTEMA
A Figura 2.16 apresenta o resultado do conteúdo do XML apresentado na Figura 2.15.
20
ACOMPANHENAWEB
W3 Schools
• Acesse o site W3 Schools para conhecer os detalhes sobre as regras para estruturar um XML.
Este site também possui um editor online que você pode usar para testar os exemplos.
Disponível em: <http://www.w3schools.com/xml/default.asp>. Acesso em: 15 set. 2014.
• Assista ao vídeo Tutorial XML Teoria e Prática, um minicurso sobre XML que aborda alguns
pontos que apresentamos neste tema.
Disponível em: <http://www.youtube.com/watch?v=I-me4ipqpxY>. Acesso em: 15 set. 2014.
Tempo: 10:09.
Tutorial de XML
• Para saber como elaborar seu XML, acesse o Tutorial de XML no site do Laboratório Multimídia
de Materiais Didáticos Aplicados à Música.
Disponível em: <http://www.clem.ufba.br/tuts/xml/default.htm>. Acesso em: 15 set. 2014.
• Para aprender um pouco mais sobre as diferenças entre XML e HTML e conhecer alguns
cenários de uso do XML, acesse o trabalho de Miguel Benedito Furtado Jr.
Disponível em: <http://www.gta.ufrj.br/grad/00_1/miguel/>. Acesso em: 15 set. 2014.
21
AGORAÉASUAVEZ
Instruções:
Agora, chegou a sua vez de exercitar seu aprendizado. A seguir, você encontrará algumas questões de múltipla
escolha e dissertativas. Leia cuidadosamente os enunciados e atente-se para o que está sendo pedido.
Questão 1
Um arquivo XML, dependendo do cenário, pode vir a se tornar bem extenso devido ao número de tags existentes. Muitas em-
presas de tecnologia possuem equipes de desenvolvimento em que várias pessoas podem fazer a manutenção deste arquivo.
Explique de que forma você poderia tornar fácil a leitura deste arquivo por todas as pessoas envolvidas e até mesmo por novas
pessoas que se integrem à equipe.
Questão 2
a) XML é case-sensitive.
22
AGORAÉASUAVEZ
Questão 3
a) <?xml version=”1.0”?>.
b) <version=”1.0”></version>.
c) </version=”1.0”>.
d) <xml version=”1.0”/>.
e) <?xml version=”1.0”?>.
Questão 4
O departamento de TI de um empresa está com um arquivo XML que não está sendo interpretado corretamente, pois não está
devidamente estruturado. Altere o XML abaixo para que ele se torne um arquivo XML well-formed.
<produtosEmEstoque>
<produto codigo=”200>
<quantidade>15000
<precoUnitario>10,00</precoUnitario>
</quantidade>
</produto>
</ produtosEmEstoque >
23
AGORAÉASUAVEZ
Questão 5
Uma locadora precisa criar um XML com a relação de DVDs contendo as seguintes informações: nome do filme, ano, quantidade
de DVDs existentes e valor de locação. Crie um XML well-formed que contenha essas informações. Seu XML deve ter ao menos
um atributo e uma linha de comentário.
FINALIZANDO
Neste tema, você aprendeu como estruturar um XML para que ele seja interpretado por qualquer aplicativo leitor
de XML. Você conheceu as principais regras que devem ser aplicadas na elaboração de um XML, como a diferença
entre palavras maiúsculas e minúsculas, forma de abertura e fechamento de tags, uso de atributos em tags, criação de
comentários, uso de entidades pré-definidas, etc. A partir deste momento, é esperado que você saiba elaborar um XML
completo, seguindo todas as especificações. É importante que você tenha aprendido todos esses conceitos, pois eles
serão utilizados nos próximos temas desta disciplina.
24
REFERÊNCIAS
ENQUAD. Tutorial XML Teoria e Prática Disponível em: <http://www.youtube.com/watch?v=I-me4ipqpxY>. Acesso em: 15 set.
2014.
GOLDBERG, Kevin Howard. Guia prático visual XML. Rio de Janeiro, 2009.
LABORATÓRIO MULTIMÍDIA DE MATERIAIS DIDÁTICOS APLICADOS À MÚSICA. Tutorial de XML. Disponível em: <http://
www.clem.ufba.br/tuts/xml/default.htm>. Acesso em: 15 set. 2014.
FURTADO JR., Miguel Benedito. XML – Extensible Markup Language. Trabalho da disciplina Rede de Computadores I da
Universidade Federal do Rio de Janeiro. Disponível em: <http://www.gta.ufrj.br/grad/00_1/miguel/>. Acesso em: 15 set. 2014.
W3SCHOOLS.COM. Disponível em: <http://www.w3schools.com>. Acesso em: 01 set. 2014.
GLOSSÁRIO
Tags: são elementos do XML com abertura <> e fechamento </>.
Root element: elemento raiz do documento. Este elemento deve ser único no XML.
25
GABARITO
Questão 1
Resposta: O uso de comentários em arquivos XML permite explicar o objetivo de cada tag, possibilitando que qualquer
pessoa leia e entenda exatamente do que se trata.
Questão 2
Resposta: As alternativas corretas são (a) e (c). O xml é case-sensitive, pois diferencia palavras maiúsculas e minúsculas,
e todo conteúdo deve estar entre aspas simples ou duplas.
Questão 3
Resposta: Alternativa A.
<?xml version=”1.0”?>. A alternativa (a) é a correta, uma vez que a única forma de se identificar a versão é através da
expressão <?xml version=”1.0”?>.
Questão 4
<produtosEmEstoque>
<produto codigo=”200”>
<quantidade>15000</quantidade>
<precoUnitario>10,00</precoUnitario>
</produto>
26
Questão 5
Resposta: É esperado que o resultado seja diferente deste apresentado no que se refere a comentários e a atributos.
<xml version = ”1.0” ?>
<filmes>
<dvd ano=”1980”>
<quantidade>1200</quantidade>
</dvd>
</filmes>
27