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