Buscar

Aula 06 (6)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 64 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 64 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 64 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Livro Eletrônico
Aula 06
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB
(Analista TI) - Pós-Edital
Judah Reis
 
 
 
 
 
 1 
63 
Sumário 
1 XML ................................................................................................................................................. 2 
1.1 INTRODUÇÃO .......................................................................................................................... 2 
1.2 EXERCÍCIOS COMENTADOS: XML .......................................................................................... 16 
2 XSLT ............................................................................................................................................... 27 
2.1 INTRODUÇÃO ........................................................................................................................ 27 
2.2 LISTA DE EXERCÍCIOS: XSLT ................................................................................................... 30 
3 XML SCHEMA ................................................................................................................................ 37 
3.1 QUESTÕES COMENTADAS: XSD ............................................................................................ 40 
4 LISTA DE EXERCÍCIOS ..................................................................................................................... 49 
4.1 LISTA DE EXERCÍCIOS: XML.................................................................................................... 49 
4.2 LISTA DE EXERCÍCIOS: XSLT ................................................................................................... 55 
4.3 LISTA DE QUESTÕES: XSD ...................................................................................................... 59 
5 GABARITOS .................................................................................................................................... 63 
5.1 GABARITO: XML .................................................................................................................... 63 
5.2 GABARITO: XSLT .................................................................................................................... 63 
5.3 GABARITO: XSD ..................................................................................................................... 63 
 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 06
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 2 
63 
1 XML 
1.1 INTRODUÇÃO 
O eXtensible Markup Language (XML) é uma metalinguagem de marcação, 
especificada pela W3C, que define um conjunto de regras para codificar 
documentos em um formato que seja legível tanto por humanos quanto por 
máquinas. Galera, já vi muita gente errando questão de prova por confundir HTML 
com XML! Que tal diferenciá-las? 
 
Bem, o propósito principal do primeiro é exibir dados com foco em sua aparência. 
Já o segundo busca transportar e armazenar dados, além de ser capaz de 
desenvolver e definir outras linguagens1. Portanto – grosso modo – HTML serve para 
deixar a página bonita e organizada, e XML serve para transportar e armazenar 
dados! 
 
Existe outra diferença extremamente importante! HTML é uma linguagem de 
marcação e XML é uma metalinguagem de marcação! Professor, o que quer dizer 
marcação? Quer dizer que ela possui tags capazes de marcar início e fim de 
instruções, além de definir seus significados. E qual a diferença entre linguagem e 
metalinguagem de marcação? 
 
HTML possui tags predefinidas por seus criadores com o objetivo de fazer a 
marcação de cada parte do documento. XML não possui tags predefinidas, i.e., você 
cria suas próprias tags e o resultado disso é uma nova linguagem de marcação. 
Portanto, XML não é uma linguagem em si, mas uma metalinguagem, i.e., uma 
linguagem usada para criar outras linguagens. Bacana, né?! 
 
Outra característica é que o XML é capaz de prover o intercâmbio de documentos 
através da web, além de suportar uma grande gama de aplicações, permitindo a 
definição de elementos pelo usuário ou aplicação para estruturar o documento. 
Curiosidade: XML depende de alguma plataforma? Não, ela é completamente 
independente de plataforma – não caiam nessa pegadinha! 
 
Algumas questões dizem que XML é uma evolução, uma melhoria ou um avanço 
sobre o HTML! Isso está correto, pessoal? Claro que não! Não é evolução coisa 
nenhuma, são tecnologias complementares. Outras questões dizem que XML é uma 
linguagem de marcação! Ahh, professor... nessa pegadinha eu não caio – é claro que 
está errado; XML é uma metalinguagem de marcação! 
 
1 WSDL é um exemplo de linguagem baseada em XML. 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 06
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 3 
63 
 
Calma aí, pessoal! Vocês não devem brigar com a banca, porque é provável que 
vocês perderão! A não ser que o foco da questão seja na dualidade entre linguagem 
e metalinguagem, aceitem como uma linguagem, porque a banca não voltará atrás! 
Continuando, XML permite busca e processamento de informações de maneira 
otimizada, inteligente e simplificada – guardem essa informação! 
 
Vamos definir algumas coisas importantes: 
 
▪ Elementos: é tudo que se encontra entre a tag inicial e final, incluindo a própria 
tag do elemento. Pode conter outros elementos, texto, atributos, etc. Além disso, 
pode ser vazio e escrito de duas maneiras diferentes: 
 
 
 
▪ Atributos: são informações adicionais sobre um elemento. No exemplo abaixo, 
o tipo do arquivo é irrelevante para o dado, mas pode ser importante para o 
software que deseja manipular o elemento. Deve vir com aspas ou apóstrofos. 
 
 
 
▪ Namespaces: eventualmente ocorrem conflitos com nomes iguais de elementos 
de arquivos diferentes (Ex: XML e HTML). Para tal, utiliza-se um prefixo para 
diferenciar os elementos, como mostra a imagem abaixo (h:table ≠ f:table). 
 
 
 
Ao utilizar um prefixo, um namespace deve ser definido para esse prefixo. Ele é 
definido pelo atributo xmlns na tag inicial de um elemento. A declaração do 
namespace segue a sintaxe mostrada abaixo (xmlns:prefix=”URI”). 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 06
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 4 
63 
 
 
Observem que o atributo xmlns na tag <table> dá aos prefixos h: e f: um namespace 
qualificado. Quando um namespace é definido para um elemento, todos os 
elementos filhos com o mesmo prefixo são associados àquele namespace. Pode-se 
declarar os namespaces nos elementos em que são utilizados (como do exemplo 
acima) ou no elemento-raiz do documento (como do exemplo abaixo): 
 
 
 
Professor, espera um pouco! Bagunçou tudo na minha cabeça agora! O que é esse 
site aí? Calma, galera! Isso é um URI (Uniform Resource Identifier), i.e., um 
identificador único. É comum a utilização dele para evitar de ter dois identificadores 
de namespace com o mesmo nome, no entanto é possível colocar qualquer 
identificador – você pode colocar seu CPF por exemplo! 
 
Observem agora no exemplo acima: existem dois namespaces relacionados aos dois 
prefixos. Dessa forma, é possível usar o elemento <table> do HTML com o elemento 
<table> do XML em um único documento sem dar conflitos! O namespace 
referente ao prefixo h: está relacionado aos elementos do HTML e o namespace 
referente ao prefixo f: está relacionado aos elementos do XML. Bacana? 
 
 
Inserir aqui o nome do Cursowww.estrategiaconcursos.com.br
Judah Reis
Aula 06
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 5 
63 
XML apresenta diversas características importantes, tais como: é uma 
metalinguagem extremamente extensível; é capaz de separar dados da aparência; 
simplifica o compartilhamento de dados; simplifica o transporte de dados; simplifica 
asw mudanças de plataforma; torna os dados mais disponíveis; auxilia a criação de 
novas linguagens; entre outras vantagens. 
 
 
 
O XML não faz nada! Como assim? Ora, ele simplesmente estrutura, armazena e 
transporta informações. A imagem acima mostra um exemplo de um recado de 
uma pessoa chamada Tove para Jani, armazenada como um XML! O recado é 
autodescritivo2: tem um destinatário, um remetente e um corpo, mas não faz nada, 
i.e., alguém deve escrever um software para enviá-lo, recebê-lo ou exibi-lo. 
 
 
 
A primeira linha contém a Declaração XML! O que é isso, professor? É como um 
cabeçalho que apresenta, dentro outras informações, a versão do XML e o tipo de 
codificação. A linha seguinte descreve o elemento-raiz do documento (“<note>”): 
 
 
 
As quatro linhas seguintes descrevem elementos-filhos do elemento-raiz: 
 
 
 
Finalmente, a última linha define o fim do elemento-raiz: 
 
 
 
Por que o primeiro elemento é chamado elemento-raiz? Ora, porque ele é a raiz de 
uma árvore. O elemento-raiz descende até suas folhas em uma hierarquia! 
Professor, o que é um elemento? É tudo que está entre a tag de início e final, incluindo 
 
2 Isso significa que suas tags, por si só, fornecem uma ideia do conteúdo do documento. 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 06
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 6 
63 
estas! Professor, não entendi essa parte da árvore! Então vamos ver seu desenho – 
o código acima pode ser transformado na árvore abaixo: 
 
 
 
Agora vamos mudar um pouco o assunto: diferença entre Documento XML Bem 
Formado e Documento XML Válido! Um Documento XML bem formado é aquele 
que obedece suas regras de construção! Um documento que não siga 
categoricamente essas regras não pode sequer ser chamado de Documento XML. 
E que regras são essas? Existem oito regras principais, bastante intuitivas: 
 
1. Documentos XML devem possuir um único elemento-raiz: 
 
 
ERRADO: POSSUI DUAS RAÍZES 
 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 06
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 7 
63 
 
CORRETO: POSSUI UMA RAIZ 
 
2. Todos elementos devem conter uma tag de fechamento: 
 
Em um Documento HTML, é possível ter elementos sem tag de fechamento: 
 
 
ERRADO: FALTA FECHAR <NOME> 
 
 
CORRETO: TODAS AS TAGS FECHADAS 
 
Professor, espera um pouco! Aquela primeira tag não foi fechada! É verdade, no 
entanto considera-se que a declaração XML (ou cabeçalho XML) não faz parte do 
Documento XML. Captaram minha mensagem? Bacana! 
 
3. Elementos devem estar corretamente aninhados: 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 06
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 8 
63 
 
