curso de xml - rogerioaraujo.files.wordpress.com · rogério araújo série desenvolvimento de...

Post on 12-Dec-2018

218 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Rogério Araújo

Série Desenvolvimento de Sistemas

Conceito básicos, XML Schema, Namespaces,DOM/SAX, XPath, XSLT, XLink e XPointer

Curso deCurso de

XMLXML

Rogério Araújo

Série Desenvolvimento de Sistemas

Conceitos básicos, XML Schema, Namespaces,DOM/SAX, XPath, XSLT, XLink e XPointer

Curso de

XML

Curso de XML

O AutorEu descobri que sempre tenho escolhas. E muitas vezes, trata-se apenas de uma escolha de atitude.

Judith M. Knowlton

Nasci em Brasília/DF, porém, ainda pequeno, meus pais se mudaram para Teresina/PI, onde cresci com muito sol na moleira. Passei no concurso do Ministério Público da União (MPU) e fui, em janeiro de 2005, lotado inicialmente na Procuradoria da República do Estado Pará em Belém/PA. Atualmente, estou lotado na Procuradoria da República Federal (PGR), em Brasília/DF.

Sou especialista em Governança em TI pela Unieuro (www.unieuro.edu.br) e em Desenvolvimento de Sistemas Baseados em Software Livre pela UNAMA (Universidade da Amazônia) (www.unama.br), graduado no curso de Bacharelado em Ciência da Computação pela UESPI (Universidade Estadual do Piauí) (www.uespi.br) e conclui o Curso Técnico de Processamento de Dados pela ETEPI (Escola Técnica Estadual do Piauí). No ramo de certificações, possuo a COBIT 4.1 Foundation Certified e a SCJA (Sun Certified Associate for J2SE).

Mantenho o blog http://rogerioaraujo.wordpress.com. Escrevo posts sobre dicas e assuntos para os concursos de TI e sou autor de artigos no site do professor Walter Cunha (www.waltercunha.com). Tento ajudar a comunidade com meus textos, me esforçando para focar muito mais no informalismo e na descontração das palavras do que naquela coisa rebusca, o famoso repimboca da parafuseta!

Abraços e vamos nessa!

Rogério Araújo rogerioaraujo.wordpress.com - twitter: @rgildoaraujo 1

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

1

XMLXMLConceitosConceitosbásicosbásicos

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

2

TópicosTópicos● Antes de tudo, precisamos saber que...● Introdução● XML x HTML● Exemplo de um documento XML● Como podemos usar o XML● A árvore XML● Regras para sintaxe de documentos XML● Notas importantes sobre a sintaxe XML● Elementos XML● Exemplo de um documento XML

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

3

TópicosTópicos● Regras de nomeação de elementos● Elementos x Atributos● Validação de XML● Validadores XML● Alguma dúvida? Podemos prosseguir?● Marco - Questões!!!● Referência

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

4

Antes de tudo, precisamos saber que...Antes de tudo, precisamos saber que...● XML é uma ótima solução para compartilhar dados● Para implementar soluções em gestão de informações usando

XML, podemos usar:● DTD ou XSchema para especificar o modelo de dados e validar

as informações● As APIs DOM ou SAX para extrair dados dos documentos, gerar

documentos, ler e gravar em bancos de dados● XSLT e XPath para transformar os dados em outros formatos● XLink, XPointer e XQuery para criar vínculos lógicos entre os

documentos e localizar seus componentes● XSL-FO ou XHTML para formatar os dados para impressão ou

visualização na tela (PDF, Word ou Web)● SVG para gerar informações em forma de gráfico vetorial

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

5

IntroduçãoIntrodução● Significa Extensible Markup Language● É uma linguagem de marcação parecida com HTML● Foi projetado para transportar dados, não para exibir dados● As tags XML NÃO são predefinidas

● Podemos definir nossas próprias tags● Foi projetado para ser auto-descritivo● É independente de software e hardware para transporte de

informações● Um documento XML não faz nada: é preciso escrever um

software para enviá-lo, recebê-lo ou exibi-lo

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

6

XML x HTMLXML x HTML● XML não é um substituto do HTML● XML e HTML foram projetadas com objetivos diferentes

● XML foi projetado para o transporte e armazenamento de dados, com foco no que são os dados

● HTML foi projetado para exibir dados, com foco em como os dados aparecem

● HTML foca a exibição de informações, enquanto o XML, como transportar informações

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

7

XML x HTMLXML x HTML

<veiculo tipo="carro"><marca>Kia</marca><modelo>Cerato</modelo><motor>2.0</motor>

</veiculo>

<h1>Kia</h1><h2>Cerato</h2><p>Motor <b>2.0</b></p>

O HTML mostra O HTML mostra COMOCOMO apresentar apresentar

O XML mostraO XML mostraO QUEO QUE apresentar apresentar

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

8

Exemplo de um documento XMLExemplo de um documento XML<veiculo tipo="moto">

<marca>Yamaha</marca>

<modelo>YZF-R1</modelo>

<motor>1000 cc</motor>

</veiculo>

<garagem quantidade="3"/>

</meus_veiculos>

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

<meus_veiculos>

<veiculo tipo="carro">

<marca>Kia</marca>

<modelo>Cerato</modelo>

<motor>2.0</motor>

</veiculo>

<veiculo tipo="carro">

<marca>Hynduai</marca>

<modelo>ix35</modelo>

<motor>2.0</motor>

</veiculo>

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

13

Marco - Questões!!!Marco - Questões!!![FCC 2011 TRT 8ª Região – Analista Judiciário – Tecnologia da Informação – Questão 54] Sobre as tags HTML e XML, é correto afirmar:● [A] Tags HTML XML são case sensitive, isto é, fazem distinção

entre letras maiúsculas e minúsculas. ● [B] Tags XML HTML não são case sensitive, isto é, não fazem

distinção entre letras maiúsculas e minúsculas. ● [C] As tags XML HTML são pré-definidas pelo W3C, devendo o

autor utilizá-las quando da elaboração do documento.

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

14

Marco - Questões!!!Marco - Questões!!![FCC 2011 TRT 8ª Região – Analista Judiciário – Tecnologia da Informação – Questão 54] Sobre as tags HTML e XML, é correto afirmar:● [D] As tags HTML não são pré-definidas, podendo o autor do

documento criá-las livremente no momento da elaboração de seu documento.

● [E] A forma de fazer comentários em um documento HTML e em um documento XML são idênticas.

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

15

Marco - Questões!!!Marco - Questões!!![FCC 2011 TRT 8ª Região – Analista Judiciário – Tecnologia da Informação – Questão 54] Sobre as tags HTML e XML, é correto afirmar:● [D] As tags HTML XML não são pré-definidas, podendo o

autor do documento criá-las livremente no momento da elaboração de seu documento.

● [E] A forma de fazer comentários em um documento HTML e em um documento XML são idênticas.

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

16

Marco - Questões!!!Marco - Questões!!![ESAF 2005 STN – Questão 23] Um conjunto de informações XML é independente do formato real de um documento. É correto afirmar que todos os documentos XML possuem uma estrutura de árvore, onde ● [A] os atributos que não são nós de folha poderão ou não

possuir nós filhos. ● [B] os elementos são nós de folha, não irão possuir nós filhos,

possuindo apenas nós pai. ● [C] os atributos são nós de folha e poderão ou não possuir nós

filhos. ● [D] os nós de atributo de um elemento formam uma lista não-

ordenada, não sendo possível fazer afirmações sobre a ordem em que os atributos de um elemento ocorrem.

● [E] todos os nós dessa árvore são constituídos de atributos.

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

17

Marco - Questões!!!Marco - Questões!!![ESAF 2005 STN – Questão 23] Um conjunto de informações XML é independente do formato real de um documento. É correto afirmar que todos os documentos XML possuem uma estrutura de árvore, onde ● [A] os atributos que não são nós de folha poderão ou não

possuir nós filhos (atributos nunca são nós de folha).● [B] os elementos são nós de folha, não irão poderão possuir nós

filhos, possuindo apenas nós pai. ● [C] os atributos são nós de folha e poderão ou não possuir nós

filhos (atributos nunca são nós de folha). ● [D] os nós de atributo de um elemento formam uma lista não-

ordenada, não sendo possível fazer afirmações sobre a ordem em que os atributos de um elemento ocorrem.

● [E] todos os nós dessa árvore são constituídos de atributos.

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

18

Marco - Questões!!!Marco - Questões!!![CESPE 2011 TRE/ES – Cargo 15]

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

19

Marco - Questões!!!Marco - Questões!!![CESPE 2011 TRE/ES – Cargo 15] Considerando a estrutura XML acima, armazenada no arquivo Funcionario.xml, julgue os próximos itens.● [70] No prólogo de um arquivo XML, existe o atributo

standalone, o qual, com valor padrão yes, é de escrita obrigatória, o que indica que o documento não pode ser analisado no lado servidor.

● [71] Com essa estrutura, ao se abrir o arquivo Funcionario.xml em um navegador, será mostrado um erro de processamento de recurso.

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

20

[CESPE 2011 TRE/ES – Cargo 15] Considerando a estrutura XML acima, armazenada no arquivo Funcionario.xml, julgue os próximos itens.● [70] No prólogo de um arquivo XML, existe o atributo

standalone, o qual, com valor padrão yes no, é de escrita obrigatória opcional, o que indica que o documento não pode ser analisado no lado servidor especifica se outros arquivos são necessários para renderizar o documento.● Gabarito: ERRADO.

● [71] Com essa estrutura, ao se abrir o arquivo Funcionario.xml em um navegador, será mostrado um erro de processamento de recurso.● Gabarito: CERTO.● Não existe a tag de fechamento para <ramal>.

Marco - Questões!!!Marco - Questões!!!

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

21

