Baixe o app para aproveitar ainda mais
Prévia do material em texto
Aula 12 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital Autores: Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 12 - Profs. Pedro Freitas e Raphael Lacerda 12 de Abril de 2021 00774823100 - Juliana Souza Ferreira Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 1 38 Sumário 1 JSON (JAVASCRIPT OBJECT NOTATION) ...................................................................................... 2 1.1 CAIU NA PROVA - JSON ...................................................................................................... 4 2 XML ........................................................................................................................................... 7 2.1 INTRODUÇÃO ..................................................................................................................... 7 2.2 EXERCÍCIOS COMENTADOS: XML ...................................................................................... 21 3 LISTAS DE EXERCÍCIOS .............................................................................................................. 32 3.1 LISTA DE EXERCÍCIOS - JSON ............................................................................................. 32 3.2 LISTA DE EXERCÍCIOS: XML ............................................................................................... 33 4 GABARITOS .............................................................................................................................. 38 4.1 – JSON.............................................................................................................................. 38 4.2 GABARITO: XML ............................................................................................................... 38 Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 12 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 2 38 1 JSON (JAVASCRIPT OBJECT NOTATION) Hoje, na aula, falaremos sobre... Pois é, nós falaremos sobre JSON! Professor, o que é isso? Trata-se de um formato para intercâmbio de dados! Aí a primeira coisa que você tem que pensar é: Ué, professor! Para quê? Nós já temos o XML! Bem, se você pensou isso: excelente raciocínio! De fato, o XML é o “pai” do JSON, mas o JSON ganhou muito espaço nos sistemas WEB por trabalhar de uma forma mais simples, sem burocracia, e integrado com o JavaScript. JSON é o acrônimo para JavaScript Object Notation – trata-se de um subconjunto da linguagem JavaScript, porém não se limita ao JavaScript (apesar de usar a mesma sintaxe, ele é completamente independente de linguagem). Professor, mas qual a vantagem do JSON sobre o XML? Bem, ele é um formato muito mais leve e muito mais fácil de ler/entender. Vejam o exemplo abaixo em XML: <?xml version="1.0" encoding="UTF-8"?> <id>1</id> <nome>Diego Carvalho</nome> <endereco> Asa Norte </endereco> Em JSON, esse mesmo código seria: Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 12 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 3 38 {"id":1,"nome":"Diego Carvalho", "endereco":"Asa Norte"} Além disso, o JSON possui parsing mais fácil; suporta classes e objetos; é mais rápido na execução e transporte de dados; cria arquivos menores; não é uma linguagem de marcação nem esquemas de validação; e é atualmente utilizado pelo Google, Facebook, etc! Vamos ver como seria a definição de três músicos de uma orquestra sinfônica, utilizando três registros no XML e um vetor no JSON: <orquestra> <musico> <primeiroNome>Tom</primeiroNome> <ultimoNome>Jobim</ultimoNome> </musico> <musico> <primeiroNome>Vinicius</primeiroNome> <ultimoNome>Morais</ultimoNome> </musico> <musico> <primeiroNome>Chico</primeiroNome> <ultimoNome>Buarque</ultimoNome> </musico> </orquestra> É equivalente a: {"orquestra":[ {"primeiroNome":"Tom", "ultimoNome":"Jobim"}, {"primeiroNome":"Vinicius", "ultimoNome":"Morais"}, {"primeiroNome":"Chico", "ultimoNome":"buarque"} ]} Pessoal, praticamente não existe limitação com relação ao uso do JSON com relação ao XML. Em outras palavras, tudo que você faz com um, pode fazer com o outro. Existem duas grandes diferenças. A primeira é que, em XML, a Análise Sintática (ou Parsing) deve ser feita necessariamente por um Parser XML; no JSON, basta uma função JavaScript. A segunda, é que o XML possui mecanismos para validação dos seus elementos (DTD e XSD), e não existe nada semelhante no JSON. Para deixar mais claro, com XML eu posso escrever um DTD/XSD definindo que a tag <pessoa> precisa obrigatoriamente de um <nome>, e o próprio parser sabe que existe um erro no XML caso o elemento <nome> não exista. Existe a validação dos elementos, além da validação da forma. No JSON, só existe validação da forma, e caberá à aplicação validar as estruturas. Pensem em um erro comum de caixa-alta – ao invés de escrever o elemento <nome>, o desenvolvedor escreve <Nome> com “N” maiúsculo... no XML o Parser perceberia esse erro antes de passar para a aplicação, pois apesar de estar com a forma correta, o elemento está errado de Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 12 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 4 38 acordo com a sua definição no DTD/XSD. No JSON, se a forma está correta, cabe à aplicação fazer as validações. Pessoal, há também semelhanças: ambos são formatos texto (plain text), ambos são autodescritivo e facilmente entendíveis; ambos são hierárquicos; e ambos são independentes de linguagens. JSON está constituído em duas estruturas: ▪ Uma coleção de pares nome/valor. Em várias linguagens, isto é chamado de object, record, struct, dicionário, hash table, keyed list, ou arrays associativas. Os identificadores em JSON devem estar definidos entre aspas, podendo ser aspas simples ou duplas. ▪ Uma lista ordenada de valores. Na maioria das linguagens, isto é caracterizado como uma array, vetor, lista ou sequência. Estas são estruturas de dados universais. Virtualmente todas as linguagens de programação modernas as suportam, de uma forma ou de outra. É aceitável que um formato de troca de dados que seja independente de linguagem de programação se baseie nestas estruturas. Pessoal, viram que é bem simples? Em três páginas conseguimos ver tudo que precisamos! 1.1 CAIU NA PROVA - JSON 1. (CESGRANRIO - 2011 – BNDES – Analista de Sistemas) Um programador, ao analisar determinado sistema WB, observa o arquivo a seguir. Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 12 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Inserir aquio nome do Curso www.estrategiaconcursos.com.br 5 38 Qual o formato desse arquivo? a) JSON b) REST c) SOAP d) XSLT e) XML Comentários: JSON está constituído em duas estruturas: ▪ Uma coleção de pares nome/valor. Em várias linguagens, isto é chamado de object, record, struct, dicionário, hash table, keyed list, ou arrays associativas. Percebe-se que se trata de um menu com algumas ações possíveis e um conjunto de pares nome/valor (Título: X, Desconto A), logo se trata do JSON! Gabarito: A 2. (CESPE - 2010 – ABIN – Analista de Sistemas) O formato JSON (javascript object notation) permite representar objetos e classes como estruturas de dados e arrays associativos, sendo possível seu uso em combinação com Ajax e PHP, por meio de bibliotecas diversas, como DOJO. Comentários: Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 12 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 6 38 Vamos por partes: ele permite representar objetos e classes como estruturas de dados e arrays associativos? Sim, ele permite representar objetos e classes como estruturas de dados; é possível seu uso em combinação com Ajax e PHP? Sim, ele é independente de linguagem de programação; por meio de bibliotecas diversas, como DOJO? Sim, isso é um assunto de JavaScript! DOJO é uma biblioteca JavaScript com diversas funções e pode ser combinada com JSON! Gabarito: C 3. (CESPE - 2016 – TCE/SC – Analista de Sistemas) Em navegadores que não possuem apoio para a função JavaScript JSON.parse, pode-se utilizar a função eval para converter um texto JSON em um objeto JavaScript, por meio da sintaxe apresentada a seguir. var obj = eval (“(” + text + “)”); Comentários: Há navegadores que realmente não suportam JSON.parse( ). A solução de contorno realmente é usar eval( ) e converter o texto JSON em um objeto JS – você deixará o sistema mais vulnerável a ataques, por isso não é a solução ideal. Galera, fiquem tranquilos! Essa questão foi feita para que ninguém acertasse mesmo – eu tive que pesquisar! Gabarito: C ACERTEI ERREI Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 12 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 7 38 2 XML 2.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. Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 12 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 8 38 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”). Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 12 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 9 38 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, noentanto é 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? Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 12 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 10 38 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. Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 12 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 11 38 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 Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 12 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 12 38 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: Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 12 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 13 38 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 Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 12 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 14 38 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 & Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 12 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 15 38 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 Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 12 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 16 38 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 Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 12 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 17 38 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 Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 12 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 18 38 ▪ 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; Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 12 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 19 38 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> Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 12 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 20 38 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. Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 12 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 21 38 2.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. Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 12 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 22 38 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 Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 12 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 23 38 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. Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 12 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 24 38 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çõesde 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: Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 12 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 25 38 (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. Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 12 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira ==1c090b== Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 26 38 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 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 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. Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 12 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 27 38 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: Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 12 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 28 38 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 Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 12 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 29 38 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. Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 12 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 30 38 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 eventosque 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. Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 12 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 31 38 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 Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 12 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 32 38 3 LISTAS DE EXERCÍCIOS 3.1 LISTA DE EXERCÍCIOS - JSON 1. (CESGRANRIO - 2011 – BNDES – Analista de Sistemas) Um programador, ao analisar determinado sistema WB, observa o arquivo a seguir. Qual o formato desse arquivo? a) JSON b) REST c) SOAP d) XSLT e) XML 2. (CESPE - 2010 – ABIN – Analista de Sistemas) O formato JSON (javascript object notation) permite representar objetos e classes como estruturas de dados e arrays associativos, sendo possível seu uso em combinação com Ajax e PHP, por meio de bibliotecas diversas, como DOJO. 3. (CESPE - 2016 – TCE/SC – Analista de Sistemas) Em navegadores que não possuem apoio para a função JavaScript JSON.parse, pode-se utilizar a função eval para converter um texto JSON em um objeto JavaScript, por meio da sintaxe apresentada a seguir. var obj = eval (“(” + text + “)”); Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 12 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 33 38 3.2 LISTA DE EXERCÍCIOS: 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. 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. 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. Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 12 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 34 38 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. 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 b) !ELEMENT c) #PCDATA d) CDATA e) IDREF 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. 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. d) Notações. Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 12 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 35 38 e) Listas de atributos. 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. 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 arquivotexto destinado à leitura pelas pessoas. 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. 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"> ... Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 12 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 36 38 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. 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. 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. 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. 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. Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 12 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 37 38 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. 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. 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. Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 12 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira Inserir aqui o nome do Curso www.estrategiaconcursos.com.br 38 38 4 GABARITOS 4.1 – JSON 1 2 3 4 5 6 7 8 9 10 A C C 4.2 GABARITO: XML 1 2 3 4 5 6 7 8 9 10 B D B A E B C C E C 11 12 13 14 15 16 17 18 19 20 A E D A B Diego Carvalho, Renato da Costa, Thiago Rodrigues Cavalcanti, Pedro Henrique Chagas Freitas, Raphael Henrique Lacerda Aula 12 - Profs. Pedro Freitas e Raphael Lacerda Informática Avançada (TI) p/ Banco do Brasil (Escriturário) - 2021 - Pré-Edital www.estrategiaconcursos.com.br 1837323 00774823100 - Juliana Souza Ferreira
Compartilhar