ERRADO: TAGS FECHADAS NA ORDEM INCORRETA 
 
 
CORRETO: TAGS FECHADAS NA ORDEM CORRETA 
 
Professor, o que você quer dizer exatamente com elementos corretamente 
aninhados? Quero dizer que as tags fecham em ordem oposta a ordem em que 
foram abertas, i.e., a primeira tag aberta deve ser a última tag fechada. 
 
4. Atributos devem possuir valor entre aspas simples ou duplas: 
 
Todos os atributos devem possuir valores. Além disso, esses valores devem vir entre 
aspas simples ou duplas. 
 
 
 
 
ERRADO: ATRIBUTO <MERCOSUL> NÃO POSSUI VALOR 
 
 
CORRETO: ATRIBUTO <MERCOSUL> POSSUI VALOR E ENTRE ASPAS 
 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 06
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 9 
63 
5. Nomes de tags e atributos são Case-Sensitive: 
 
 
ERRADO: <NOME> É DIFERENTE DE <NOME> 
 
 
CORRETO: <NOME> É IGUAL A <NOME> 
 
6. Caracteres especiais 
 
Alguns caracteres possuem significado especial em XML. Por exemplo, o caractere 
“<” dentro de um elemento irá gerar um erro, porque o parser da linguagem 
interpretará o caractere como o início de um novo elemento. Para evitar esse erro, 
deve-se substituir o caractere por uma referência de entidade, como mostram as 
imagens abaixo: 
 
 
ERRADO: CONTÉM ELEMENTO & 
 
 
CORRETO: CONTÉM O ELEMENTO &AMP; 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 06
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 10 
63 
 
 
7. Atributos não podem se repetir dentro de um elemento: 
 
Dentro de um mesmo elemento, não é permitido inserir dois elementos com o 
mesmo nome. Simples, não? 
 
 
ERRADO: ATRIBUTOS COM O MESMO NOME 
 
 
CORRETO: ATRIBUTOS COM NOMES DIFERENTES 
 
 
 
8. Atributos devem seguir regras de nomenclatura: 
 
Nomes de tags não podem conter espaços em branco nem os caracteres 
!"#$%&'()*+,/;<=>?@[\]^`{|}~. Além disso, não podem começar com um número, 
ponto ou hífen. 
 
 
ERRADO: ATRIBUTO COMEÇA COM NÚMERO 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 06
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 11 
63 
 
CORRETO: ATRIBUTO COM NOMENCLATURA PERFEITA 
 
Galera, nem todo Documento XML bem formado é válido! Isso ocorre porque, para 
que ele seja válido, ele deve ser consistente com seu esquema. Como é, professor? 
Pois é, um esquema é um modelo que descreve como devem ser os elementos, 
atributos, dados, etc. Um Documento XML é validado a partir do momento que ele 
obedece às regras de seu esquema. 
 
Vamos abstrair um pouco? Imaginem o seguinte: eu quero construir um carro! 
Portanto, para que seja um carro bem formado, é preciso que tenha quatro rodas, 
um único volante, um sistema elétrico e hidráulico, entre outras regras ou 
características! Qualquer veículo que contenha essas características (entre outras) 
será considerado um carro bem formado. 
 
Mas eu não quero qualquer carro... eu 
quero uma Ferrari Califórnia! Logo, 
para que esse carro seja validado 
como uma Ferrari Califórnia, é preciso 
que tenha um motor 3.9L de 560 cv, 
torque de 77kgfm, 8 cilindros, 
suspensão esportiva, design como o 
da imagem ao lado! Qualquer veículo 
que contenha essas características, e 
que seja um carro bem formado, será considerado um carro válido. 
 
Ora, percebam uma coisa importante: nem todo carro é uma Ferrari Califórnia, no 
entanto toda Ferrari Califórnia é um carro. Colocando de outra maneira: nem todo 
Documento XML bem formado é válido, todavia todo Documento XML válido é 
necessariamente bem formado! Legal, não?! Agora vamos falar um pouco mais 
sobre esse tal de esquema! 
 
Antes de tudo: é obrigatória a utilização desse esquema? Não! Em geral, quando se 
trabalha com documentos pequenos ou se deseja apenas realizar alguns testes, criar 
esquemas pode ser uma perda de tempo. Caso contrário, ele serve para facilitar a 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula06
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 12 
63 
vida do desenvolvedor, ajuda a padronizar documentos para diversos usuários, 
auxilia o compartilhamento, e fornece uma boa referência para outros. 
 
Existem dois tipos principais de Arquivos de Definição: DTD e XSD! Um Documento 
XML válido é um Documento XML bem-formado, que também segue as regras de 
um DTD (Document Type Definition)! Arquivos de Definição são obrigatórios? Não! 
São declarações opcionais que informam quais tags são válidas no Documento XML 
e como elas devem ser estruturadas. Podemos ver um exemplo abaixo: 
 
 
 
O Documento XML acima apresenta – em vermelho – uma Declaração DOCTYPE. 
O que é isso, professor? Cara, essa declaração é uma referência a um Arquivo DTD 
externo. O conteúdo do Arquivo DTD é apresentado abaixo: 
 
 
 
O propósito de um Arquivo DTD é definir uma estrutura de um Documento XML. 
Ele define a estrutura com uma lista de elementos legais. A interpretação do Arquivo 
DTD ocorre da seguinte maneira: 
 
 
 
 
 
 
 
 
Pessoal! O DTD é mais antigo, já está em desuso há bastante tempo e é provável 
que nem caia em prova. Já o XSD (XML Schema Document): 
 
▪ suporta a criação de namespaces; 
▪ !DOCTYPE note define que note é o elemento-raiz 
▪ !ELEMENT note define que note contém quatro elementos 
▪ !ELEMENT to define que to é do tipo #PCDATA 
▪ !ELEMENT from define que from é do tipo #PCDATA 
▪ !ELEMENT heading define que heading é do tipo #PCDATA 
▪ !ELEMENT body define que body é do tipo #PCDATA 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 06
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 13 
63 
▪ suporta a definição de novos tipos; 
▪ suporta a definição de restrições; 
▪ suporta a conversão de dados; 
▪ permite manipular schemas com DOM; 
▪ permite utilizar o parser do XML; 
▪ permite utilizar o editor XML; 
▪ é escrito em XML (não precisa aprender outra linguagem); 
▪ é bastante extensível por adições; 
 
 
 
 
 
 
 
 
 
 
Por fim, vamos falar sobre o Document Object Model (DOM). O que é isso, professor? 
É a especificação de uma interface independente de linguagem de programação e 
plataforma que permite acessar e alterar dinamicamente a estrutura, conteúdo e 
estilo de documentos eletrônicos, permitindo que ele seja mais tarde processado e 
os resultados desse processamento, incorporados de volta no próprio documento. 
 
O DOM representa como as marcações em HTML, XHTML e XML são organizadas 
e lidas pelo navegador que você usa. Uma vez indexadas, estas marcações se 
transformam em elementos de uma árvore em que se pode manipular via API – que 
é o que se faz quando usamos programas ou scripts para alterar funcionalidades de 
uma página: conteúdo, estrutura ou folha de estilo. 
 
Calma, professor! Viajei agora, explica de novo? Vamos lá! Vocês sabem que 
linguagens de script (Ex: Javascript) conseguem manipular dinamicamente a 
estrutura de uma página. Ela faz isso por meio do DOM – que oferece uma maneira 
▪ <xs:element name=”note”> define um elemento chamado “note”; 
▪ <xs:complexType> “note” é um elemento do tipo complexo; 
▪ <xs:sequence> o tipo complexo é uma sequência de elementos; 
▪ <xs:element name=”to” type=”xs:string”> o elemento é uma string; 
▪ <xs:element name=”from” type=”xs:string”> o elemento é uma string; 
▪ <xs:element name=”heading” type=”xs:string”> o elemento é uma string; 
▪ <xs:element name=”body” type=”xs:string”> o elemento é uma string; 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 06
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 14 
63 
padronizada de se acessar elementos de um documento e manipulá-los 
separadamente. 
 
O Javascript por si só não tem capacidade de acessar elementos específicos de um 
documento de forma padronizada! E como o DOM permite isso? Por meio de uma 
Árvore DOM! Essa árvore é composta por nós que contêm elementos, textos, 
atributos, etc. Galera, o grande truque do DOM é que ele permite acessar facilmente 
elementos de uma página web. A imagem abaixo apresenta uma Árvore DOM: 
 
 
 
 
Atualmente, os Analisadores XML estão divididos de acordo com a abordagem que 
eles utilizam para processar o documento. Há uma abordagem hierárquica (DOM) 
e uma abordagem orientada a eventos (SAX). O Simple API for XML é a principal 
tecnologia quando se fala em leitura de dados por meio de eventos de um 
Documento XML. 
 
DOM opera sobre o documento como um todo, já o SAX opera sobre cada parte 
do documento sequencialmente. O SAX desencadeia eventos durante a análise do 
documento XML. Um aplicativo utilizando SAX geralmente implementa 
gerenciadores de eventos, permitindo que ele realize operações de acordo com o 
tipo de elemento encontrado. Vejamos um exemplo de documento XML: 
 
<pessoa> 
<sobrenome>Pereira</sobrenome> 
<nome>Antonio</nome> 
</pessoa> 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 06
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 15 
63 
Uma interface de eventos, como o API SAX gera eventos a partir da leitura do 
documento acima. Os eventos gerados serão: 
 
start document 
start element: pessoa 
start element: sobrenome 
characters: Pereira 
end element: sobrenome 
start element: nome 
characters: Antonio 
end element: nome 
end element: pessoa 
end document 
 