Marco - Questões!!!Marco - Questões!!![CESPE 2010 TRE/BA – Cargo 3] Acerca do XML, julgue os itens a seguir.● [84] Em XML, as tags definem elementos de dados e o texto

fornece o dado real representado no documento. ● [85] A sintaxe básica para um elemento XML pode ser

corretamente representada pela instrução a seguir.● <nome_do_elemento>Texto</nome_do_elemento>

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

22

Marco - Questões!!!Marco - Questões!!![CESPE 2010 TRE/BA – Cargo 3] Acerca do XML, julgue os itens a seguir.● [84] Em XML, as tags definem elementos de dados e o texto

fornece o dado real representado no documento.● Gabarito: CERTO.

● [85] A sintaxe básica para um elemento XML pode ser corretamente representada pela instrução a seguir.● <nome_do_elemento>Texto</nome_do_elemento>● Gabarito: CERTO.

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

23

Marco - Questões!!!Marco - Questões!!![CESPE 2010 TRE/BA – Cargo 3] Acerca do XML, julgue os itens a seguir.● [86] Um documento XML pode conter definições para o

elemento raiz e para os elementos filhos, podendo também conter elementos vazios.

● [87] A instrução a seguir está sintaticamente correta e permite o uso de algarismos romanos para codificação de números.● <?xml version="1.0" encoding="ISO-8859-1"?>

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

24

Marco - Questões!!!Marco - Questões!!![CESPE 2010 TRE/BA – Cargo 3] Acerca do XML, julgue os itens a seguir.● [86] Um documento XML pode conter definições para o

elemento raiz e para os elementos filhos, podendo também conter elementos vazios.● Gabarito: CERTO.

● [87] A instrução a seguir está sintaticamente correta e permite o uso de algarismos romanos para codificação de números.● <?xml version="1.0" encoding="ISO-8859-1ISO-8859-7"?>● Gabarito: ERRADO. ● http://www.w3schools.com/TAGS/ref_charactersets.asp

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

25

Marco - Questões!!!Marco - Questões!!![CESPE 2010 TRE/BA – Cargo 3] Acerca do XML, julgue os itens a seguir.● [88] As marcações XML não fazem distinção entre letras

minúsculas e maiúsculas.● [89] Um documento XML sempre deve ter um elemento

principal, também conhecido como root tag.

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

26

Marco - Questões!!!Marco - Questões!!![CESPE 2010 TRE/BA – Cargo 3] Acerca do XML, julgue os itens a seguir.● [88] As marcações XML não fazem distinção entre letras

minúsculas e maiúsculas.● Gabarito: ERRADO.

● [89] Um documento XML sempre deve ter um elemento principal, também conhecido como root tag.● Gabarito: CERTO.

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

27

[CESPE 2010 INMETRO – Cargo 26 – Questão 40] A respeito de arquitetura distribuída, assinale a opção correta.● [E] O XML é um formato para a criação de documentos com

dados organizados de forma hierárquica. Ele é frequentemente utilizado devido a sua portabilidade, já que independe das plataformas de hardware ou de software. Um banco de dados pode, por meio de uma aplicação, escrever em um arquivo XML, e um outro banco distinto pode então ler esses mesmos dados.

Marco - Questões!!!Marco - Questões!!!

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

28

[CESPE 2010 INMETRO – Cargo 26 – Questão 40] A respeito de arquitetura distribuída, assinale a opção correta.● [E] O XML é um formato para a criação de documentos com

dados organizados de forma hierárquica. Ele é frequentemente utilizado devido a sua portabilidade, já que independe das plataformas de hardware ou de software. Um banco de dados pode, por meio de uma aplicação, escrever em um arquivo XML, e um outro banco distinto pode então ler esses mesmos dados.● Gabarito: CERTO.

Marco - Questões!!!Marco - Questões!!!

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

29

[CESPE 2010 INMETRO – Cargo 12 – Questão 43] A XML é uma tecnologia para criar linguagens de marcação, a fim de descrever, de forma estruturada, dados de vários tipos. Com base nessa tecnologia, assinale a opção correta.● [A] Um documento XML é considerado bem-formado se ele

estiver sintaticamente correto. A sintaxe da XML requer pelo menos dois elementos como nó raiz, uma marca de abertura e de finalização para cada elemento, as marcas corretamente alinhadas e os valores de atributos entre aspas.

Marco - Questões!!!Marco - Questões!!!

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

30

[CESPE 2010 INMETRO – Cargo 12 – Questão 43] A XML é uma tecnologia para criar linguagens de marcação, a fim de descrever, de forma estruturada, dados de vários tipos. Com base nessa tecnologia, assinale a opção correta.● [A] Um documento XML é considerado bem-formado se ele

estiver sintaticamente correto. A sintaxe da XML requer pelo menos dois um elementos como nó raiz, uma marca de abertura e de finalização para cada elemento, as marcas corretamente alinhadas e os valores de atributos entre aspas duplas.● Gabarito: ERRADO.

Marco - Questões!!!Marco - Questões!!!

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

31

[CESPE 2010 EMBASA – Cargo 48] Acerca do XML, julgue os itens seguintes.● [67] Uma tag em XML começa com o símbolo < e termina com

o símbolo >. Pode ser de três tipos: tag de início, como em <section>; de fim, como, por exemplo, em </section>; ou de elementos vazios, como, por exemplo, <line-break/>.

Marco - Questões!!!Marco - Questões!!!

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

32

[CESPE 2010 EMBASA – Cargo 48] Acerca do XML, julgue os itens seguintes.● [67] Uma tag em XML começa com o símbolo < e termina com

o símbolo >. Pode ser de três tipos: tag de início, como em <section>; de fim, como, por exemplo, em </section>; ou de elementos vazios, como, por exemplo, <line-break/>.● Gabarito: CERTO.

Marco - Questões!!!Marco - Questões!!!

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

33

[CESPE 2010 BASA – Cargo 16]

Marco - Questões!!!Marco - Questões!!!

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

34

[CESPE 2010 BASA – Cargo 16] Com base na estrutura do documento XML apresentado acima, julgue os próximos itens.● [103] As tags <autor>, <titulo>, <ano>, <preco>,

<lancamento> e <oferta> são atributos da entidade <livro>.

Marco - Questões!!!Marco - Questões!!!

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

35

[CESPE 2010 BASA – Cargo 16] Com base na estrutura do documento XML apresentado acima, julgue os próximos itens.● [103] As tags <autor>, <titulo>, <ano>, <preco>,

<lancamento> e <oferta> são atributos elementos filho da entidade <livro>.● Gabarito: ERRADO.

Marco - Questões!!!Marco - Questões!!!

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

36

[CESPE 2010 UNIPAMPA – Cargo 49] Julgue os itens, a respeito de tecnologias web.● [103] O trecho de documento XML a seguir está

sintaticamente correto.

Marco - Questões!!!Marco - Questões!!!

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

37

[CESPE 2010 UNIPAMPA – Cargo 49] Julgue os itens, a respeito de tecnologias web.● [103] O trecho de documento XML a seguir não está

sintaticamente correto.

● Gabarito: ERRADO.● Os valores de atributos não estão entre aspas duplas.

Marco - Questões!!!Marco - Questões!!!

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

38

[CESPE 2010 UNIPAMPA – Cargo 2] Julgue os próximos itens, a respeito de tecnologias Web.● [111] Quando um documento XML tem sintaxe correta,

considera-se que ele seja bem formado. Para ser válido, o documento XML precisa, além ser bem formado, seguir obrigatoriamente as regras de uma DTD (Document Type Definition) especificada.

Marco - Questões!!!Marco - Questões!!!

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

39

[CESPE 2010 UNIPAMPA – Cargo 2] Julgue os próximos itens, a respeito de tecnologias Web.● [111] Quando um documento XML tem sintaxe correta,

considera-se que ele seja bem formado. Para ser válido, o documento XML precisa, além ser bem formado, seguir obrigatoriamente as regras de uma DTD (Document Type Definition) especificada.● Gabarito: CERTO.● Um XML “válido” é um documento:

– “Bem formado”– Que também está de acordo com as regras de um:

● Document Type Definition (DTD) ou● XML Schema

Marco - Questões!!!Marco - Questões!!!

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

40

[CESPE 2009 TRE/PR – Cargo 1] Quanto ao ambiente de desenvolvimento de aplicações para a Internet, julgue os itens.● [67] Os validadores XML verificam se os documentos escritos

em XML estão corretos.● [68] Um validador XML não indicará erro, se receber o trecho

de código a seguir para verificar.

Marco - Questões!!!Marco - Questões!!!

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

41

[CESPE 2009 TRE/PR – Cargo 1] Quanto ao ambiente de desenvolvimento de aplicações para a Internet, julgue os itens.● [67] Os validadores XML verificam se os documentos escritos

em XML estão corretos.● Gabarito: CERTO.

● [68] Um validador XML não indicará erro, se receber o trecho de código a seguir para verificar.● Gabarito: ERRADO, mas era para ser CERTO.● Utilizando os seguintes validadores, o trecho não apresenta

erros:– http://validator.w3.org/ – http://w3schools.com/xml/xml_validator.asp – http://www.validome.org/xml/

Marco - Questões!!!Marco - Questões!!!

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

42

[CESPE 2008 TST] Considerando os sistemas de numeração e a representação da informação para sistemas de informática e de comunicação, julgue os itens a seguir.● [51] Em XML (extensible markup language), a definição dos

dados pode utilizar referências a outros tipos de dados previamente definidos.

Marco - Questões!!!Marco - Questões!!!

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

43

[CESPE 2008 TST] Considerando os sistemas de numeração e a representação da informação para sistemas de informática e de comunicação, julgue os itens a seguir.● [51] Em XML (extensible markup language), a definição dos

dados pode utilizar referências a outros tipos de dados previamente definidos.● Gabarito: CERTO.

