• Nenhum resultado encontrado

Série Desenvolvimento de Sistemas. Curso de XML. Conceito básicos, XML Schema, Namespaces, DOM/SAX, XPath, XSLT, XLink e XPointer.

N/A
N/A
Protected

Academic year: 2021

Share "Série Desenvolvimento de Sistemas. Curso de XML. Conceito básicos, XML Schema, Namespaces, DOM/SAX, XPath, XSLT, XLink e XPointer."

Copied!
52
0
0

Texto

(1)

Rogério Araújo

Série Desenvolvimento de Sistemas

Conceito básicos, XML Schema, Namespaces,

DOM/SAX, XPath, XSLT, XLink e XPointer

Curso de

Curso de

XML

XML

(2)

Rogério Araújo

Série Desenvolvimento de Sistemas

Conceitos básicos, XML Schema, Namespaces,

DOM/SAX, XPath, XSLT, XLink e XPointer

Curso de

(3)

O Autor

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

(4)

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

XML

XML

Conceitos

Conceitos

básicos

básicos

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

Tópicos

Tópicos

● Antes de tudo, precisamos saber que... ● Introdução

● XML x HTML

● Exemplo de um documento XML ● Como podemos usar o XML ● A árvore XML

● Regras para sintaxe de documentos XML ● Notas importantes sobre a sintaxe XML ● Elementos XML

● Exemplo de um documento XML

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

Tópicos

Tó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)

(5)

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

Introdução

● Significa Extensible Markup Language

● É uma linguagem de marcaçãoparecida 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 HTML

XML x HTML

● XML não é um substituto do HTML

● XML e HTML foram projetadas com objetivos diferentes ● XML foi projetado para o transporte e armazenamento de dados,

com foco no que são os dados

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

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

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

COMO apresentar apresentar

O XML mostra O XML mostra O QUE

O QUE apresentar apresentar

Exemplo de um documento XML

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

(6)

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 HTMLXML são case sensitive, isto é, fazem distinção entre letras maiúsculas e minúsculas.

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

● [C] As tags XMLHTML 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 HTMLXML 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.

(7)

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

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ãopoderã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.