Assim, um aplicativo baseado no SAX pode gerar apenas os elementos que ele 
precisa, sem ter que construir uma estrutura na memória com o documento inteiro 
– utiliza memória constante. Os analisadores que usam a interface DOM sofrem 
porque esta API impõe a construção de uma árvore, com todos os elementos do 
documento na memória, seja qual for o aplicativo. 
 
Assim, para os documentos de grandes dimensões (cujo tamanho é próximo à 
quantidade de memória da máquina) o DOM torna-se insuficiente. Além disso, o 
uso do DOM se torna lento, esta é a razão do padrão DOM ser, algumas vezes, 
pouco respeitado, pois cada editor o implementa de acordo com suas necessidades, 
provocando o aparecimento de muitos parsers usando interfaces proprietárias. 
 
Assim, cada vez mais os aplicativos se voltam para aplicativos de eventos, como o 
SAX, para processar apenas o necessário. 
 
 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 06
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 16 
63 
1.2 EXERCÍCIOS COMENTADOS: XML 
1. (FCC - 2012 - TST - Técnico Judiciário - Programação) A linguagem XML: 
 
a) é considerada uma linguagem de marcação que tem uma biblioteca de tags 
muito rica e finita, a ponto de atender a todos os segmentos de negócios ligados 
a indústria, comércio e serviços. 
 
b) foi concebida para trabalhar com metadados, que descrevem os dados do 
documento XML. 
 
c) permite realizar diretamente no código diferentes formatações para exibir os 
dados de forma personalizada aos usuários. 
 
d) cria uma DTD - Dados para Transferência de Documentos - que define a 
estrutura do documento XML. 
 
e) está na versão 5.0 já que a XML 4.0 estava obsoleta e, gradativamente, sendo 
substituída pela WML. 
 
Comentários: 
 
(a) Na verdade, são infinitas; (b) Perfeito, é exatamente isso; (c) Não, permite 
formatações sem alterar o código; (d) Não! DTD é Data Type Definition e define a 
estrutura do documento XML; (e)Está na Versão 1.0 e não vem sendo substituída 
pela WML (Wireless Markup Language), que é um formato para dispositivos móveis. 
 
Gabarito: B 
 
2. (FCC - 2012 - MPE-AP - Analista Ministerial - Tecnologia da Informação) Um 
documento XML bem formatado é aquele que apresenta uma sintaxe XML 
correta. Sobre as regras de sintaxe em documentos XML bem formatados é 
correto afirmar: 
 
a) Os elementos XML não podem ter mais que um atributo e o valor desse 
atributo pode estar vazio. 
 
b) Não é necessário que um documento XML tenha um elemento raiz. 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 06
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 17 
63 
c) Os elementos XML não precisam ser fechados por tag, exceto o que define a 
versão da XML usada. 
 
d) Tags XML são case sensitive e os valores dos atributos devem aparecer entre 
aspas. 
 
e) Elementos XML não precisam ser aninhados corretamente, sendo assim, o 
primeiro que abre sempre será o primeiro que fecha. 
 
Comentários: 
 
(a) Pode, sim, ter mais de um atributo; (b) É obrigatório que tenha um elemento 
raiz; (c) Precisa, sim, ser fechados por tag; (d) Sim, perfeito! (e) Precisam, sim, ser 
aninhados corretamente – primeiro que abre é o último que fecha. 
 
Gabarito: D 
 
3. (FCC - 2012 - MPE-PE - Técnico Ministerial - Informática) Para que um 
documento XML seja considerado válido, ele precisa ter um conjunto de 
instruções que define a estrutura do documento, ou seja, quais elementos e 
atributos são permitidos. Esse conjunto de instruções (que pode ser declarado 
dentro de um documento XML ou em um arquivo à parte) é denominado: 
 
a) Extensible Stylesheet Language Transformations. 
b) Document Type Definition. 
c) XML Description Elements and Attributes. 
d) Cascading Style Sheets. 
e) Standard Description Library. 
 
Comentários: 
 
Trata-se do DTD (Document Type Definition). Opcionalmente, pode ser também o 
XML Schema. 
 
Gabarito: B 
 
4. (FCC - 2010 - BAHIAGÁS - Analista de Processos Organizacionais - Análise de 
Sistemas) O elemento raiz é declarado em um arquivo XML pelo elemento: 
 
 a) !DOCTYPE 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 06
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 18 
63 
 b) !ELEMENT 
 c) #PCDATA 
 d) CDATA 
 e) IDREF 
 
Comentários: 
 
A questão pede o elemento que declara um elemento-raiz. Esse elemento está em 
um validador e a questão não falou qual deve ser utilizado: DTD ou XSD. 
Presumindo-se que se trata do DTD, podemos afirmar que é o <!DOCTYPE>. Em 
geral, quando não se declara nada, o elemento-raiz é declarado por um !ELEMENT, 
mas nós podemos declarar o elemento-raiz de um Arquivo XML no <!DOCTYPE>. 
 
Gabarito: A 
 
5. (FCC - 2010 - TCE-SP - Agente da Fiscalização Financeira - Informática - Suporte 
de Web) NÃO se trata de uma regra para que um arquivo XML possa ser 
considerado bem formatado: 
 
a) Só deve haver um elemento raiz. 
b) Todo elemento XML deve ser fechado, exceto o que define a versão do XML 
usada. 
c) Os elementos XML devem ser aninhados adequadamente seguindo o padrão: 
primeiro que abre, último que fecha. 
d) Os valores de atributos devem aparecer entre aspas. 
e) A sintaxe deve ser escrita toda em maiúscula. 
 
Comentários: 
 
Todos os itens tratam de regras para criação de um documento bem formado, 
exceto o último: a sintaxe pode ser escrita em maiúscula ou minúscula. 
 
Gabarito: E 
 
6. (FCC - 2008 - METRÔ-SP - Analista Treinee - Análise de Sistemas) NÃO é um 
dos quatro tipos de declarações em XML: 
 
a) Elementos. 
b) Instâncias. 
c) Entidades. 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 06
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 19 
63 
d) Notações. 
e) Listas de atributos. 
 
Comentários: 
 
Galera, é possível declarar várias coisas em XML. Eu posso declarar elementos, 
entidades, notações e listas de atributos, mas instâncias não são um conceito em 
XML – não há declaração de instâncias. 
 
Gabarito: B 
 
7. (FCC - 2007 - TRF - 4ª REGIÃO - Técnico Judiciário - Programação de Sistemas) 
Define a construção de blocos válidos para um documento XML, bem como a 
estrutura desse documento, usando uma lista de elementos válidos, 
 
a) o ASP. 
b) a GML. 
c) o DTD. 
d) a SHTML. 
e) a PHP. 
 
Comentários: 
 
Trata-se do DTD! PHP e GML são linguagens de programação; SHTML é um Arquivo 
HTML com instruções de servidor; ASP é uma estrutura de bibliotecas básicas para 
criação de páginas web dinâmicas. 
 
Gabarito: C 
 
8. (FCC - 2005 – TRF/11 – Analista de Sistemas) Uma das principais características 
do XML é: 
 
a) descrever a aparência e as ações de uma página. 
b) usar tags e atributos com objetivos predefinidos. 
c) separar a interface de apresentação dos dados estruturados. 
d) interpretar possíveis erros de sintaxe das especificações oficiais. 
e) ser escrito em arquivo texto destinado à leitura pelas pessoas. 
 
Comentários: 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 06
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 20 
63 
(a) XML não descreve aparência – esse é o HTML; (b) tags não tem objetivos 
predefinidos; (c) Perfeito, é isso; (d) Não, isso não é característica do XML; (e) Não, 
não é destinado à leitura de pessoas. 
 
Gabarito: C 
 
9. (FCC - 2007 – TRF/3 – Analista de Sistemas) Um documento XML, composto de 
marcas e conteúdos, possui um tipo de marcação que inicia com <!-- e termina 
com --> denominado: 
 
a) declarações de tipos de documento. 
b) instruções de processamento. 
c) referências a entidades. 
d) elementos. 
e) comentários. 
 
Comentários: 
 
Bastava ver a sintaxe e perceber que são os comentários. 
 
Gabarito: E 
 
10. (FCC - 2008 – MPE/RS – Analista de Sistemas) Em XML pode-se definir um 
atributo, como informação adicional ao elemento, conforme o exemplo abaixo: 
 
a) <funcionario> <sexo> masculino ... 
b) <funcionario sexo=masculino> ... 
c) <funcionario sexo="masculino"> ... 
d) <funcionario> <sexo> "masculino" ... 
e) <funcionario <sexo>= "masculino"> ... 
 
Comentários: 
 
Trata-se da terceira opção: <funcionário sexo=”masculino”>. 
 
Gabarito: C 
 
11. (FCC - 2013 – DPE/SP – Analista de Sistemas) Uma das operações mais comuns 
realizadas em documentos XML na web é a leitura de dados por meio de scripts 
JavaScript e a exibição desses dados na tela do navegador em páginas HTML. 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 06
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 21 
63 
Essa leitura pode ser feita utilizando uma especificação da W3C que define uma 
forma padrão para acessar e manipular documentos, visualizando-os como uma 
estrutura em forma de árvore onde os elementos, seu texto, e seus atributos são 
conhecidos como nós. Além de ler o conteúdo de elementos de um documento 
XML essa especificação define como alterar, adicionar ou apagar elementos. 
 
A especificação definida no texto é conhecida pela sigla: 
 
a) DOM. 
b) JSON. 
c) XSLT. 
d) XPath. 
e) DTD. 
 
Comentários: 
 