Marco - Questões!!!Marco - Questões!!!

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

44

[CESPE 2008 TJ/CE]

Marco - Questões!!!Marco - Questões!!!

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

45

[CESPE 2008 TJ/CE] Apresenta-se acima o conteúdo de um documento XML usado no framework hibernate. Julgue os seguintes itens relativos às informações apresentadas e aos conceitos de desenvolvimento de aplicações e bancos de dados.● [80] O documento declara apenas três elementos XML, sendo:

um vazio; outro que não declara atributos; e outro que possui mais de um atributo declarado.

Marco - Questões!!!Marco - Questões!!!

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

46

[CESPE 2008 TJ/CE] Apresenta-se acima o conteúdo de um documento XML usado no framework hibernate. Julgue os seguintes itens relativos às informações apresentadas e aos conceitos de desenvolvimento de aplicações e bancos de dados.● [80] O documento declara apenas três quatro elementos XML,

sendo: o elemento raiz, um vazio; outro que não declara atributos; e outro que possui mais de um atributo declarado.● Gabarito: ERRADO.

Marco - Questões!!!Marco - Questões!!!

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

47

[CESPE 2008 SERPRO – Cargo 17] No referente à formatação de dados, julgue os seguintes itens.● [105] Em cada documento XML pode haver elementos e

atributos; os atributos fornecem informações que descrevem elementos; os elementos são identificados por tags; os nomes de tags estão inclusos entre sinais de menor e de maior; os elementos complexos são construídos hierarquicamente a partir de outros elementos; nomes de tags são definidos de modo a descrever o significado dos elementos de dados.

Marco - Questões!!!Marco - Questões!!!

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

48

[CESPE 2008 SERPRO – Cargo 17] No referente à formatação de dados, julgue os seguintes itens.● [105] Em cada documento XML pode haver elementos e

atributos; os atributos fornecem informações que descrevem elementos; os elementos são identificados por tags; os nomes de tags estão inclusos entre sinais de menor e de maior; os elementos complexos são construídos hierarquicamente a partir de outros elementos; nomes de tags são definidos de modo a descrever o significado dos elementos de dados.● Gabarito: CERTO.

Marco - Questões!!!Marco - Questões!!!

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

49

[CESPE 2008 IPEA – Cargo 3] Com o desenvolvimento das tecnologias da informação foi possível realizar a comunicação multi-plataformas aumentando a complexidade do controle dos dados operacionais. Relativos a arquitetura e tecnologias de sistemas de informação, julgue os itens a seguir.● [115] O modelo XML (extended markup language) usa

estruturas de árvores hierárquicas, combina conceitos de banco de dados com os de modelos de representação de documentos.

Marco - Questões!!!Marco - Questões!!!

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

50

[CESPE 2008 IPEA – Cargo 3] Com o desenvolvimento das tecnologias da informação foi possível realizar a comunicação multi-plataformas aumentando a complexidade do controle dos dados operacionais. Relativos a arquitetura e tecnologias de sistemas de informação, julgue os itens a seguir.● [115] O modelo XML (extended markup language) usa

estruturas de árvores hierárquicas, combina conceitos de banco de dados com os de modelos de representação de documentos.● Gabarito: CERTO.

Marco - Questões!!!Marco - Questões!!!

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

51

[CESPE 2008 IPEA – Cargo 3] Com o desenvolvimento das tecnologias da informação foi possível realizar a comunicação multi-plataformas aumentando a complexidade do controle dos dados operacionais. Relativos a arquitetura e tecnologias de sistemas de informação, julgue os itens a seguir.● [115] O modelo XML (extended markup language) usa

estruturas de árvores hierárquicas, combina conceitos de banco de dados com os de modelos de representação de documentos.● Gabarito: CERTO.

Marco - Questões!!!Marco - Questões!!!

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

52

[CESPE 2004 SGA/DF] Com o desenvolvimento das tecnologias da informação foi possível realizar a comunicação multi-plataformas aumentando a complexidade do controle dos dados operacionais. Relativos a arquitetura e tecnologias de sistemas de informação, julgue os itens a seguir.● [52] A XML (extensible markup language) é uma linguagem

que objetiva descrever o significado dos elementos de dados de um documento,de modo que uma pessoa ou processo computacional que leia tal documento possa interpretar os rótulos (tags) XML presentes nesse documento e fazer associações semânticas a partir desses rótulos.

Marco - Questões!!!Marco - Questões!!!

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

53

[CESPE 2004 SGA/DF] Com o desenvolvimento das tecnologias da informação foi possível realizar a comunicação multi-plataformas aumentando a complexidade do controle dos dados operacionais. Relativos a arquitetura e tecnologias de sistemas de informação, julgue os itens a seguir.● [52] A XML (extensible markup language) é uma linguagem

que objetiva descrever o significado dos elementos de dados de um documento,de modo que uma pessoa ou processo computacional que leia tal documento possa interpretar os rótulos (tags) XML presentes nesse documento e fazer associações semânticas a partir desses rótulos.● Gabarito: CERTO.

Marco - Questões!!!Marco - Questões!!!

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

54

[CESPE 2004 ANVISA] A respeito da sintaxe e da semântica da XML (extensible markup language), julgue os itens subsequentes.● [65] Um documento XML normalmente começa com uma

declaração XML, tal como <?xml version = “1.0” standalone=“yes” encoding=“UTF-8”?>.

Marco - Questões!!!Marco - Questões!!!

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

55

[CESPE 2004 ANVISA] A respeito da sintaxe e da semântica da XML (extensible markup language), julgue os itens subseqüentes.● [65] Um documento XML normalmente começa com uma

declaração XML, tal como <?xml version = “1.0” standalone=“yes” encoding=“UTF-8”?>.● Gabarito: CERTO.

Marco - Questões!!!Marco - Questões!!!

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

56

[CESGRANRIO 2009 BNDES – Analista de Sistemas – Desenvolvimento – Questão 66] Considere as afirmativas a seguir sobre tecnologias de desenvolvimento para aplicações na Internet.● II. XML é uma metalinguagem capaz de descrever linguagens

de marcação, utilizada também como elemento de integração entre sistemas.

Marco - Questões!!!Marco - Questões!!!

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

69

Marco - Questões!!!Marco - Questões!!!● [RGA 2011] <xs:pattern value="[0-9][0-9][0-9]"/> é o mesmo

que <xs:pattern value="[0-9]{3}"/>.● [RGA 2011] <xs:enumeration

value="Cerato"/><xs:enumeration value="ix35"/> é diferente de <xs:pattern value="Cerato|ix35"/>.

● [RGA 2011] <xs:pattern value="[a-zA-Z][a-zA-Z][a-zA-Z]"/>.

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

70

Marco - Questões!!!Marco - Questões!!!● [RGA 2011] <xs:pattern value="[0-9][0-9][0-9]"/> é o mesmo

que <xs:pattern value="[0-9]{3}"/>.● Gabarito: CERTO.

● [RGA 2011] <xs:enumeration value="Cerato"/><xs:enumeration value="ix35"/> é diferente de o mesmo que <xs:pattern value="Cerato|ix35"/>● Gabarito: ERRADO.

● [RGA 2011] <xs:pattern value="[a-zA-Z][a-zA-Z][a-zA-Z]"/>.● Aceitam-se três letras maiúsculas ou minúsculas de “a” a “z”.

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

71

Marco - Questões!!!Marco - Questões!!!● [RGA 2011] <xs:pattern value="[abc]"/>.● [RGA 2011] Com <xs:pattern value="([a-z])*"/>, aceitam-se

uma ou mais ocorrências de letras minúsculas de “a” a “z” e com <xs:pattern value="([a-z][A-Z])+"/>, aceitam-se zero ou mais ocorrências de letras minúsculas de “a” a “z”.

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

72

Marco - Questões!!!Marco - Questões!!!● [RGA 2011] <xs:pattern value="[abc]"/>.

● Aceita-se um ÚNICO valor: a, b ou c.● [RGA 2011] Com <xs:pattern value="([a-z])*"/>, aceitam-se

uma zero ou mais ocorrências de letras minúsculas de “a” a “z” e com <xs:pattern value="([a-z][A-Z])+"/>, aceitam-se zero uma ou mais ocorrências de letras minúsculas de “a” a “z” pares de letras (uma minúscula seguida de maiúscula).● Gabarito: ERRADO.● *: zero ou mais ocorrências.● +: uma ou mais ocorrências.

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

73

ReferênciasReferências● XML Schema Tutorial da W3 Schools:

http://w3schools.com/schema/default.asp● X100 - XML: uma introdução prática – Helder Rocha:

http://www.argonavis.com.br/cursos/xml/x100/index.html ● XML Schema e namespaces:

http://www.lia.ufc.br/~eti2005/menu/modulos/XML/XML_Schema_e_Namespaces.pdf

● O'Reilly XML Schema: http://docstore.mik.ua/orelly/xml/schema/index.htm

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

1

XML SchemaXML SchemaParte IIParte II

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

2

TópicosTópicos● Indicadores● Indicadores de Ordem● Indicadores de Ocorrência● Exemplo de um XML Schema● Exemplo de um documento XML● Indicadores de Grupo● Grupo de elementos● Grupo de atributos● Alguma dúvida? Podemos prosseguir?● Elemento <any> e <anyAttribute>

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

3

TópicosTópicos● Exemplo do uso do <any>● Exemplo do uso do <anyAttribute>● Substituição de elementos● Exemplo do uso do substitutionGroup● Hierarquia de tipos● Alguma dúvida? Podemos prosseguir?● Marco – Questões!!!● Referências

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

4

IndicadoresIndicadores● São utilizados para controlar como os elementos filhos devem

ser usados nos documentos XML● Há sete indicadores:

● Indicadores de Ordem:– All– Choice– Sequence