[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 yesno, é de escrita

obrigatóriaopcional, o que indica que o documento não pode ser analisado no lado servidorespecifica 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.

Marco - Questões!!!

Marco - Questões!!!

(8)

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.

(9)

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

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

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

(10)

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

(11)

rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - rgildoarauj@gmail.com 33 [CESPE 2010 BASA – Cargo 16]

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 atributoselementos filho da entidade <livro>.

● Gabarito: ERRADO.

Marco - Questões!!!

Marco - Questões!!!

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

(12)

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

(13)

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

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

[CESPE 2008 TJ/CE]

Marco - Questões!!!

Marco - Questões!!!

(14)

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êsquatro 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!!!

(15)

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

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

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

(16)

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

(17)

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

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 deo 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”.

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

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

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

(18)

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

Referências

Referê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_Sch ema_e_Namespaces.pdf ● O'Reilly XML Schema: http://docstore.mik.ua/orelly/xml/schema/index.htm

(19)

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

XML Schema

XML Schema

Parte II

Parte II

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

Tópicos

Tó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ópicos

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

Indicadores

Indicadores

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

(20)

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

Indicadores de Ordem

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

Indicadores 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>, podemos especificar o indicador <minOccurs>

em 0 ou 1 e <maxOccurs> apenas em 1

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

Indicadores de Ocorrência

Indicadores 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 vezes em um elemento "pessoa"

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

Indicadores de Ocorrência

Indicadores 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 um elemento “pessoa” Para permitir que um elemento pareça

um número ilimitado de vezes, use a instrução maxOccurs=“unbounded”

(21)

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

Exemplo 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/XML Schema" 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 XML

Exemplo 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/XM LSchema-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 Grupo

Indicadores 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

Grupo de elementos

Grupo 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"/>

(22)

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

Como definir elementos complexos

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

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

(23)

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

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 dosutilizamos os indicadores de ordem. Já no indicador de grupo de atributos, utilizamos osnão é preciso o uso dos indicadores de ordem.

● Gabarito: ERRADO.

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

(24)

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/XML Schema" targetNamespace="http://www.empresa.c om.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/XML Schema" targetNamespace="http://www.empresa.c om.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/XM LSchema-instance" xsi:schemaLocation="http://www.empres a.com.br pessoas.xsddependentes.xsd"> <pessoa> <nome>Maria</nome> <sobrenome>Silva</sobrenome> <dependente> <nome>Carolina</nome> </dependente> O documento XML utiliza componentes 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/XML Schema" targetNamespace="http://www.empresa.c om.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>

(25)

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

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/XML Schema" targetNamespace="http://www.empresa.c om.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/XM LSchema-instance" xsi:schemaLocation="http://www.empres a.com.br pessoas.xsdatributoSexo.xsd"> <pessoa sexto="feminino">

<nome>Maria</nome> <sobrenome>Silva</sobrenome>

</pessoa> O documento XML utiliza componentes de dois esquemas

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

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

Substituição de elementos

Substituiçã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"/>

Exemplo do uso do substitutionGroup

Exemplo 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 o elemento chave para depois declararmos outros elementos

(26)

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

Exemplo do uso do substitutionGroup

Exemplo 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ências

Referê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_Sch ema_e_Namespaces.pdf ● O'Reilly XML Schema: http://docstore.mik.ua/orelly/xml/schema/index.htm

(27)

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

XML Schema

XML Schema

Questões de

Questões de

concursos

concursos

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

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

Marco - Questões!!!

Marco - Questões!!!

(28)

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

(29)

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

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.

Referências

Referê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/sem0 1-1/t2/apis_xml_java/

(30)

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

XPath

XPath

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

Tópicos

Tó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ópicos

Tó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ção

Introduçã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

(31)

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

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

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

Terminologia 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

Terminologia XPath

Terminologia XPath

● Valores atômicos ● São nós sem: – Filhos ou – Pais ● Exemplos – Kia – carro ● Item ● São valores: – Atômicos ou – Nós

(32)

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

Relacionamentos dos nós

Relacionamentos 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ós

Selecionando nós

Expressão

Expressão DescriçãoDescrição

Nome do nó Seleciona todos os nós filhos com o nome citado / Seleciona a partir do nó raiz

// correspondam a seleção, não importando onde eles estãoSeleciona os nós no documento a partir do nó atual que . 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 XML

Exemplo 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ós

Exemplos de seleções de nós

Expressão

Expressã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 meus_veiculosveiculo que são filhos de //veiculo Seleciona todos os elementos onde eles estãoveiculo, não importando meus_veiculos//marca Seleciona todos os elementos do elemento meus_veiculos, não importa onde eles estão marca que são descendente

sob esse elemento

(33)

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

Predicados

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

Exemplos de predicados

Expressão

Expressão DescriçãoDescrição

/meus_veiculos/veiculo[1]

Seleciona o primeiro elemento veiculo filho de meus_veiculos

No 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 meus_veiculosveiculo filho de /meus_veiculos/veiculo[last() - 1] Seleciona o penúltimo elemento de meus_veiculosveiculo filho /meus_veiculos/veiculo[position() < 3] Seleciona os dois primeiros elementos veiculo filho de meus_veiculos

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

//veiculo[@tipo="carro"] Seleciona todos os elementos atributo tipo com valor carroveiculo, não com importando onde eles estão

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

Exemplos de predicados

Exemplos de predicados

Expressão

Expressão DescriçãoDescrição

/meus_veiculos/veiculo[preco>65000] Seleciona os elementos de meus_veiculos com valor do veiculo filho elemento preco superior a 65.000 /meus_veiculos/veiculo[preco>65000]/modelo

Seleciona os elementos modelodos elementos veiculo filho de

meus_veiculos com valor do elemento preco superior a 65.000

Selecionando nós desconhecidos

Selecionando nós desconhecidos

● Curingas XPath (wildcards) podem ser usados para selecionar elementos XML desconhecidos

Curinga

Curinga DescriçãoDescrição

* Corresponde a qualquer nó @* Corresponde a qualquer atributo de nó node() Corresponde a qualquer nó de qualquer tipo

(34)

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

Exemplos de seleção de nós desconhecidos

Exemplos de seleção de nós desconhecidos

Expressão

Expressã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 atributoveiculo que possuem algum

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

Selecionando alguns caminhos

Selecionando alguns caminhos

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

Expressão

Expressão DescriçãoDescrição

//veiculo/marca | //veiculo/modelo modeloSeleciona todos os elementos de todos os elementos marcaveiculo E //marca | //modelo Seleciona todos os elementos modelo do documentomarca E /meus_veiculos/veiculo/marca | //preco

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

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

Eixos XPath

Eixo

Eixo 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

(35)

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

Eixos XPath

Eixo

Eixo 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ção

Caminhos 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ção

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

Uso dos eixos

Uso 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

(36)

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

Uso dos eixos

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

Exemplos de formação de etapas

Exemplo

Exemplo DescriçãoDescrição

child::veiculo Seleciona todos os elementos atual veiculo que são filhos do nó 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 atualveiculo descendentes do nó

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

Exemplos de formação de etapas

Exemplos de formação de etapas

Exemplo

Exemplo DescriçãoDescrição

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

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

Operadores

Operadores

Operador

Operador 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

Referências

Documentos relacionados

Não Não Min./horas Baixa Semi- persistente Min./horas Min./horas Não Não Horas/dias Média Circulativa Min./horas Min./horas Horas/dias Não Dias/semanas Alta Propagativa

Os candidatos com pedidos de isenção deferidos serão comunicados até 10 (dez) dias úteis, pela PROPPG – Pró-Reitoria de Pesquisa e Pós-graduação via e-mail,

Local de realização da avaliação: Centro de Aperfeiçoamento dos Profissionais da Educação - EAPE , endereço : SGAS 907 - Brasília/DF. Estamos à disposição

Os 41 diagnósticos médicos presentes na pri- meira e na segunda internação foram categorizados em: Arritmias (ablação de flutter atrial e tratamento de arritmia),

The imazapyr + imazapic associations with quinclorac or propanil + thiobencarb resulted in reduced control of barnyardgrass susceptible of ALS-inhibiting herbicides (Table

A Alimentare vem sofrendo prejuízos pela não entrega, adquirindo os conservantes no mercado spot que, por ser de curto prazo, tem preços mais elevados. Ante a situação do

Os autores realizaram um ensaio funcional que demonstrou o aumento da expressão gênica decorrente do número de glutamatos (Q) sobre o número de alaninas (A) presentes na

A formação do mercado interno acontece de maneira desorientada e com inúmeras desigualdades regionais. A dinâmica distributiva da renda durante o processo de