Por fim, vamos falar sobre o Document Object Model (DOM). O que é isso, professor? 
É a especificação de uma interface independente de linguagem de programação e 
plataforma que permite acessar e alterar dinamicamentea estrutura, conteúdo e 
estilo de documentos eletrônicos, permitindo que ele seja mais tarde processado e os 
resultados desse processamento, incorporados de volta no próprio documento. 
 
O Javascript por si só não tem capacidade de acessar elementos específicos de um 
documento de forma padronizada! E como o DOM permite isso? Por meio de uma 
Árvore DOM! Essa árvore é composta por nós que contêm elementos, textos, 
atributos, etc. Galera, o grande truque do DOM é que ele permite acessar facilmente 
elementos de uma página web. A imagem abaixo apresenta uma Árvore DOM: (...) 
 
Evidentemente, trata-se do DOM! 
 
Gabarito: A 
 
 
12. (VUNESP - 2011 – TJM/SP - Analista de Sistemas) Considere as afirmações sobre 
a formatação de um documento XML. 
 
I. As tags XML são case sensitive. 
II. Documentos XML devem conter um elemento-raiz. 
III. Atributos de valor devem estar entre aspas. 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 06
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 22 
63 
Sobre as afirmações, está correto o contido em 
 
a) I, apenas. 
b) III, apenas. 
c) I e II, apenas. 
d) II e III, apenas. 
e) I, II e III. 
 
Comentários: 
 
I. 
 
Nomes de tags e atributos são Case-Sensitive: 
 
 
ERRADO: <NOME> É DIFERENTE DE <NOME> 
 
 
CORRETO: <NOME> É IGUAL A <NOME> 
 
II. 
 
Documentos XML devem possuir um único elemento-raiz: 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 06
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 23 
63 
 
ERRADO: POSSUI DUAS RAÍZES 
 
 
 
CORRETO: POSSUI UMA RAIZ 
III. 
 
Atributos devem possuir valor entre aspas simples ou duplas: 
 
Todos os atributos devem possuir valores. Além disso, esses valores devem vir entre 
aspas simples ou duplas. 
 
 
ERRADO: ATRIBUTO <MERCOSUL> NÃO POSSUI VALOR 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 06
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 24 
63 
 
CORRETO: ATRIBUTO <MERCOSUL> POSSUI VALOR E ENTRE ASPAS 
 
Perfeito, todas são verdadeiras! 
 
Gabarito: E 
 
13. (ESAF - 2013 – STN - Analista de Sistemas) Assinale a opção correta relativa a 
XML. 
 
a) É uma linguagem de metamodificação. 
b) Especifica um sistema de avaliação de programas por semânticas de acesso. 
c) É uma linguagem de metatransformação. 
d) É uma sintaxe e uma estrutura. 
e) Especifica uma sintaxe e uma semântica. 
 
Comentários: 
 
(a) Não existe esse conceito; (b) Einh? Não faz sentido algum! (c) Não existe esse 
conceito; (d) Perfeito, trata-se de uma sintaxe e uma estrutura; (e) Não, ela não lida 
com a semântica. 
 
Gabarito: D 
 
14. (CESGRANRIO - 2006 – EPE - Analista de Sistemas) Sobre as tecnologias Internet 
são feitas duas afirmativas. 
 
I - Um parser XML pode utilizar um _________ para validar um documento XML. 
_______ , por sua vez, é uma interface baseada em eventos que pode ser utilizada 
para escrever aplicações para ler dados contidos em um documento XML. 
 
II - Arquivos ________ podem ser utilizados para transformar arquivos XML em 
HTML. 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 06
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 25 
63 
Para que as afirmativas acima sejam verdadeiras, as lacunas devem ser 
preenchidas, respectivamente, com: 
 
a) DTD, SAX e XSL. 
b) DTD, XSL e SAX. 
c) SAX, IDL e ORB. 
d) SAX, XSL e ORB. 
e) ORB, IDL e DTD. 
 
Comentários: 
 
Um parser XML pode utilizar um DTD para validar um documento XML (Comentário: 
outra resposta que caberia, seria XSD); SAX, por sua vez, é uma interface baseada 
em eventos que pode ser utilizada para escrever aplicações para ler dados contidos 
em um documento XML (Comentário: só cabe o SAX, tendo em vista que o DOM 
não é orientado a eventos); Arquivos XSL podem ser utilizados para transformar 
arquivos XML em HTML (Comentário: a princípio, só caberia XSL). 
 
Gabarito: A 
 
15. (CESGRANRIO - 2008 – PETROBRÁS - Analista de Sistemas) Ao ler e processar 
arquivos XML, é interessante considerar o desempenho em duas dimensões: 
tempo e memória. Examine, a seguir, as afirmativas sobre os padrões de 
consumo de memória, tanto no SAX quanto no DOM. 
 
I - O consumo de memória do SAX é uma constante, independente do tamanho 
do documento XML. 
 
II - O consumo de memória de uma implementação DOM depende do tamanho 
do documento XML. 
 
III - SAX sempre consome mais memória do que DOM. 
 
Está(ão) correta(s) a(s) afirmativa(s) 
 
a) I, apenas. 
b) I e II, apenas. 
c) I e III, apenas. 
d) II e III, apenas. 
e) I, II e III. 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 06
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 26 
63 
 
Comentários: 
 
I. Conforme vimos em aula, o consumo do SAX é constante, independentemente 
do tamanho do documento; II. Conforme vimos em aula, realmente o consumo de 
memória de uma implementação DOM depende do tamanho do documento – 
quanto maior o documento, maior o consumo; III. Não, em geral SAX consome 
menos memória do que o DOM. 
 
Gabarito: B 
 
ACERTEI ERREI 
 
 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 06
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
==10ef0==
 
 
 
 
 27 
63 
 
2 XSLT 
2.1 INTRODUÇÃO 
 
Galera, XSL (eXtensible Stylesheet Language) é uma linguagem de folha de estilo para Documentos 
XML. Calma, professor! O que é uma folha de estilo? Resumindo, trata-se de padrão que define a 
apresentação de um documento! Imaginem o seguinte: você tem que escrever a sua dissertação de 
graduação da faculdade. Existem duas abordagens para escrevê-la! 
 
Você pode ir escrevendo o conteúdo e já ir mexendo no layout, i.e., a cada parágrafo, você modifica 
o tamanho da letra, modifica a cor, define um espaçamento, coloca uma figura, modifica sua posição, 
e assim por diante. Outra maneira, é construir uma folha de estilo já com todas essas informações 
de layout (fonte, tamanho, cor, etc) e depois somente aplicar ao texto de sua monografia. 
 
Vocês percebem a diferença? Se eu quiser fazer depois a minha dissertação de mestrado, basta eu 
aplicar essa mesma folha de estilo! Se eu utilizasse a outra abordagem, eu teria que fazer novamente 
a mesma configuração da apresentação, layout, etc. Portanto, as folhas de estilo existem para tornar 
a apresentação independente do conteúdo e facilitar nossa vida. Vamos ver um exemplo: 
 
Código XML: apenas com conteúdo (catalogocd.xml) 
<?xml version="1.0" encoding="UTF-8”?> 
<?xml-stylesheet type=”text/xsl” href=”catalogocd.xsl”?> 
 
<catalogo> 
 <cd> 
 <titulo> Sgt. Peppers </titulo> 
 <artista> The Beatles </artista> 
 </cd> 
 <cd> 
 <titulo> Ride the Lightning </titulo> 
 <artista> Metallica </artista> 
 </cd> 
</catalogo> 
 
Código XSL: apenas com apresentação (catalogocd.xsl) 
<?xml version="1.0" encoding="ISO-8859-1”?> 
 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
 
<xsl:template match="/"> 
 <html> 
 <body> 
 <h2>Minha Coleção de CD</h2> 
 <table border="1"> 
 <tr bgcolor="#9acd32"> 
 <th style="text-align:left">Titulo</th> 
 <th style="text-align:left">Artista</th></tr> 
 <xsl:for-each select="catalogo/cd"> 
 <tr> 
 <td><xsl:value-of select="titulo"/></td> 
 <td><xsl:value-of select="artista"/></td> 
 </tr> 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 06
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 28 
63 
 </xsl:for-each> 
 </table> 
 </body> 
 </html> 
</xsl:template> 
</xsl:stylesheet> 
 
Resultado Final: aplicação do XSL no XML! 
 
 
 
 
XSL é uma linguagem de folha de estilo para Documentos XML (assim como o CSS é uma linguagem 
de folha de estilo para Documentos HTML). Ela se divide em XSLT (Transformação XML), XPath 
(Navegação XML) e XSL-FO (Formatação XML). Agora voltando para nosso papo principal... o que seria 
o eXtensible Stylesheet Language for Transformation (XSLT)? 
 
Trata-se de uma linguagem para transformação de Documentos XML em outros formatos 
reconhecidos por um navegador web (XML, XHTML, HTML e outros). Em geral, ele faz isso ao 
transformar cada Elemento XML em Elemento (X)HTML. É possível adicionar ou remover elementos e 
atributos de/para um arquivo de saída, ou mesmo reorganizar elementos, executar testes e muito 
mais. 
 
Galera, vocês sabem que Documentos XML podem ser representados como uma árvore. Dessa forma, 
podemos dizer que o XSLT transforma uma Árvore-Fonte XML em uma Árvore-Resultado XML. 
Ademais, é importante ressaltar que ela utiliza o XPath para encontrar informações em um 
Documento XML. E como se busca informações nessa árvore? Por meio do XPath! 
 