● Indicadores de Ocorrência:– maxOccurs– minOccurs

● Indicadores de grupo:– Group– attributeGroup

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

5

Indicadores de OrdemIndicadores de Ordem<sequence> especifica que os elementos filhos devem aparecer em uma ordem específica:

<xs:element name="pessoa">

<xs:complexType>

<xs:sequence>

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

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

</xs:sequence>

</xs:complexType>

</xs:element>

<choice> especifica que um ou outro elemento filho pode ocorrer:

<xs:element name="pessoa">

<xs:complexType>

<xs:choice>

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

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

</xs:choice>

</xs:complexType>

</xs:element>

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

6

Indicadores de OrdemIndicadores de Ordem<all> especifica que os elementos filhos pode aparecer em qualquer ordem e que cada elemento deve ocorrer apenas uma vez:

<xs:element name="pessoa">

<xs:complexType>

<xs:all>

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

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

</xs:all>

</xs:complexType>

</xs:element>

Usando o indicador <all>, podemosespecificar o indicador <minOccurs>

em 0 ou 1 e <maxOccurs>apenas em 1

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

7

Indicadores de OcorrênciaIndicadores de Ocorrência<maxOccurs> especifica o número máximo de vezes que um elemento pode ocorrer:

<xs:element name="pessoa">

<xs:complexType>

<xs:sequence>

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

<xs:element name="dependente" type="xs:string" maxOccurs="10"/>

</xs:sequence>

</xs:complexType>

</xs:element>

O exemplo indica que o elemento“dependente” pode ocorre no

mínimo uma vez(o valor padrão para minOccurs é 1)

e no máximo dez vezesem um elemento "pessoa"

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

8

Indicadores de OcorrênciaIndicadores de Ocorrência<minOccurs> especifica o número mínimo de vezes que um elemento pode ocorrer:

<xs:element name="pessoa">

<xs:complexType>

<xs:sequence>

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

<xs:element name="dependente" type="xs:string" maxOccurs="10" minOccurs="0"/>

</xs:sequence>

</xs:complexType>

</xs:element>

O exemplo mostra que o elemento“dependente” pode ocorrer nenhuma

Vez e um máximo de dez em umelemento “pessoa”

Para permitir que um elemento pareçaum número ilimitado de vezes, use

a instrução maxOccurs=“unbounded”(o valor padrão para maxOccurs é 1)

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

9

Exemplo de um XML SchemaExemplo de um XML Schema <xs:element name="dependente" type="xs:string"

minOccurs="0" maxOccurs="5"/>

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:schema>

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

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

elementFormDefault="qualified">

<xs:element name="pessoas">

<xs:complexType>

<xs:sequence>

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

<xs:complexType>

<xs:sequence>

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

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

10

Exemplo de um documento XMLExemplo de um documento XML<pessoa>

<nome>Roberto Gomes</nome>

<dependente>Helena</dependente>

<dependente>José</dependente>

<dependente>João</dependente>

<dependente>Carlos</dependente>

</pessoa>

<pessoa>

<nome>Francisco Sousa</nome>

</pessoa>

</pessoas>

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

<pessoas xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:noNamespaceSchemaLocation= "familia.xsd">

<pessoa>

<nome>Maria da Silva</nome>

<dependente>Carolina</dependente>

</pessoa>

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

11

Indicadores de GrupoIndicadores de Grupo● Grupos de elementos

● Usamos esse indicador para montar um grupo de elementos reutilizáveis na definição de vários tipos complexos para elementos

● Utilizamos os indicadores de ordem (all, choice, ou sequence) dentro da declaração de um grupo

● Grupos de atributos● Mesma finalidade dos grupos de elementos, porém com foco em

grupos de atributos● Não é preciso o uso dos indicadores de ordem

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

12

Grupo de elementosGrupo de elementos<xs:complexType name="infoPessoa">

<xs:sequence>

<xs:group ref="grupoPessoa"/>

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

</xs:sequence>

</xs:complexType>

<xs:group name="grupoPessoa">

<xs:sequence>

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

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

<xs:element name="dataNascimento" type="xs:date"/>

</xs:sequence>

</xs:group>

<xs:element name="pessoa" type="infoPessoa"/>

Muito parecido com o usodo <extension> (próximo slide)

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

13

Como definir elementos complexosComo definir elementos complexos<!-- Definição do elemento -->

<xs:element name="servidorFederal" type="infoCompletoPessoa"/>

<!-- informações básicas -->

<xs:complexType name="infoPessoa">

<xs:sequence>

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

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

</xs:sequence>

</xs:complexType>

<!-- informações completas -->

<xs:complexType name="infoCompletoPessoa">

<xs:complexContent>

<xs:extension base="infoPessoa">

<xs:sequence>

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

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

</xs:sequence>

</xs:extension>

</xs:complexContent>

</xs:complexType>Podemos criar um tipo complexo

a partir de outro já existente

<extension>Permite estender

um tipo

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

14

Grupo de atributosGrupo de atributos<xs:element name="pessoa">

<xs:complexType>

<xs:attributeGroup ref="grupoAtributosPessoa"/>

</xs:complexType>

</xs:element>

<xs:attributeGroup name="grupoAtributosPessoa">

<xs:attribute name="nome" type="xs:string"/>

<xs:attribute name="sobrenome" type="xs:string"/>

<xs:attribute name="dataNascimento" type="xs:date"/>

</xs:attributeGroup>

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

15

Alguma dúvida? Podemos prosseguir?Alguma dúvida? Podemos prosseguir?

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

16

Marco - Questões!!!Marco - Questões!!!● [RGA 2011] Usando o indicador <all>, podemos especificar o

indicador <minOccurs> em 1 e <maxOccurs> apenas em 0 ou 1.

● [RGA 2011] O valor padrão minOccurs e maxOccurs é 1.

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

17

Marco - Questões!!!Marco - Questões!!!● [RGA 2011] Usando o indicador <all>, podemos especificar o

indicador <minOccurs> em 0 ou 1 e <maxOccurs> apenas em 0 ou 1.● Gabarito: ERRADO.

● [RGA 2011] O valor padrão tanto para minOccurs quanto para maxOccurs é 1.● Gabarito: CERTO.

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

18

Marco - Questões!!!Marco - Questões!!!● [RGA 2011] Para permitir que um elemento pareça um número

ilimitado de vezes, use a instrução maxOccurs=“[...]”.● [RGA 2011] No indicador de grupo de elementos, não é

preciso o uso dos indicadores de ordem. Já no indicador de grupo de atributos, utilizamos os indicadores de ordem.

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

19

Marco - Questões!!!Marco - Questões!!!● [RGA 2011] Para permitir que um elemento pareça um número

ilimitado de vezes, use a instrução maxOccurs=“unbounded”.● [RGA 2011] No indicador de grupo de elementos, não é

preciso o uso dos utilizamos os indicadores de ordem. Já no indicador de grupo de atributos, utilizamos os não é preciso o uso dos indicadores de ordem.● Gabarito: ERRADO.

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

20

Elemento <any> e <anyAttribute>Elemento <any> e <anyAttribute>● São usados para fazer documentos extensíveis● Permitem aos documentos conterem elementos adicionais que

não estão declarados no esquema XML

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

21

Exemplo do uso do <any>Exemplo do uso do <any> <xs:sequence>

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

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

<xs:any minOccurs="0"/>

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:schema>

Criando o esquema pessoas.xsd:

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

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.empresa.com.br" xmlns="http://www.empresa.com.br" elementFormDefault="qualified">

<xs:element name="pessoas">

<xs:complexType>

<xs:sequence>

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

<xs:complexType>

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

22

Exemplo do uso do <any>Exemplo do uso do <any> </xs:sequence>

</xs:complexType>

</xs:element>

</xs:schema>

Criando o esquema dependentes.xsd:

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

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.empresa.com.br" xmlns="http://www.empresa.com.br" elementFormDefault="qualified">

<xs:element name="dependente">

<xs:complexType>

<xs:sequence>

<xs:element name="nome" type="xs:string"

maxOccurs="unbounded"/>

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

23

Exemplo do uso do <any>Exemplo do uso do <any></pessoa>

<pessoa>

<nome>Roberto</nome>

<sobrenome>Gome</sobrenome>

</pessoa>

</pessoas>

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

<pessoas xmlns="http://www.empresa.com.br"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.empresa.com.br pessoas.xsd dependentes.xsd">

<pessoa>

<nome>Maria</nome>

<sobrenome>Silva</sobrenome>

<dependente>

<nome>Carolina</nome>

</dependente>

O documento XML utilizacomponentes de dois esquemas

diferentes: “pessoas.xsd”e “dependentes.xsd”

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

24

Exemplo do uso do <anyAttribute>Exemplo do uso do <anyAttribute> <xs:sequence>

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

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

<xs:anyAttribute/>

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:schema>

Criando o esquema pessoas.xsd:

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

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.empresa.com.br" xmlns="http://www.empresa.com.br" elementFormDefault="qualified">

<xs:element name="pessoas">

<xs:complexType>

<xs:sequence>

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

<xs:complexType>

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

25

Exemplo do uso do <anyAttribute>Exemplo do uso do <anyAttribute> </xs:simpleType>

</xs:attribute>

</xs:element>

</xs:schema>

Criando o esquema atributoSexo.xsd:

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

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.empresa.com.br" xmlns="http://www.empresa.com.br" elementFormDefault="qualified">

<xs:attribute name="sexo">

<xs:simpleType>

<xs:restriction base="xs:string">

<xs:pattern value="masculino|feminino"/>

</xs:restriction>

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

26

Exemplo do uso do <anyAttribute>Exemplo do uso do <anyAttribute><pessoa sexto="masculino">

<nome>Roberto</nome>

<sobrenome>Gome</sobrenome>