XSLT é suportado por diversos navegadores, portanto fiquem tranquilos. Professor, como eu faço para 
declarar uma folha de estilo? Podemos fazer de duas maneiras: 
 
Utilizando <xsl:stylesheet> - raiz do Documento XML; 
 
<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
 
Ou utilizando <xsl:transform> - raiz do Documento XML; 
 
<xsl:transform version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
 
Observem que o atributo XMLNS possui um prefixo chamado XSL, seguida de uma URI. Em outras 
palavras, aponta para um namespace que contém um XML Schema que diz se o documento é válido 
e bem formado. Percebam que, para acessar os elementos, atributos, entre outros devemos declarar 
o namespace do XSLT no início do documento. 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 06
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 29 
63 
Galera, nós também podemos declarar um template através do elemento <xsl:template> – um 
template é um conjunto de uma ou mais regras aplicadas ao Documento XML. Esse elemento possui 
um atributo chamado MATCH, que é utilizado para associar um template com um elemento XML ou 
com o documento XML inteiro. Lembram do exemplo lá de cima? O que significa essa barra? 
 
<xsl:template match="/"> 
 
Vocês se lembram que eu disse que se utiliza o XPath para navegar pelo Documento XML? Pois é, ele 
trata o documento como uma árvore cheia de nós, como mostra a imagem abaixo. Se o código diz 
que é a partir do “/”, isso significa que se trata do documento inteiro. Observem também que o 
código está transformando um Documento XML em um Documento HTML. 
 
O Elemento <xsl:for-each> seleciona elementos XML de um conjunto de nós. O atributo SELECT 
seleciona o nó por meio do XPath. No nosso caso, ele manda selecionar “catalogo/cd/artista” e 
“catalogo/cd/titulo” e monta uma tabela mostrada ao final! É tranquilo de entender, concordam? Por 
fim, o elemento <xsl:value-of> extrai o valor de um elemento e adicioná-lo à saída da 
transformação. 
 
 
 
Galera, como fazer o browser aplicar automaticamente uma folha de estilo ao XML? Adiciona-se o 
comando abaixo para linkar o Arquivo XML ao Arquivo XSL e realizar a transformação no navegador 
especificado: 
 
<?xml-stylesheet type=”text/xsl” href=”catalogocd.xsl”?> 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 06
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 30 
63 
2.2 LISTA DE EXERCÍCIOS: XSLT 
1. (CESGRANRIO - 2010 – PETROBRÁS – Analista de Sistemas – B) No contexto de linguagens de 
marcação, transformação e apresentação, tem-se que uma transformação expressa em XSLT 
descreve regras para transformar uma árvore fonte em uma árvore resultado. 
 
Comentários: 
 
Galera, vocês sabem que Documentos XML podem ser representados como uma árvore. Dessa 
forma, podemos dizer que o XSLT transforma uma Árvore-Fonte XML em uma Árvore-Resultado 
XML. Ademais, é importante ressaltar que ela utiliza o XPath para encontrar informações em um 
Documento XML. E como se busca informações nessa árvore? Por meio do XPath! 
 
Conforme discutido em aula. 
 
Gabarito: C 
 
2. (CESGRANRIO - 2012 – PETROBRÁS – Analista de Sistemas) SOA e Web Services utilizam 
interfaces de serviço para definir o que será solicitado e o que deve ser retornado como resultado 
do processamento do serviço. No entanto, problemas surgem quando a SOA e os consumidores 
de Web Services se baseiam em estruturas de dados que possuem certas discrepâncias. Qual a 
tecnologia usada para resolver esse tipo de problema? 
 
a) DTD 
b) XSLT 
c) XQuery 
d) XLink 
e) XSL-FO 
 
Comentários: 
 
Questão para pensar: 
 
Que tecnologia é responsável por resolver o problema de discrepância na troca de dados entre 
consumidores de Web Services? Que tecnologia pode transformar um arquivo em outro para resolver 
o problema? XSLT! 
 
Gabarito: B 
 
3. (CESPE - 2009 – TRE/MA – Analista de Sistemas) Considerando o trecho de código acima 
apresentado, assinale a opção correta. 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 06
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 31 
63 
 
 
a) O código, escrito em XSLT, necessita de um arquivo CSS que contenha, no mínimo, um javascript 
que modifique a tabela com as tags titulo e atorprincipal para gerar uma tabela de saída 
informando o conteúdo das tags processadas. 
 
b) Para funcionar corretamente, esse código, escrito em XML, necessita de um arquivo XSTL que 
contenha, no mínimo, as tags filmes e dados. Por sua vez, na tag de dados, devem existir tags de 
titulo e atorprincipal em CSS para gerar uma tabela de saída informando o conteúdo das tags 
processadas. 
 
c) Para funcionar corretamente, esse código, escrito em HTML, necessita de um arquivo XML que 
contenha, no mínimo, as tags XSLT filmes e dados. Por sua vez, na tag de dados, devem existir tags 
de titulo e atorprincipal em CSS para gerar uma tabela de saída informando o conteúdo das tags 
processadas. 
 
d) Para funcionar corretamente, esse código, escrito em XSLT, necessita de um arquivo XML que 
contenha, no mínimo, as tags XML filmes e dados. Por sua vez, na tag de dados, devem existir tags 
de titulo e atorprincipal para gerar uma tabela de saída informando o conteúdo das tags 
processadas. 
 
e) O código, escrito em XSLT/javascript, necessita, para funcionar corretamente, de um arquivo 
HTML que contenha, no mínimo, as linhas filmes e dados. Por sua vez, na linha de dados, devem 
existir variáveis com o nome titulo e atorprincipal para gerar uma tabela de saída informando o 
conteúdo das tags processadas. 
 
Comentários: 
 
(a) Não, ele não necessita de arquivo CSS algum, nem comando Javascript; (b) Não, nada de CSS; (c) 
Não, escrito em XML ou XSLT; as tags XML filmes e dados; e nada de CSS; (d) Sim, agora está correto; 
(e) Não, escrito em XSLT ou XML; nada de HTML; nada de variáveis, são tags. 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah ReisAula 06
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 32 
63 
Gabarito: D 
 
4. (CESPE - 2010 – INMETRO – Analista de Sistemas – C) A XSLT permite transformar um documento 
XML em HTML, texto simples ou qualquer outro documento embasado em texto. 
 
Comentários: 
 
Perfeita definição de XSLT! 
 
Gabarito: C 
 
5. (CESPE - 2010 – INMETRO – Analista de Sistemas – D) O código abaixo descreve corretamente 
uma aplicação em XSLT. 
 
 
 
Comentários: 
 
Não, falta a declaração da Folha de estilos e seu namespace. 
 
Gabarito: E 
 
6. (CESPE - 2010 – MPU – Analista de Sistemas) Um arquivo XSLT (Extensible Stylesheet Language 
Transformation) permite transformar os dados de um arquivo XML. A maneira correta de se referir 
a um arquivo de estilo denominado mpuestilo.xml em um arquivo XML é mostrada a seguir. 
 
<stylesheet type="text/xsl" href="mpuestilo.xsl"> 
 
Comentários: 
 
Não, seria assim: 
 
<?xml-stylesheet type=”text/xsl” href=”mpuestilo.xsl”?> 
 
Gabarito: E 
 
7. (CESPE - 2010 – TRE/BA – Analista de Sistemas) O documento XSLT é necessário para a definição 
da estrutura de um documento XML. 
 
Comentários: 
 
Não, quem define essa estrutura é o XML Schema. 
 
Gabarito: E 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 06
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 33 
63 
8. (CESPE - 2010 – TRE/MT – Analista de Sistemas) A respeito de XSLT (eXtensible Stylesheet 
Language Transformation), assinale a opção correta. 
 
a) Uma transformação na linguagem XSLT é expressa na forma de uma folha de estilo, cuja sintaxe 
utiliza XML. 
 
b) XSLT é uma linguagem para transformar somente documentos XHTML em documentos HTML. 
 
c) A transformação XSLT deve respeitar a estrutura da árvore de origem, ou seja, a árvore de 
destino não pode ter uma estrutura diferente da árvore de origem. 
 
d) Uma transformação expressa em XSLT descreve regras para transformar uma ou mais árvores 
de origem em uma e somente uma árvore de destino. 
 
e) O seguinte trecho é correto. 
 
 
 
Comentários: 
 
(a) Sim, é exatamente isso; (b) Não, para transformar XML em outros documentos baseados em texto; 
(c) Não, a árvore de destino pode ser diferente; (d) Não, é uma relação N:1, i.e., uma ou mais árvores 
de origem em uma única árvore de destino; (e) Não! Não existe <xsl:template for-each=”/”, mas sim 
<xsl:template match=”/”. Além disso, está errado <xsl:match select...>, seria <xsl:for-each select...> - 
enfim, não faz sentido algum. 
 
Gabarito: A 
 
9. (CESPE - 2011 – MEC – Analista de Sistemas) Referenciada na e-ping, a XSLT é uma linguagem que 
transforma documentos XML em outros documentos XML, o que permite o intercâmbio de 
informações e a interoperabilidade entre sistemas. 
 
Comentários: 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 06
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 34 
63 
 
Perfeito, nada a acrescentar. 
 
Gabarito: C 
 
10. (CESPE - 2011 – TJ/ES – Analista de Sistemas) XSLT é um subconjunto do XML Schema que permite 
transformar documentos XML em outros formatos como PDF, HTML ou mesmo outro XML. Para 
tanto, o XSLT define, entre outros aspectos, a forma como os documentos XML são acessados. 
 
Comentários: 
 
Na verdade, é um subconjunto do XSL. Ademais, a forma de acesso é dada pelo XPath; o XSLT trata da 
transformação. 
 
Gabarito: E 
 
11. (CESPE - 2012 – TJ/RO – Analista de Sistemas – B) <?xml> é exemplo de tag do tipo root, 
necessária para identificar o documento como XSL na linguagem XSLT 2.0. 
 
Comentários: 
 
Não, o elemento raiz seria assim: 
 
Utilizando <xsl:stylesheet> - raiz do Documento XML; 
 
<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
 
Ou utilizando <xsl:transform> - raiz do Documento XML; 
 
<xsl:transform version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
 
Gabarito: E 
 
12. (CESPE - 2012 – TJ/RO – Analista de Sistemas – C) Na linguagem XSLT 2.0, o elemento <xsl:value-
of> pode ser utilizado para extrair o valor de um elemento XML e adicioná-lo ao documento de 
saída, resultado da transformação. 
 
Comentários: 
 
O Elemento <xsl:for-each> seleciona elementos XML de um conjunto de nós. O atributo SELECT 
seleciona o nó por meio do XPath. No nosso caso, ele manda selecionar “catalogo/cd/artista” e 
“catalogo/cd/titulo” e monta uma tabela mostrada ao final! É tranquilo de entender, concordam? Por 
fim, o elemento <xsl:value-of> extrai o valor de um elemento e adicioná-lo à saída da 
transformação. 
 
Conforme visto em aula, está perfeito! 
 
Gabarito: C 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 06
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 35 
63 
13. (CESPE - 2013 – TCE/ES – Analista de Sistemas – B) No processo de transformação realizado pelo 
XSLT, os templates de regras devem ser construídos de forma a não existirem conflitos de regras, 
visto que esses conflitos não podem ser automaticamente resolvidos. 
 
Comentários: 
 
Podem, sim – por meio de namespaces. 
 
Gabarito: E 
 
14. (FCC - 2006 – TRT/MS – Analista de Sistemas) A linguagem ...... especifica a utilização de um 
documento ......, utilizando a linguagem ...... para descrever como o documento será transformado 
em outro documento ...... . 
 
As lacunas acima serão corretamente preenchidas por, respectivamente, 
 
a) XML, XML, XSLT e XSL. 
b) XML, XML, XSL e XSLT. 
c) XSL, XML, XSLT e XML. 
d) XSLT, XML, XSL e XML. 
e) XSL, XML, XSLT e XSL. 
 
Comentários: 
 
A linguagem XSL especifica a utilização de um documento XML, utilizando a linguagem XSLT para 
descrever como o documento será transformado em outro documento XML. 
 
Gabarito: C 
 
15. (FGV - 2009 – MEC – Analista de Sistemas) A XSLT (eXtensible Stylesheet Language: 
Transformations) é uma linguagem usada para transformar a estrutura de um documento XML. 
Essa transformação é realizada por um processador XSLT. O papel principal de um processador 
XSLT é aplicar uma folha de estilo XSLT em um documento fonte XML e produzir um documento 
resultante. 
 
Assinale a alternativa que não apresente um processador XSLT: 
 
a) Xalan. 
b) Saxon. 
c) XTLTX. 
d) MSXML3. 
e) Sablotron. 
 
Comentários: 
 
Não coloquei na teoria porque é um tema muito específico e quase não cai em prova. Os 
processadores XSLT mais famosos são: Xalan, Saxon, MSXML e Sablotron. Eles são os responsáveis de 
fato por processar os arquivos de origem no arquivo de destino. 
 
Gabarito: C 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 06
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 36 
63 
16. (FGV - 2013 – AL/MA – Analista de Sistemas) Com relação as folhas de estilo XSLT, analise as 
afirmativas a seguir. 
 
I. Namespaces podem ser usados em folhas de estilo XSLT. 
II. Folhas de estilo XSLT devem ser documentos XML bem formados. 
III. Somente documentos XML podem ser gerados como saída do processamento de folhas de 
estilo XSLT. 
 
Assinale: 
 
a) se somente a afirmativa I estive correta. 
b) se somente a afirmativa II estiver correta. 
c) se somente a afirmativa III estiver correta. 
d) se somente as afirmativas I e II estiverem corretas 
e) se todas as afirmativas estiverem corretas. 
 
Comentários: 
 
(I) Sim, claro que podem; (II) Sim, eles devem ser bem formados; (III) Não, qualquer documento 
baseado em texto. 
 
Gabarito: D 
 
17. (CESPE - 2004 – ABIN – Analistade Sistemas) As folhas de estilo escritas em linguagem XSL 
(extensible stylesheet language) permitem definir várias formatações alternativas para 
documentos escritos em linguagem XML (extensible mark-up language). 
 
Comentários: 
 
XSL é uma linguagem de folha de estilo para Documentos XML (assim como o CSS é uma linguagem 
de folha de estilo para Documentos HTML). Ela se divide em XSLT (Transformação XML), XPath 
(Navegação XML) e XSL-FO (Formatação XML). Agora voltando para nosso papo principal... o que seria 
o eXtensible Stylesheet Language for Transformation (XSLT)? 
 
Trata-se de uma linguagem para transformação de Documentos XML em outros formatos 
reconhecidos por um navegador web (XML, XHTML, HTML e outros). Em geral, ele faz isso ao 
transformar cada Elemento XML em Elemento (X)HTML. É possível adicionar ou remover elementos e 
atributos de/para um arquivo de saída, ou mesmo reorganizar elementos, executar testes e muito 
mais. 
 
Perfeito, conforme visto em aula. 
 
Gabarito: C 
 
18. (FCC - 2011 – TCE/PR – Analista de Sistemas) Em padrões XML, style sheets são ferramentas 
utilizadas nos padrões: 
 
a) XSLT e XBRL. 
b) WSDL e SOAP. 
c) XSLT e SOAP. 
d) XBRL e WSDL. 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 06
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 37 
63 
e) XSLT e WSDL. 
 
Comentários: 
 
Galera, XSLT é a resposta óbvia, portanto eliminamos os itens B e D. Vocês sabem o que é XBRL? Trata-
se de Extensible Business Reporting Language! Professor, você não falou disso em aula! Galera, é a 
única vez que vi isso em prova – preferi falar disso só nessa questão. XBRL é um padrão baseado em 
XML para definir a informação financeira – nós usamos bastante aqui nos sistemas da Secretaria do 
Tesouro Nacional (STN). Logo, se é XML, pode receber definições de estilo. 
 
Gabarito: A 
 
19. (CESPE - 2016 – TCE/SC – Analista de Sistemas) O XSLT é utilizado para adicionar e(ou) remover 
elementos e atributos do arquivo de saída e para transformar um documento XML em um 
documento HTML ou XHTML, ou, ainda, em outro documento XML. 
 
Comentários: 
 
XSLT é uma linguagem para transformação de Documentos XML em outros formatos reconhecidos 
por um navegador web (XML, XHTML, HTML e outros). Em geral, ele faz isso ao transformar cada 
Elemento XML em Elemento (X)HTML. É possível adicionar ou remover elementos e atributos de/para 
um arquivo de saída, ou mesmo reorganizar elementos, executar testes, entre outros. 
 
Gabarito: C 
 
ACERTEI ERREI 
 
 
3 XML SCHEMA 
XML Schema é uma linguagem recomendada pela W3C cujo surgimento teve o propósito de ser uma 
alternativa ao DTD! Antes de continuar, saibam que XML Schema pode ser também chamado de 
XML Schema Definition (ou XSD). Assim como o DTD, o XML Schema é tem o propósito principal de 
definir a estrutura de um Documentos XML – validando seus dados e seus metadados. Para tal, ele: 
 
▪ Define elementos que podem aparecer em um documento; 
▪ Define atributos que podem aparecer em um documento; 
▪ Define quais elementos são elementos-filhos; 
▪ Define a ordem dos elementos-filhos; 
▪ Define a quantidade de elementos-filhos; 
▪ Define se um elemento é vazio ou se pode incluir texto; 
▪ Define tipos de dados para elementos e atributos; 
▪ Define valores padrão e valores fixos para elementos e atributos. 
 
Rapaziada, é senso comum atualmente que XML Schemas irão substituir os DTDs na grande maioria 
das aplicações web. Por que, professor? Vejamos: 
 
▪ XML Schemas são extensíveis a adições futuras; 
▪ XML Schemas são mais ricos e poderosos que DTDs; 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 06
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 38 
63 
▪ XML Schemas são escritos em XML (mesma sintaxe); 
▪ XML Schemas suportam tipos de dados; 
▪ XML Schemas suportam namespaces (xmlns:xs). 
 
Galera, observem o nosso primeiro ponto! Ele afirma que XML Schemas são extensíveis a adições 
futuras. O que será que ele quis dizer com isso? Bem, ao utilizar XML Schema, é possível reutilizar seus 
schemas em outros schemas; ademais, é possível criar seus próprios tipos de dados derivados dos 
tipos padrões; por fim, é possível referenciar múltiplos schemas em um mesmo documento. 
 
Veja, agora nosso terceiro ponto acima! Uma das grandes vantagens do XML Schema é que ele é 
escrito com a mesma sintaxe do XML. Em outras palavras, não é necessário aprender uma nova 
linguagem; pode-se usar o mesmo Editor XML e o mesmo Parser XML; pode-se manipulá-lo utilizando 
o XML DOM; pode-se transformá-lo com o XSLT. 
 
Passemos agora para nosso quarto ponto! Por que isso é tão importante? Ora, porque com o suporte 
a tipos de dados, é mais fácil descrever o conteúdo dos documentos; é mais fácil validar a corretude 
dos dados; é mais fácil trabalhar com dados de uma base de dados; é mais fácil definir restrições nos 
dados; é mais fácil converter dados entre diferentes tipos de dados. 
 