</pessoa>

</pessoas>

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

<pessoas xmlns="http://www.empresa.com.br"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.empresa.com.br pessoas.xsd atributoSexo.xsd">

<pessoa sexto="feminino">

<nome>Maria</nome>

<sobrenome>Silva</sobrenome>

</pessoa> O documento XML utilizacomponentes de dois esquemas

diferentes: “pessoas.xsd”e “atributoSexo.xsd”

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

27

Substituição de elementosSubstituição de elementos● Um exemplo para substituição de elementos é quando

utilizamos um XML Schema para validar documentos XML de vários idiomas

● Cada idioma terá seu conjunto de palavras para definir seu documento XML de mesmo contexto, porém o XML Schema pode ser o mesmo para validar todos eles

● Para resolver este problema, nós podemos definir um substitutionGroup no esquema XML

● Para evitar que um elemento seja substituído, basta ativar o atributo “block” com o valor “substitution”:● <xs:element name="name" type="xs:string"

block="substitution"/>

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

28

Exemplo do uso do substitutionGroupExemplo do uso do substitutionGroup<xs:element name="modelo" type="xs:string"/> <!-- Elemento chave -->

<xs:element name="samhail" substitutionGroup="modelo"/> <!-- Irlandês -->

<xs:element name="model" substitutionGroup="modelo"/> <!-- Croata -->

<xs:complexType name="infoVeiculo">

<xs:sequence>

<xs:element ref="modelo"/>

</xs:sequence>

</xs:complexType>

<xs:element name="veiculo" type="infoVeiculo"/> <!-- Elemento chave -->

<xs:element name="feithicle" substitutionGroup="veiculo"/> <!-- Irlandês -->

<xs:element name="vozila" substitutionGroup="veiculo"/> <!-- Croata -->

Primeiro, declaramos oelemento chave para depois

declararmos outros elementosque o substituirão

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

29

Exemplo do uso do substitutionGroupExemplo do uso do substitutionGroup<veiculo>

<modelo>Cerato</modelo>

</veiculo>

<!-- Irlandês -->

<feithicle>

<samhail>Cerato</samhail>

</feithicle>

<!-- Croata -->

<vozila>

<model>Cerato</model>

</vozila>

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

30

Alguma dúvida? Podemos prosseguir?Alguma dúvida? Podemos prosseguir?

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

31

ReferênciasReferências● XML Schema Tutorial da W3 Schools:

http://w3schools.com/schema/default.asp● X100 - XML: uma introdução prática – Helder Rocha:

http://www.argonavis.com.br/cursos/xml/x100/index.html ● XML Schema e namespaces:

http://www.lia.ufc.br/~eti2005/menu/modulos/XML/XML_Schema_e_Namespaces.pdf

● O'Reilly XML Schema: http://docstore.mik.ua/orelly/xml/schema/index.htm

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

1

XML SchemaXML SchemaQuestões deQuestões de

concursosconcursos

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

2

[FGV 2009 MEC – Arquiteto de Sistema – Questão 74 – Item III - Adaptado] Com relação às tecnologias relacionadas a XML (eXtensible Markup Language), leia os trechos a seguir.● XSD é uma linguagem baseada no formato XML para definição

de regras de validação em documentos XML. Esta linguagem é uma alternativa ao DTD, cuja sintaxe não é baseada no formato XML.

Marco - Questões!!!Marco - Questões!!!

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

3

[FGV 2009 MEC – Arquiteto de Sistema – Questão 74 – Item III - Adaptado] Com relação às tecnologias relacionadas a XML (eXtensible Markup Language), leia os trechos a seguir.● XSD é uma linguagem baseada no formato XML para definição

de regras de validação em documentos XML. Esta linguagem é uma alternativa ao DTD, cuja sintaxe não é baseada no formato XML. ● Gabarito: CERTO.

Marco - Questões!!!Marco - Questões!!!

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

4

[FGV 2008 Senado Federal – Analista de Sistemas – Questão 45]

Marco - Questões!!!Marco - Questões!!!

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

29

Marco - Questões!!!Marco - Questões!!![CESGRANRIO 2008 Petrobrás - Técnico em Informática] 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.

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

30

Marco - Questões!!!Marco - Questões!!![CESGRANRIO 2008 Petrobrás - Técnico em Informática] 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 menos memória do que DOM.

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

31

Marco - Questões!!!Marco - Questões!!![CESGRANRIO 2008 Petrobrás - Técnico em Informática] 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.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.

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

32

Marco - Questões!!!Marco - Questões!!![CESPE 2009 INMETRO – Cargo 5] Julgue os itens seguintes a respeito das tecnologias de bancos de dados e aplicações web.● [75] Na linguagem XML, todo atributo é parte de um

elemento, todo elemento é raiz ou filho de uma raiz, a construção de uma árvore pode empregar o modelo DOM, uma transformação pode ser direcionada por um documento XSLT, e quando se deseja consumir pouca memória no processamento de XML pode-se empregar um parser do tipo SAX.

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

33

Marco - Questões!!!Marco - Questões!!![CESPE 2009 INMETRO – Cargo 5] Julgue os itens seguintes a respeito das tecnologias de bancos de dados e aplicações web.● [75] Na linguagem XML, todo atributo é parte de um

elemento, todo elemento é raiz ou filho de uma raiz, a construção de uma árvore pode empregar o modelo DOM, uma transformação pode ser direcionada por um documento XSLT, e quando se deseja consumir pouca memória no processamento de XML pode-se empregar um parser do tipo SAX.● Gabarito: CERTO.

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

34

Marco - Questões!!!Marco - Questões!!![CESPE 2009 INMETRO – Cargo 10] Em relação a formatação de dados, HTML e XML, julgue os itens a seguir.● [113] Arquivos XML permitem o processamento automatizado

de seus dados por meio de tecnologias como DOM e SAX. Os arquivos HTML, por sua vez, só podem ser processados automaticamente por meio da tecnologia SAX.

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

35

Marco - Questões!!!Marco - Questões!!![CESPE 2009 INMETRO – Cargo 10] Em relação a formatação de dados, HTML e XML, julgue os itens a seguir.● [113] Arquivos XML permitem o processamento automatizado

de seus dados por meio de tecnologias como DOM e SAX. Os arquivos HTML, por sua vez, só podem ser processados automaticamente por meio da tecnologia SAX e DOM.● Gabarito: ERRADO.

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

36

ReferênciasReferências● XML DOM Tutorial da W3 Schools:

http://w3schools.com/dom/default.asp● X100 - XML: uma introdução prática – Helder Rocha:

http://www.argonavis.com.br/cursos/xml/x100/index.html● APIs Java para XML:

http://www.inf.ufrgs.br/gppd/disc/inf01008/trabalhos/sem01-1/t2/apis_xml_java/

● SAX Project: http://sax.sourceforge.net/

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

1

XPathXPath

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

2

TópicosTópicos● Introdução● Exemplo de um documento XML● Exemplo de XPath● Terminologia Xpath● Relacionamentos dos nós● Selecionando nós● Exemplo de um documento XML● Exemplos de seleções de nós● Predicados● Exemplos de predicados

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

3

TópicosTópicos● Selecionando nós desconhecidos● Exemplos de seleção de nós desconhecidos● Selecionando alguns caminhos● Eixos XPath● Caminhos de localização● Uso dos eixos● Exemplos de formação de etapas● Operadores● Alguma dúvida? Podemos prosseguir?● Marco - Questões!!!

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

4

IntroduçãoIntrodução● É uma linguagem de expressão para selecionar nós ou

conjuntos de nós através da especificação de seus caminhos de localização no documento XML

● Usa expressões de caminho para selecionar os nós ou conjuntos de nós em um documento XML

● A sintaxe do XPath foi inspirada, em parte, pelos sistemas de arquivos de um sistema operacional

● Contém uma biblioteca de funções padrão● É o elemento principal em XSLT● Serve para navegar pelos nós e localizar dados● É uma recomendação da W3C

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

5

Exemplo de um documento XMLExemplo de um documento XML<preco>85000</preco>

</veiculo>

<veiculo tipo="moto">

<marca>Yamaha</marca>

<modelo>YZF-R1</modelo>

<motor>1000 cc</motor>

<preco>25000</preco>

</veiculo>

<garagem quantidade="3"/>

</meus_veiculos>

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

<meus_veiculos>

<veiculo tipo="carro">

<marca>Kia</marca>

<modelo>Cerato</modelo>

<motor>2.0</motor>

<preco>50000</preco>

</veiculo>

<veiculo tipo="carro">

<marca>Hynduai</marca>

<modelo>ix35</modelo>

<motor>2.0</motor>

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

6

Exemplo de XPathExemplo de XPath● A expressão XPath abaixo seleciona o elemento raiz

meus_veiculos:● /meus_veiculos

● A expressão XPath abaixo seleciona todos os elementos veiculo do elemento meus_veiculos:● /meus_veiculos/veiculo

● A expressão XPath abaixo seleciona todos os elementos modelo de todos os elementos veiculo do elemento meus_veiculos:● /meus_veiculos/veiculo/modelo

● Se o caminho começa com uma barra ( / ) ele representa um caminho absoluto para um elemento

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

7

Terminologia XPathTerminologia XPath● Em XPath, existem sete (7) tipos de nós:

● Elemento● Atributo● Texto● Namespace● Instrução de processamento● Comentário● Nós do documento

● Documentos XML são tratados como árvores de nós● O elemento mais alto da árvore é chamado o elemento raiz

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

8

Terminologia XPathTerminologia XPath● Valores atômicos

● São nós sem:– Filhos ou– Pais

● Exemplos– Kia– carro

● Item● São valores:

– Atômicos ou– Nós

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

9