É importante também ressaltar outra coisa: XML Schema assegura a comunicação entre remetente 
e destinatário. Quando enviamos um dado, é essencial que ambas as partes tenham as mesmas 
expectativas a respeito do conteúdo. O que você quer dizer, professor? Imaginem que eu digo a um 
amigo australiano que minha data de nascimento é 15/10/1980. 
 
Já sabem o que vai acontecer, não é? Ele vai olhar essa data e não vai entender, porque, na Austrália, 
lê-se data no formato MM/DD/AAAA e no Brasil lemos no formato DD/MM/AAAA. Como não existe 
Mês 15, não fará sentido para ele! Se estivéssemos falando dentro do contexto do XML Schema, 
poderíamos definir uma maneira de representar a data de forma segura para os comunicadores. 
 
Galera, lembre-se que um documento bem formado não é necessariamente válido. Para que ele seja 
válido, ele deve ser bem formado e posteriormente ser validado por um XML Schema ou por um 
DTD! Já um Documento XML – para ser bem formado – deve obedecer às regras de sintaxe definidas 
pela linguagem XML! Logo, primeiro ele é deve ser bem formado para depois ser validado. 
 
A especificação do XML Schema assume que pelo menos dois documentos são utilizados: um 
documento instância (Exemplo: XML) e pelo menos um documento esquema (Exemplo: XML 
Schema). O documento instância contém a informação propriamente dita e o documento esquema 
descreve a estrutura e o tipo do documento instância – em geral, o primeiro referencia o segundo. 
 
Fazendo uma analogia com orientação a objetos, a distinção entre instância e esquema é semelhante 
a distinção entre objeto e classe, em que uma classe descreve um objeto assim como um esquema 
descreve um documento instância. Galera, o elemento raiz de um XML Schema é o <schema>, como 
é possível ver no código a seguir (tudo deve vir entre essas duas tags): 
 
?xml version="1.0"?> 
 
<schema> 
... 
... 
</schema> 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 06
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 39 
63 
Como eu disse, o Documento XML possui uma referência a um XML Schema! Isso é feito por meio do 
elemento <xmlns>, que informa ao validador que todos os elementos utilizados no Documento XML 
são declarados em um namespace específico. Galera, os tipos de dados nativos mais comuns são: 
xs:string, xs:decimal, xs:integer, xs:boolean, xs:date e xs:time. 
 
É importante salientar que o XML Schema é capaz de definir restrições, que são usadas para 
representar valores aceitáveis para Elementos e Atributos XML – em geral, são chamados de Facets 
(ou Facetas). Vocês se lembram do exemplo da data? Pois é, por meio de facetas, é possível restringir 
o mês aos números de 1a 12. Da mesma forma é possível restringir o dia aos números 1 a 31. 
 
Em geral, as facetas se dividem em fundamentais e restritivas! As facetas fundamentais determinam 
o tipo de dados, em vez de limitações de valores (Ex: equal, ordered, bounded, cardinality e numeric). 
As facetas restritivas são aplicadas opcionalmente a tipos de dados a fim de restringir valores (Ex: 
length, minLength, maxLength, pattern, enumeration, whiteSpace, maxInclusive, etc). 
 
Em XML Schema, o modelo de conteúdo de um elemento pode ser especificado a partir da 
declaração de um tipo. Um tipo pode ser Simples ou Complexo. Um tipo simples contém apenas 
texto, ele não contém nenhum outro elemento ou atributo. Já um tipo complexo contém outros 
elementos e/ou atributos, podendo ser elementos vazios, conter outros elementos, conter somente 
texto ou conter ambos. 
 
Tipos simples são declarados com simpleType, e tipos complexos com complexType. A declaração 
element liga um tipo a um nome de elemento. Elementos podem ser declarados dentro de um tipo 
complexo ou abaixo de schema. Neste último caso, são considerados elementos globais. Um 
simpleType pode ser um dos tipos básicos definidos em XML Schema, tais como string, integer, date, 
entre outros. 
 
Um complexType define restrições para o modelo de conteúdo de um determinado elemento, o que 
é feito através dos atributos para especificação de cardinalidade minOccurs e maxOccurs, e dos 
delimitadores de grupos de elementos sequence, all e choice. O atributo minOccurs especifica o 
número mínimo de vezes que um subelemento pode aparecer, e maxOccurs, o número máximo. 
 
Gostaria de falar um pouco também sobre um elemento bem bacana: <notation> – ele é responsável 
por descrever o formato de dados não-XML dentro de um Documento XML. Por fim, o tipo AnyType 
é o tipo padrão (default) quando nenhum outro tipo é especificado. Ele serve como tipo base do qual 
todos os tipos simples e complexos são derivados. Bacana? ;) 
 
Por fim, vamos falar sobre o XDR (External Data Representation)! Trata-se um padrão para empacotar 
dados para uso de protocolos de redes e permite que dados sejam transferidos entre diferentes tipos 
de sistemas computacionais. A conversão da representação local para XDR se chama codificação e do 
XDR para representação local se chama decodificação. Nunca vi uma questão sobre isso! 
 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 06
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 40 
63 
 
3.1 QUESTÕES COMENTADAS: XSD 
 
1. (CESGRANRIO - 2008 – PETROBRÁS - Tecnologia da Informação – D) Os serviços SOA se 
comunicam através de mensagens que podem ser definidas por XML Schema. 
 
Comentários: 
 
Galera, os serviços SOA se comunicam por meio da linguagem XML. Essa linguagem pode ser definida 
por meio de um XML Schema? Claro ;) 
 
Gabarito: C 
 
2. (CESGRANRIO - 2008 – PETROBRÁS - Tecnologia da Informação) Uma das vantagens da linguagem 
XML Schema em relação à linguagem DTD é que a primeira apresenta: 
 
a) suporte à validação de documentos XML com elementos multivalorados. 
b) suporte à validação de documentos XML que não são bem formados. 
c) uso das mesmas regras de sintaxe de documentos XML comuns. 
d) integração nativa com as APIs SAX e DOM de Java. 
e) flexibilidade de ser definida em um arquivo diferente do documento XML que valida. 
 
Comentários: 
 
(a) Não, ambos suportam validação de Documentos XML com elementos multivalorados; 
 
(b) Não, nenhum dos dois suporta validação de documentos XML que não estejam bem formados; 
 
(c) Sim, DTD possui uma sintaxe própria, já o XML Schema usa a mesma sintaxe dos documentos XML; 
 
(d) Não, XML não está nativamente atrelado ao Java, esse item não faz sentido para DTD ou XML 
Schema; 
 
(e) Não, ambos podem ser definidos em arquivos próprios – fora dos Documentos XML. 
 
Gabarito: C 
 
3. (CESGRANRIO - 2011 – FINEP - Tecnologia da Informação) Um DTD (Document Type Definition) é 
um conjunto de regras usado para definir uma linguagem de marcação XML particular. Caso um 
documento XML não seja aderente às regras definidas em um DTD, ele não será um documento 
válido em relação a essa linguagem. Que outra tecnologia XML pode ser usada para definir a 
estrutura de um documento XML? 
 
a) XQuery 
b) XML Schema 
c) XML Document Object Model 
d) XPath 
e) XSLT 
 
Comentários: 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 06
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 41 
63 
 
XML Schema é uma linguagem recomendada pela W3C cujo surgimento teve o propósito de ser uma 
alternativa ao DTD! Antes de continuar, saibam que XML Schema pode ser também chamado de XML 
Schema Definition (ou XSD). Assim como o DTD, o XML Schema é tem o propósito principal de definir 
a estrutura de um Documentos XML – validando seus dados e seus metadados. Para tal, ele: 
 
Conforme visto em aula, o XML Schema é uma alternativa ao DTD. 
 
Gabarito: B 
 
4. (CESGRANRIO - 2011 – FINEP - Tecnologia da Informação) Um documento XML bem formado 
(well-formed) segue as restrições de sintaxe definidas pela especificação XML. 
 
PORQUE 
 
Um documento XML bem formado deve, necessariamente, estar em conformidade com uma 
definição em DTD (Document Type Definition) ou em XML Schema. Analisando-se as afirmações 
acima, conclui-se que: 
 
a) as duas afirmações são verdadeiras, e a segunda justifica a primeira. 
b) as duas afirmações são verdadeiras, e a segunda não justifica a primeira. 
c) a primeira afirmação é verdadeira, e a segunda é falsa. 
d) a primeira afirmação é falsa, e a segunda é verdadeira. 
e) as duas afirmações são falsas. 
 
Comentários: 
 
Galera, lembre-se que um documento bem formado não é necessariamente válido. Para que ele seja 
válido, ele deve ser bem formado e posteriormente ser validado por um XML Schema ou por um 
DTD! Já um Documento XML – para ser bem formado – deve obedecer às regras de sintaxe definidas 
pela linguagem XML! Logo, primeiro ele é deve ser bem formado para depois ser validado. 
 
Conforme visto em aula, para ser bem formado, deve obedecer às regras de sintaxe definidas pela 
Linguagem XML. A segunda afirmação, refere-se a validade de um Documento XML. Isso se dá não por 
meio de regras de sintaxe, mas por meio do XML Schema ou DTD. 
 
Gabarito: C 
 
5. (CESPE - 2008 – HEMOBRÁS - Tecnologia da Informação) Acerca de implementação de 
arquiteturas orientadas a serviços, é correto afirmar que tecnologia de XML Schema é condição 
para o uso de SOAP e http. 
 