Relacionamentos dos nósRelacionamentos dos nós● Pais: cada elemento e atributo tem um pai● Crianças: nós do elemento pode ter zero, um ou mais filhos● Irmãos: nós que temos o mesmo pai● Antepassados: pais de um nó, o pai do pai, etc● Descendentes: filhos de um nó, filhos dos filhos, etc

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

10

Selecionando nósSelecionando nós

ExpressãoExpressão DescriçãoDescrição

Nome do nó Seleciona todos os nós filhos com o nome citado

/ Seleciona a partir do nó raiz

// Seleciona os nós no documento a partir do nó atual que correspondam a seleção, não importando onde eles estão

. Seleciona o nó atual

.. Seleciona o pai do nó atual

@ Seleciona os atributos

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

11

Exemplo de um documento XMLExemplo de um documento XML<preco>85000</preco>

</veiculo>

<veiculo tipo="moto">

<marca>Yamaha</marca>

<modelo>YZF-R1</modelo>

<motor>1000 cc</motor>

<preco>25000</preco>

</veiculo>

<garagem quantidade="3"/>

</meus_veiculos>

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

<meus_veiculos>

<veiculo tipo="carro">

<marca>Kia</marca>

<modelo>Cerato</modelo>

<motor>2.0</motor>

<preco>50000</preco>

</veiculo>

<veiculo tipo="carro">

<marca>Hynduai</marca>

<modelo>ix35</modelo>

<motor>2.0</motor>

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

12

Exemplos de seleções de nósExemplos de seleções de nós

ExpressãoExpressão DescriçãoDescrição

veiculo Seleciona todos os nós filhos do elemento veiculo

/meus_veiculos Seleciona a raiz meus_veiculos

meus_veiculos/veiculo Seleciona todos os elementos veiculo que são filhos de meus_veiculos

//veiculo Seleciona todos os elementos veiculo, não importando onde eles estão

meus_veiculos//marcaSeleciona todos os elementos marca que são descendente do elemento meus_veiculos, não importa onde eles estão

sob esse elemento

//@tipo Seleciona todos os atributos tipo, não importando onde eles estão

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

13

PredicadosPredicados● São usados para encontrar um nó:

● Específico ou● Que contém um valor específico

● São sempre incorporados entre colchetes

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

14

Exemplos de predicadosExemplos de predicados

ExpressãoExpressão DescriçãoDescrição

/meus_veiculos/veiculo[1]Seleciona o primeiro elemento veiculo filho

de meus_veiculosNo IE5, o primeiro está na posição [0], mas

de acordo com o padrão W3C é [1]

/meus_veiculos/veiculo[last()] Seleciona o último elemento veiculo filho de meus_veiculos

/meus_veiculos/veiculo[last() - 1] Seleciona o penúltimo elemento veiculo filho de meus_veiculos

/meus_veiculos/veiculo[position() < 3] Seleciona os dois primeiros elementos veiculo filho de meus_veiculos

//veiculo[@tipo]Seleciona todos os elementos veiculo com atributo tipo, não importando onde eles

estão

//veiculo[@tipo="carro"]Seleciona todos os elementos veiculo com

atributo tipo com valor carro, não importando onde eles estão

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

15

Exemplos de predicadosExemplos de predicados

ExpressãoExpressão DescriçãoDescrição

/meus_veiculos/veiculo[preco>65000]Seleciona os elementos veiculo filho

de meus_veiculos com valor do elemento preco superior a 65.000

/meus_veiculos/veiculo[preco>65000]/modeloSeleciona os elementos modelo dos

elementos veiculo filho de meus_veiculos com valor do

elemento preco superior a 65.000

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

16

Selecionando nós desconhecidosSelecionando nós desconhecidos● Curingas XPath (wildcards) podem ser usados para selecionar

elementos XML desconhecidos

CuringaCuringa DescriçãoDescrição

* Corresponde a qualquer nó

@* Corresponde a qualquer atributo de nó

node() Corresponde a qualquer nó de qualquer tipo

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

17

Exemplos de seleção de nós desconhecidosExemplos de seleção de nós desconhecidos

ExpressãoExpressão DescriçãoDescrição

/meus_veiculos/* Seleciona todos os elementos filhos do elemento meus_veiculos

//* Seleciona todos os elementos do documento

//veiculo[@*] Seleciona todos os elementos veiculo que possuem algum atributo

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

18

Selecionando alguns caminhosSelecionando alguns caminhos● Com o uso do operador | nas expressões, podemos selecionar

alguns caminhos

ExpressãoExpressão DescriçãoDescrição

//veiculo/marca | //veiculo/modelo Seleciona todos os elementos marca E modelo de todos os elementos veiculo

//marca | //modelo Seleciona todos os elementos marca E modelo do documento

/meus_veiculos/veiculo/marca | //precoSeleciona todos os elementos marca do elemento veiculo de meus_veiculos E

todos os elementos de preco do documento

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

19

Eixos XPathEixos XPath● Definem um conjunto de nós relativo ao nó atual● Armazenam algumas informações sobre o nó atual ou outros

dentro do documento, dependendo do eixo a ser utilizado● Por exemplo, um eixo chamado informação “child” contém

informações sobre os filhos do nó atual

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

20

Eixos XPathEixos XPath

EixoEixo DescriçãoDescrição

ancestor Seleciona todos os ancestrais (pais, avós, etc) do nó atual

ancestor-or-self Seleciona o nó atual mais todos os seus ancestrais

attribute Seleciona todos os atributos do nó atual

child Seleciona todos os elementos filhos do nó atual

descendant Seleciona todos os descendentes (filhos, netos, etc) do nó atual

descendant-or-self Seleciona o nó atual mais todos os seus descendentes

following Seleciona tudo no documento depois da tag de fechamento do nó atual

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

21

Eixos XPathEixos XPath

EixoEixo DescriçãoDescrição

following-sibling Seleciona todos os irmãos depois do nó atual

namespace Seleciona todos os nós do namespace do nó atual

parent Seleciona o pai do nó atual

preceding Seleciona tudo no documento que está antes da tag de abertura do nó atual

preceding-sibling Seleciona todos os irmãos antes do nó atual

self Seleciona o nó atual

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

22

Caminhos de localizaçãoCaminhos de localização● Dois tipos de caminhos:

● Absoluto (começa com uma barra “/”):– /etapa/etapa

● Relativo– etapa/etapa

● Em ambos os casos, o caminho consiste de um ou mais níveis de localização, cada um separado por uma barra

● Cada etapa é avaliado segundo os nós no conjunto do nó atual

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

23

Caminhos de localizaçãoCaminhos de localização● Uma etapa consiste de:

● Um eixo– Define a árvore de relacionamento entre os nós selecionados e o nó

atual● Um nó de teste

– Identifica um nó ou mais nós dentro de um eixo● Zero ou mais predicados

– Facilita a seleção do conjunto de nós● A sintaxe para um nível de localização é a seguinte:

● eixo::noTeste[predicado]

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

24

Uso dos eixosUso dos eixos● As etapas vistas antes da apresentação dos eixos eram

especificadas com o caminho exato ou, pelo menos, com o uso dos curingas

● Por exemplo:● /meus_veiculos/veiculo/marca

● Podemos usar os eixos para construir o caminho de modo mais simples

● Por exemplo● child::marca● Sendo o nó atual veiculo

● Mas como saber quem é o nó atual?

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

25

Uso dos eixosUso dos eixos<xsl:template match="veiculo"> <xsl:value-of select="child::marca"/></xsl:template>

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

26

Exemplos de formação de etapasExemplos de formação de etapas

ExemploExemplo DescriçãoDescrição

child::veiculo Seleciona todos os elementos veiculo que são filhos do nó atual

attribute::tipo Seleciona o atributo tipo do nó atual

child::* Seleciona todos os elementos filhos do nó atual

attribute::* Seleciona todos os atributos do nó atual

child::text() Seleciona todos textos dos nós filhos do nó atual

child::node() Seleciona todos os nós filhos de qualquer tipo do nó atual

descendant::veiculo Seleciona todos os elementos veiculo descendentes do nó atual

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

27

Exemplos de formação de etapasExemplos de formação de etapas

ExemploExemplo DescriçãoDescrição

ancestor::veiculo Seleciona todos os elementos veiculo que são ancestrais do nó atual

ancestor-or-self::veiculo

Seleciona todos os elementos veiculo ancestrais do nó atual e, se o nó atual é um elemento veiculo, seleciona o nó atual

também

child::*/child::preco Seleciona todos os elementos preco netos do nó atual

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

28

OperadoresOperadores

OperadorOperador DescriçãoDescrição

I //marca | //modelo – Retorna um conjunto de nós com todos elementos marca e modelo

+ Adição

- Subtração

* Multiplicação

div Divisão (/ é usado para separar etapas)

= Igual

!= Diferente

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

29

OperadoresOperadores

OperadorOperador DescriçãoDescrição

< Menor que

> Maior que

<= Menor ou igual a

>= Maior ou igual a

or Ou

and E

mod Módulo

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

30

Alguma dúvida? Podemos prosseguir?Alguma dúvida? Podemos prosseguir?

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

31

● [RGA 2011] XSLT é o elemento principal do XPath.● [RGA 2011] XPath serve para navegar pelos nós e localizar

dados.● [RGA 2011] Se o caminho começa com uma barra ( / ) ele

representa um caminho relativo para um elemento.● [RGA 2011] O XPath possui alguns tipos de nós. Não estão

inclusos namespace nem instruções de processamento como tipos do XPath.

Marco - Questões!!!Marco - Questões!!!

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

32

● [RGA 2011] XSLT XPath é o elemento principal do XPath XSLT.● Gabarito: ERRADO.

● [RGA 2011] XPath serve para navegar pelos nós e localizar dados.● Gabarito: CERTO.

● [RGA 2011] Se o caminho começa com uma barra ( / ) ele representa um caminho relativo absoluto para um elemento.● Gabarito: ERRADO.

Marco - Questões!!!Marco - Questões!!!

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

33

● [RGA 2011] O XPath possui alguns tipos de nós. Não estão inclusos namespace nem e instruções de processamento como tipos do Xpath.● Gabarito: ERRADO.● Em XPath, existem sete (7) tipos de nós:

– Elemento– Atributo– Texto– Namespace– Instrução de processamento– Comentário– Nós do documento

Marco - Questões!!!Marco - Questões!!!

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

34

● [RGA 2011] Os predicados podem ser incorporados entre colchetes.

● [RGA 2011] Uma etapa consiste de eixo::noTeste[predicado].● [RGA 2011] Cada etapa de um caminho de localização é

avaliado segundo [...].

Marco - Questões!!!Marco - Questões!!!

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

35

● [RGA 2011] Os predicados podem devem ser incorporados entre colchetes.● Gabarito: ERRADO.

● [RGA 2011] Uma etapa consiste de eixo::noTeste[predicado].● Gabarito: CERTO.

● [RGA 2011] Cada etapa de um caminho de localização é avaliado segundo os nós no conjunto do nó atual.

Marco - Questões!!!Marco - Questões!!!

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

36

ExpressãoExpressão DescriçãoDescrição

veiculo

/meus_veiculos

meus_veiculos/veiculo

//veiculo

meus_veiculos//marca

//@tipo

Marco - Questões!!!Marco - Questões!!!

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

5

[FCC 2004 TRT 23ª Região - Questão 33] No âmbito da eXtensible Markup Language – XML existem padrões, modelos e estilos. Nesse sentido, analise a afirmativa abaixo: ● III. Para exibir documentos XML é necessário um mecanismo

que descreva como o documento será exibido. Esse mecanismo chama-se XSL - eXtensible Stylesheet Language e pode ser encarado como uma linguagem capaz de transformar XML em HTML, filtrar e ordenar dados em documentos XML e, ainda, formatar dados XML.● Gabarito: CERTO.

Marco - Questões!!!Marco - Questões!!!

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

6

[CESPE 2011 TJ/ES - Cargo 4] Acerca de desenvolvimento de aplicações para Web, julgue os próximos itens.● [76] 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.

Marco - Questões!!!Marco - Questões!!!

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

7

[CESPE 2011 TJ/ES - Cargo 4] Acerca de desenvolvimento de aplicações para Web, julgue os próximos itens.● [76] XSLT é um subconjunto do XML Schema XSL 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.● Gabarito: ERRADO.

Marco - Questões!!!Marco - Questões!!!

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

8

[CESPE 2010 TRT 21ª Região - Cargo 11] Com relação a interoperabilidade de sistemas, SOA e web services, arquitetura e-ping e padrões XML, julgue o item seguinte.● [77] Considere que haja a necessidade de publicar os dados

de trâmites de processos que se encontram armazenados em XML, no sítio do TRT, em formato HTML, e também em formato TXT, no servidor de arquivos. Para essa finalidade, uma solução adequada é utilizar o XSLT, pois essa é a opção recomendada pelo W3C para que documentos XML sejam transformados em documentos de texto ou documentos HTML, como nas condições requeridas.

Marco - Questões!!!Marco - Questões!!!

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

9

[CESPE 2010 TRT 21ª Região - Cargo 11] Com relação a interoperabilidade de sistemas, SOA e web services, arquitetura e-ping e padrões XML, julgue o item seguinte.● [77] Considere que haja a necessidade de publicar os dados

de trâmites de processos que se encontram armazenados em XML, no sítio do TRT, em formato HTML, e também em formato TXT, no servidor de arquivos. Para essa finalidade, uma solução adequada é utilizar o XSLT, pois essa é a opção recomendada pelo W3C para que documentos XML sejam transformados em documentos de texto ou documentos HTML, como nas condições requeridas.● Gabarito: CERTO.

Marco - Questões!!!Marco - Questões!!!

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

10

[CESPE 2010 TRE/MT - Cargo 5 – Questão 37] A respeito de XSLT, 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.

Marco - Questões!!!Marco - Questões!!!

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

11

[CESPE 2010 TRE/MT - Cargo 5 – Questão 37] A respeito de XSLT, 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 XML em documentos HTML de vários outros formatos (XML, (X)HTML, texto).

● [C] A transformação XSLT deve não precisa 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.

Marco - Questões!!!Marco - Questões!!!

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

12

[CESPE 2010 TRE/MT - Cargo 5 – Questão 37] A respeito de XSLT, assinale a opção correta.● [E] O seguinte trecho é correto.

Marco - Questões!!!Marco - Questões!!!

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

13

Marco - Questões!!!Marco - Questões!!!

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

14

Marco - Questões!!!Marco - Questões!!!

<xsl:template match="/">

<xsl:for-each select="biblioteca/livro">

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

15

[CESPE 2010 TRE/MT - Cargo 5 – Questão 37] A respeito de XSLT, assinale a opção correta.● [E] O seguinte trecho é incorreto.

Marco - Questões!!!Marco - Questões!!!

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

16

[CESPE 2010 TRE/BA - Cargo 21] Em relação à linguagem XML, julgue os próximos itens.● [51] O documento XSLT é necessário para a definição da

estrutura de um documento XML.● [52] O documento DTD permite a especificação da formatação

de saída de um XML.● [53] XML pode ser utilizado como linguagem padrão para a

integração de fonte de dados de diferentes formatos.

Marco - Questões!!!Marco - Questões!!!

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

17

[CESPE 2010 TRE/BA - Cargo 21] Em relação à linguagem XML, julgue os próximos itens.● [51] O documento XSLT XML Schema (ou DTD) é necessário

para a definição da estrutura de um documento XML.● Gabarito: ERRADO.

● [52] O documento DTD XSLT permite a especificação da formatação de saída de um XML.● Gabarito: ERRADO.

● [53] XML pode ser utilizado como linguagem padrão para a integração de fonte de dados de diferentes formatos.● Gabarito: CERTO.

Marco - Questões!!!Marco - Questões!!!

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

18

[CESPE 2010 TCU] Visando ao bom funcionamento do sistema descrito no texto, julgue os itens subsequentes, que tratam de interoperabilidade de sistemas web em Java.● [135] Considere que a equipe esteja examinando o trecho de

código de uma página XML apresentado a seguir e que um programador afirme que, se for usada para processamento de documentos XML por meio de processador XSLT (XML stylesheet transformation), essa página produzirá como saída um documento XML, que pode apresentar as tags <root> e <name>.

Marco - Questões!!!Marco - Questões!!!

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

19

Marco - Questões!!!Marco - Questões!!! <xsl:value-of select="name" />

</name>

</xsl:template>

</xsl:stylesheet>

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

<xsl:output method="xml" indent="yes"/>

<xsl:template match="/persons">

<root>

<xsl:apply-templates select="person"/>

</root>

</xsl:template>

<xsl:template match="person">

<name username="{@username}">

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

20

[CESPE 2010 TCU] Visando ao bom funcionamento do sistema descrito no texto, julgue os itens subsequentes, que tratam de interoperabilidade de sistemas web em Java.● [135] Nessa situação, se discordar do programador,

afirmando que essa análise da página não é consistente com as especificações da tecnologia a ser utilizada, o líder da equipe estará com a razão.

Marco - Questões!!!Marco - Questões!!!

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

21

[CESPE 2010 TCU] Visando ao bom funcionamento do sistema descrito no texto, julgue os itens subsequentes, que tratam de interoperabilidade de sistemas web em Java.● [135] Nessa situação, se discordar do programador,

afirmando que essa análise da página não é consistente com as especificações da tecnologia a ser utilizada, o líder da equipe estará com a razão.● Gabarito: CERTO.

Marco - Questões!!!Marco - Questões!!!

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

22

A questão anterior teve seu gabarito modificado de ERRADO para CERTO pela seguinte justificativa:● Caso a página XML de entrada não contenha exatamente uma

tag que seja a raiz do documento então a saída não será um documento XML bem formado. Portanto, a afirmação do programador de que se um documento XML for recebido pelo processador XSLT isso irá produzir um documento XML na saída (independentemente das características mencionadas) não é compatível com a especificação da tecnologia, razão pela qual o item está CERTO.

Marco - Questões!!!Marco - Questões!!!

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

23

[CESPE 2010 MPU – Cargo 52] Julgue os próximos itens acerca de XML (Extensible Markup Language).● [139] 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">

Marco - Questões!!!Marco - Questões!!!

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

24

[CESPE 2010 MPU – Cargo 52] Julgue os próximos itens acerca de XML (Extensible Markup Language).● [139] 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. ● <?xml-stylesheet type="text/xsl" href="mpuestilo.xsl"?>● Gabarito: ERRADO.

Marco - Questões!!!Marco - Questões!!!

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

25

[CESPE 2010 INMETRO – Cargo 12 – Questão 43] A XML é uma tecnologia para criar linguagens de marcação, a fim de descrever, de forma estruturada, dados de vários tipos. Com base nessa tecnologia, assinale a opção correta.● [C] A XSLT permite transformar um documento XML em HTML,

texto simples ou qualquer outro documento embasado em texto.

Marco - Questões!!!Marco - Questões!!!

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

26

[CESPE 2010 INMETRO – Cargo 12 – Questão 43] A XML é uma tecnologia para criar linguagens de marcação, a fim de descrever, de forma estruturada, dados de vários tipos. Com base nessa tecnologia, assinale a opção correta.● [C] A XSLT permite transformar um documento XML em HTML,

texto simples ou qualquer outro documento embasado em texto.● Gabarito: CERTO.

Marco - Questões!!!Marco - Questões!!!

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

27

Marco - Questões!!!Marco - Questões!!! <livro isbn="9788599296554">