Comentários: 
 
Galera, XML é condição para uso de SOAP e HTTP? Não, podemos usar o REST! Da mesma forma, XML 
Schema não é condição para o uso de SOAP e HTTP. 
 
Gabarito: E 
 
6. (CESPE - 2009 – INMETRO - Tecnologia da Informação) O INMETRO pode alcançar 
interoperabilidade de dados com os fabricantes/fornecedores de produtos, na coleta e publicação 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 06
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 42 
63 
de dados, com o uso de XML como formato de intercâmbio de dados, uma vez que a linguagem 
permite a incorporação da semântica e a definição de dados por meio de mecanismos de validação 
como DTD ou XML Schema. 
 
Comentários: 
 
Galera, lembre-se que um documento bem formado não é necessariamente válido. Para que ele seja 
válido, ele deve ser bem formado e posteriormente ser validado por um XML Schema ou por um 
DTD! Já um Documento XML – para ser bem formado – deve obedecer às regras de sintaxe definidas 
pela linguagem XML! Logo, primeiro ele é deve ser bem formado para depois ser validado. 
 
Perfeito! Permite a incorporaçãoda semântica e a definição de dados por meio de mecanismos de 
validação? Sim, para isso serve o DTD e XML Schema! 
 
Gabarito: C 
 
7. (CESPE - 2009 – INMETRO - Tecnologia da Informação) Diferentes de XML Schema, DTDs 
possibilitam a derivação e a definição de tipos de dados. 
 
Comentários: 
 
Rapaziada, é senso comum atualmente que XML Schemas irão substituir os DTDs na grande 
maioria das aplicações web. Por que, professor? Vejamos: 
 
▪ XML Schemas são extensíveis a adições futuras; 
▪ XML Schemas são mais ricos e poderosos que DTDs; 
▪ XML Schemas são escritos em XML (mesma sintaxe); 
▪ XML Schemas suportam tipos de dados; 
▪ XML Schemas suportam namespaces (xmlns:xs). 
 
Na verdade, é justamente o contrário: XML Schema possibilita a derivação e a definição de tipos de 
dados – em contraste ao DTD! 
 
Gabarito: E 
 
8. (CESPE - 2010 – BASA - Tecnologia da Informação) Usando-se um XML Schema, validam-se os 
metadados e os dados de um documento XML. 
 
Comentários: 
 
XML Schema é uma linguagem recomendada pela W3C cujo surgimento teve o propósito de ser uma 
alternativa ao DTD! Antes de continuar, saibam que XML Schema pode ser também chamado de XML 
Schema Definition (ou XSD). Assim como o DTD, o XML Schema é tem o propósito principal de definir 
a estrutura de um Documentos XML – validando seus dados e seus metadados. Para tal, ele: 
 
Perfeito, é possível validar os metadados (i.e., estrutura) e os dados em si. 
 
Gabarito: C 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 06
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 43 
63 
9. (CESPE - 2010 – SAD/PE - Tecnologia da Informação – E) A linguagem XML Schema está mais 
diretamente associada às linguagens do tipo SQL DML, enquanto a linguagem XQuery associa-se, 
de forma mais direta, às linguagens do tipo SQL DDL. 
 
Comentários: 
 
Um pouco de interdisciplinaridade: DDL (Data Definition Language) está mais associada ao XML 
Schema, i.e., define estruturas; DML (Data Manipulation Language) está mais associada ao XQuery, 
i.e., consulta e manipulação de dados. 
 
Gabarito: E 
 
10. (CESPE - 2010 – TRE/MT - Tecnologia da Informação) A respeito de XML e XML Schema, assinale 
a opção correta. 
 
a) No formato xmlns:xs, o XML Schema pode utilizar declaração de escopo de nomes (namespace). 
 
b) O elemento <xml schema> é o elemento raiz de todos os esquemas definidos em XML Schema. 
 
c) Elementos complexos em XML Schema não podem ser vazios, nem conter só texto. Devem 
conter sempre ao menos um outro elemento. 
 
d) Em XML Schema, restrições são utilizadas para definir valores aceitáveis para atributos e não 
para elementos. 
 
e) XML Schema oferece suporte a tipos de dados predefinidos, não permitindo a criação de novos 
tipos de dados. 
 
Comentários: 
 
Rapaziada, é senso comum atualmente que XML Schemas irão substituir os DTDs na grande maioria 
das aplicações web. Por que, professor? Vejamos: 
 
▪ XML Schemas são extensíveis a adições futuras; 
▪ XML Schemas são mais ricos e poderosos que DTDs; 
▪ XML Schemas são escritos em XML (mesma sintaxe); 
▪ XML Schemas suportam tipos de dados; 
▪ XML Schemas suportam namespaces (xmlns:xs). 
 
(a) Correto, XML Schema pode – sim – utilizar namespaces. 
 
Fazendo uma analogia com orientação a objetos, a distinção entre instância e esquema é semelhante 
a distinção entre objeto e classe, em que uma classe descreve um objeto assim como um esquema 
descreve um documento instância. Galera, o elemento raiz de um XML Schema é o <schema>, como 
é possível ver no código a seguir (tudo deve vir entre essas duas tags): 
 
(b) Errado, é <schema> e, não, <xml schema>; 
 
Em XML Schema, o modelo de conteúdo de um elemento pode ser especificado a partir da declaração 
de um tipo. Um tipo pode ser Simples ou Complexo. Um tipo simples contém apenas texto, ele não 
contém nenhum outro elemento ou atributo. Já um tipo complexo contém outros elementos e/ou 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 06
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 44 
63 
atributos, podendo ser elementos vazios, conter outros elementos, conter somente texto ou conter 
ambos. 
 
(c) Errado, elementos complexos podem – sim – ser vazios ou conter somente texto. 
 
É importante salientar que o XML Schema é capaz de definir restrições, que são usadas para 
representar valores aceitáveis para Elementos e Atributos XML – em geral, são chamados de Facets 
(ou Facetas). Vocês se lembram do exemplo da data? Pois é, por meio de facetas, é possível restringir 
o mês aos números de 1 a 12. Da mesma forma é possível restringir o dia aos números 1 a 31. 
 
(d) Errado, são para ambos. 
 
(e) Errado, permite – sim – a criação de novos tipos de dados. 
 
Gabarito: A 
 
11. (CESPE - 2010 – TRT/21 - Tecnologia da Informação) A XSD - XML schema definition permite 
definir elementos e atributos que podem aparecer em um documento XML, tal como um DTD 
(document type definition). 
 
Comentários: 
 
XML Schema é uma linguagem recomendada pela W3C cujo surgimento teve o propósito de ser 
uma alternativa ao DTD! Antes de continuar, saibam que XML Schema pode ser também 
chamado de XML Schema Definition (ou XSD). Assim como o DTD, o XML Schema é tem o 
propósito principal de definir a estrutura de um Documentos XML – validando seus dados e seus 
metadados. Para tal, ele: 
 
▪ Define elementos que podem aparecer em um documento; 
▪ Define atributos que podem aparecer em um documento; 
▪ Define quais elementos são elementos-filhos; 
▪ Define a ordem dos elementos-filhos; 
▪ Define a quantidade de elementos-filhos; 
▪ Define se um elemento é vazio ou se pode incluir texto; 
▪ Define tipos de dados para elementos e atributos; 
▪ Define valores padrão e valores fixos para elementos e atributos. 
 
Conforme visto em aula, ele define elementos e atributos que podem aparecer em um Documento 
XML. 
 
Gabarito: C 
 
12. (CESPE - 2011 – TJ/ES - Tecnologia da Informação) Na linguagem XML, o XML Schema é o 
documento apropriado para a definição de métodos, regras de validação dos documentos e suas 
restrições de conteúdo. 
 
Comentários: 
 
Perfeito! Ele define métodos, regras de validação e restrições de conteúdo. Dessa forma, é capaz de 
validar dados e metadados. 
 
Inserir aqui o nome do Curso
www.estrategiaconcursos.com.br
Judah Reis
Aula 06
69360
 
r bm. oc s.o srucno c a i g e t a trs e w. w w 
Desenvolvimento de Sistemas e Linguagem de Programação p/ BRB (Analista TI) - Pós-Edital
 
 
 
 
 45 
63 
Gabarito: C 
 
13. (CESPE - 2012 – BASA - Tecnologia da Informação) DTD (document type definition) e XSD (XML 
schema description) são dois formatos de interoperabilidade de dados usados no escopo do 
padrão XML, e, de modo geral, um documento DTD é semanticamente menos expressivo que seu 
equivalente XSD. 
 
Comentários: 
 
XSD é a sigla para XML Schema Definition e, não, Description. Além disso, XML é um formato de 
interoperabilidade de dados, DTD e XSD são apenas validadores de Documentos XML. No entanto, a 
banca considerou a questão verdadeira – eu discordo! 
 
Gabarito: C 
 
14. (CESPE - 2013 – CNJ - Tecnologia da Informação) Arquivos XML podem conter informações para 
definição de regras de validação de seu conteúdo em um outro arquivo XML, denominado XSD 
(XML schema definition). 
 
Comentários: 
 
A especificação do XML Schema assume que pelo menos dois documentos são utilizados: um 
documento instância (Exemplo: XML) e pelo menos um documento esquema (Exemplo: XML 
Schema). O documento instância contém a informação propriamente dita e o documento esquema 
descreve a estrutura e o tipo do documento instância – em geral, o primeiro referencia o segundo. 
 
Perfeito! O XML Schema contém a definição de regras

Outros materiais