<autor id="095">Dan Brown</autor>

<titulo>O Símbolo Perdido</titulo>

<ano>2009</ano>

<preco>25.00</preco>

<oferta/>

</livro>

</livraria>

<?xml version="1.0"?>

<livraria>

<livro isbn="9788598078359">

<autor id="064">Stephenie Meyer</autor>

<titulo>Lua Nova</titulo>

<ano>2008</ano>

<preco>35.00</preco>

<lancamento/>

</livro>

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

28

[CESPE 2010 BASA – Cargo 16] Com base na estrutura do documento XML apresentado acima, julgue os próximos itens.● [106] Para apresentar a lista de livros para o usuário, é

indicado o uso de XSLT para que o formato seja convertido para HTML, mas, nesse caso, é necessário que o navegador tenha esse suporte.

Marco - Questões!!!Marco - Questões!!!

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

29

[CESPE 2010 BASA – Cargo 16] Com base na estrutura do documento XML apresentado acima, julgue os próximos itens.● [106] Para apresentar a lista de livros para o usuário, é

indicado o uso de XSLT para que o formato seja convertido para HTML, mas, nesse caso, é necessário que o navegador tenha esse suporte.● Gabarito: ERRADO.● Se o browser suporta XSLT, este pode ser usado para

transformar o documento em XHTML no seu browser● Como nem todos os browsers suportam XSLT, uma solução é

transformar os documentos XML no servidor

Marco - Questões!!!Marco - Questões!!!

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

30

[CESPE 2010 ANEEL] Relativo às tecnologias, padrões e serviços web, julgue os itens a seguir.● [82] O processamento de um documento XSLT suporta como

entrada um documento XML, mas não os produz como saída.

Marco - Questões!!!Marco - Questões!!!

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

31

[CESPE 2010 ANEEL] Relativo às tecnologias, padrões e serviços web, julgue os itens a seguir.● [82] O processamento de um documento XSLT suporta como

entrada um documento XML, mas não os produz como saída.● Gabarito: ERRADO.

Marco - Questões!!!Marco - Questões!!!

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

32

[CESPE 2009 TRE/PR – Cargo 1] Quanto ao ambiente de desenvolvimento de aplicações para a Internet, julgue o item.● [69] As folhas de estilos XSLT permitem transformar

documentos XML para documentos HTML.

Marco - Questões!!!Marco - Questões!!!

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

33

[CESPE 2009 TRE/PR – Cargo 1] Quanto ao ambiente de desenvolvimento de aplicações para a Internet, julgue o item.● [69] As folhas de estilos XSLT permitem transformar

documentos XML para documentos HTML.● Gabarito: CERTO.

Marco - Questões!!!Marco - Questões!!!

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

34

Marco - Questões!!!Marco - Questões!!! <xsl:for-each select="filmes/dados">

<tr>

<td><xsl:value-of select="titulo"/></td>

<td><xsl:value-of

select="atorprincipal"/></td>

</tr>

</xsl:for-each>

</table>

</body>

</html>

</xsl:template>

</xsl:stylesheet>

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">

<html>

<body>

<h2>Meus Filmes</h2>

<table border="1">

<tr bgcolor="#9acd32">

<th>Título</th>

<th>Ator Principal</th>

</tr>

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

35

[CESPE 2009 TRE/MA – Cargo 6 – Questão 35] Considerando o trecho de código acima apresentado, assinale a opção correta.● [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.

Marco - Questões!!!Marco - Questões!!!

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

36

[CESPE 2009 TRE/MA – Cargo 6 – Questão 35] Considerando o trecho de código acima apresentado, assinale a opção correta.● [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.

Marco - Questões!!!Marco - Questões!!!

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

37

[CESPE 2009 TRE/MA – Cargo 6 – Questão 35] Considerando o trecho de código acima apresentado, assinale a opção correta.● [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.

Marco - Questões!!!Marco - Questões!!!

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

38

[CESPE 2009 TRE/MA – Cargo 6 – Questão 35] Considerando o trecho de código acima apresentado, assinale a opção correta.● [B] Para funcionar corretamente, esse código, escrito em XML

XSTL, necessita de um arquivo XSTL XML 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.

Marco - Questões!!!Marco - Questões!!!

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

39

[CESPE 2009 TRE/MA – Cargo 6 – Questão 35] Considerando o trecho de código acima apresentado, assinale a opção correta.● [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.

Marco - Questões!!!Marco - Questões!!!

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

40

[CESPE 2009 TRE/MA – Cargo 6 – Questão 35] Considerando o trecho de código acima apresentado, assinale a opção correta.● [C] Para funcionar corretamente, esse código, escrito em

HTML XSLT, necessita de um arquivo XML que contenha, no mínimo, as tags XSLT XML 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.

Marco - Questões!!!Marco - Questões!!!

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

41

[CESPE 2009 TRE/MA – Cargo 6 – Questão 35] Considerando o trecho de código acima apresentado, assinale a opção correta.● [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.

Marco - Questões!!!Marco - Questões!!!

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

42

[CESPE 2009 TRE/MA – Cargo 6 – Questão 35] Considerando o trecho de código acima apresentado, assinale a opção correta.● [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.

Marco - Questões!!!Marco - Questões!!!

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

43

[CESPE 2009 TRE/MA – Cargo 6 – Questão 35] Considerando o trecho de código acima apresentado, assinale a opção correta.● [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.

Marco - Questões!!!Marco - Questões!!!

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

44

[CESPE 2009 TRE/MA – Cargo 6 – Questão 35] Considerando o trecho de código acima apresentado, assinale a opção correta.● [E] O código, escrito em XSLT/javascript, necessita, para

funcionar corretamente, de um arquivo HTML XML que contenha, no mínimo, as linhas filmes e dados. Por sua vez, na linha de dados, devem existir variáveis tags com o nome titulo e atorprincipal para gerar uma tabela de saída informando o conteúdo das tags processadas.

Marco - Questões!!!Marco - Questões!!!

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

45

Marco - Questões!!!Marco - Questões!!! </entradas>

<pratos>

<prato_principal>

<nome>Peixe frito completo</nome>

<preco>R$40,00</preco>

</prato_principal>

<prato_principal>

<nome>Bife acebolado</nome>

<preco>R$25,00</preco>

</prato_principal>

</pratos>

</menu>

<?xml version=”1.0" encoding=”UTF-8"?>

<menu>

<restaurante>A Boa Cozinha</restaurante>

<entradas>

<entrada>

<nome>Bolinho de Bacalhau</nome>

<preco>R$10,00</preco>

</entrada>

<entrada>

<nome>Carpaccio</nome>

<preco>R$15,00</preco>

</entrada>

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

46

Marco - Questões!!!Marco - Questões!!!

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

47

[CESGRANRIO 2008 Termoaçu – Questão 25] Dos XSLT abaixo, o que faz a transformação corretamente dos pratos principais é:● [A]

Marco - Questões!!!Marco - Questões!!!

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

48

[CESGRANRIO 2008 Termoaçu – Questão 25] Dos XSLT abaixo, o que faz a transformação corretamente dos pratos principais é:● [A]

Marco - Questões!!!Marco - Questões!!!

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

5

Sintaxe do XLinkSintaxe do XLink● Em HTML, um link é definido pela tag <a>● No XML, como não há uma predefinição de tags, dificilmente

um browser saberá que tag pode significar um link dentro de um documento XML

● A solução para os links em documentos XML é inserir um marcador nos elementos que devem atuar como hiperlinks

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

6

Exemplo de um documento XMLExemplo de um documento XML<?xml version="1.0"?>

<sitesWeb xmlns:xlink="http://www.w3.org/1999/xlink">

<siteWeb xlink:type="simple" xlink:href="http://www.empresa.com.br/">Empresa</siteWeb>

<siteWeb xlink:type="simple" xlink:href="http://rogerioaraujo.wordpress.com/">Rogério Araújo</siteWeb>

</sitesWeb>

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

7

Sintaxe XLinkSintaxe XLink● Para ter acesso ao atributos e características do XLinkque

devemos declarar o seu namespace no topo do documento XML● "http://www.w3.org/1999/xlink"

● O xlink:type="simple" cria uma ligação simples

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

8

Sintaxe XPointerSintaxe XPointer● Em HTML, podemos fazer referência a um ponto específico de

uma página usando # e o nome da âncora criada na página referenciada:● www.exemplo.com.br/pagina.html#titulo

● Às vezes é bem útil apontarmos para informações mais específicas, por exemplo como o nome do segundo cliente ou endereço do terceiro fornecedor● Com o uso do XPointer, isso é possível

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

9

Sintaxe XPointerSintaxe XPointerSintaxe XPointerSintaxe XPointer● Se estamos referenciando um XML, podemos acrescentar uma

parte XPointer após a URL citada no atributo xlink:href para apontar para uma informação específica no documento● href="http://www.exemplo.com.br/MeusVeiculos.xml#marca('Ki

a').child(1,item)" – Recuperar o primeiro item de uma lista de veículos da marca Kia

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

10

Referência para XLinkReferência para XLink

AtributoAtributo ValorValor Descrição

xlink:actuateonLoad

onRequestothernone

Define quando o recurso referenciado é lido e apresentado

xlink:href URL URL para o link

xlink:show

embednew

replaceothernone

Onde abrir o linkReplace é o valor padrão

xlink:type

simpleextendedlocator

arcresource

titlenone

Tipo do link

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

11

Alguma dúvida? Podemos prosseguir?Alguma dúvida? Podemos prosseguir?

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

12

ReferênciasReferências● XLink and XPointer Tutorial da W3 Schools:

http://w3schools.com/xlink/default.asp● X100 - XML: uma introdução prática – Helder Rocha:

http://www.argonavis.com.br/cursos/xml/x100/index.html

http://rogerioaraujo.wordpress.com

top related