Title: Desenvolvimento de Software / XML
Tags: CDATA Desenvolvimento_de_Software PCDATA Resumo
On every note of this deck, unless a note says otherwise:
tldr: - Definição e propósito do XML
- XML (eXtensible Markup Language) é uma metalinguagem de marcação extensível, especificada pela W3C, de propósito geral, que define regras para codificar documentos em formato legível por humanos e máquinas.
- Objetivo central: facilitar a representação, armazenamento, transporte e intercâmbio padronizado de dados entre sistemas, de forma independente de plataforma/tecnologia.
- Não executa instruções (não é linguagem de programação); é autodescritivo (tags indicam o significado dos dados).
- XML vs HTML (e por que “extensível”)
- HTML: linguagem de marcação voltada à apresentação/estrutura de páginas web, com tags pré-definidas (<html>, <head>, <p> etc.).
- XML: permite criar suas próprias tags, ajustadas ao domínio (ex.: <livraria>, <livro>, <autor>), tornando-o extensível e adequado a qualquer contexto de dados.
- XML frequentemente complementa o HTML: XML para dados, HTML para formatação/exibição, em geral em arquivos separados e independentes.
- Características principais do XML
- Separa dados da apresentação (não descreve como exibir; descreve o que é o dado).
- Suporte a Unicode, permitindo representar texto em praticamente qualquer idioma humano escrito.
- Adapta-se a avanços tecnológicos por ser independente de plataforma; útil para armazenamento de longo prazo.
- Estrutura em árvore (hierárquica): existe um elemento raiz e elementos pai/filho/irmãos, com possibilidade de subelementos, conteúdo textual e atributos.
- Formato validável: pode ser validado por esquema (ex.: XSD), aumentando integridade e previsibilidade no processamento.
- Base para outras linguagens: por ser metalinguagem, é usado para criar linguagens como WSDL, RSS e XHTML.
- Facilita buscas: tags “etiquetam” dados, ajudando a localizar informações específicas.
- Estrutura de documento: prolog + elemento raiz
- O prolog (opcional) deve ser a primeira coisa do arquivo (sem espaços antes) e pode declarar versão e codificação, por exemplo:
  - <?xml version="1.0" encoding="UTF-8"?>
- UTF-8 é a codificação padrão recomendada para suportar caracteres internacionais (ç, ø, ß etc.).
- Após o prolog, vem o elemento raiz (ex.: <livraria>), que contém a hierarquia do documento.
- Sintaxe: elementos
- Elemento = tudo entre tag de abertura e tag de fechamento, incluindo as tags (pode conter texto, atributos e/ou outros elementos).
- Todo elemento deve ter fechamento, podendo ser:
  - Forma completa: <livro></livro>
  - Auto-fechado (equivalente quando vazio): <livro />
- Regras para nomes de elementos:
  - Começam com letra ou underscore _
  - Não podem começar com "xml" (qualquer variação de maiúsculas/minúsculas)
  - Podem conter letras, dígitos, hífen, underscore e ponto
  - Não podem conter espaços
  - Não há palavras reservadas (exceto a restrição de xml)
- Sintaxe: atributos
- Atributos são pares nome=valor dentro da tag inicial, com valor entre aspas simples ou duplas:
  - <pessoa genero="feminino"> ou <pessoa genero='feminino'>
- Se o valor contiver aspas, pode-se alternar aspas ou usar escapes:
  - nome='Anderson "Spyder" Silva' ou nome="Anderson &quot;Spyder&quot; Silva"
- O mesmo dado pode ser representado como atributo ou elemento (não há regra fixa), mas:
  - Atributos são mais limitados: não suportam múltiplos valores nem hierarquia.
  - Um elemento pode ter vários atributos, mas não pode ter dois atributos com o mesmo nome.
- Namespaces (evitar conflito de nomes)
- Como as tags são definidas por quem cria o XML, pode haver conflitos ao integrar documentos diferentes (ex.: <flamengo> time vs bairro).
- Solução: usar prefixos com namespace declarado via xmlns:
  - Sintaxe: xmlns:prefix="URI"
  - Ex.: xmlns:a="http://www.flamengo.com.br" e xmlns:b="https://prefeitura.rio"
- Um namespace pode ser declarado:
  - No próprio elemento onde será usado, ou
  - No elemento raiz, valendo para seus descendentes.
- A URI serve como identificador único; não precisa ser um site real, apenas único (poderia ser outro identificador).
- Comentários, espaços e caracteres especiais
- Comentários: <!-- comentário --> (não pode ter -- no meio).
- Espaços em branco são preservados no XML (ao contrário do HTML, que costuma truncar/normalizar).
- Caracteres especiais: < e & são problemáticos dentro de texto e devem ser escapados; entidades principais:
  - < → &lt;
  - > → &gt;
  - & → &amp;
  - ' → &apos;
  - " → &quot;
- Terminantemente proibidos sem escape: < e & (os demais são recomendados como boa prática).
- Bem formado vs válido (validação)
- Bem formado = segue as regras de sintaxe:
  1. Um único elemento raiz
  2. Todo elemento tem tag de fechamento
  3. Elementos corretamente aninhados
  4. Atributos com valores entre aspas
  5. Tags e atributos são case-sensitive
- Válido = bem formado e consistente com um esquema (modelo de estrutura/regras do documento).
- Esquema é opcional, mas útil para padronizar, compartilhar e garantir integridade/estrutura.
- Esquemas: DTD vs XSD
- DTD (Document Type Definition):
  - Define estrutura, elementos/atributos permitidos e tipos básicos.
  - Pode estar interno no XML ou em arquivo externo .dtd referenciado por DOCTYPE:
  - <!DOCTYPE carta SYSTEM "Carta.dtd">
  - Usa #PCDATA (texto processado) e também existe #CDATA (texto não processado).
  - Controla ocorrência de elementos:
  - + obrigatório, uma ou mais vezes
  - * opcional, zero ou mais vezes
  - ? opcional, zero ou uma vez
  - sem símbolo: exatamente uma vez
- XSD (XML Schema Definition):
  - Também descreve a estrutura, mas é mais poderoso: suporta namespaces, novos tipos, restrições, etc.
  - É escrito em XML, evitando aprender outra sintaxe.
  - Exemplo apresentado modela carta como complexType com sequence de elementos xs:string (de, para, assunto, corpo).
link: https://documentacao.online/estudos/rpqo.html

front: (FGV / TCE-TO – 2022) Um documento XML é considerado bem formado quando segue as regras de sintaxe estabelecidas na especificação da linguagem. A alternativa que apresenta um documento XML bem formado é:
a) eh uma tag igual a
b)
Este eh um paragrafo comum.
c)
d) salario < 1000
e) Este texto eh negrito e italico
response: Alternativa B
comment: (a) Errado. deve ser fechado com e, não, ; (b) Correto; (c) Errado, não é permitido ter – dentro do comentário; (d) Errado, o caractere < confunde o processador e não deve ser utilizado; (e) Errado. Primeiro, fecha-se o e depois o .
title: XML
Other fields (not shown on cards):
back: Alternativa B - (a) Errado. deve ser fechado com e, não, ; (b) Correto; (c) Errado, não é permitido ter – dentro do comentário; (d) Errado, o caractere < confunde o processador e não deve ser utilizado; (e) Errado. Primeiro, fecha-se o e depois o .

front: (CESPE / Polícia Federal - 2018) Em arquivos no formato XML, as tags não são consideradas metadados.
response: Errado
comment: As tags são consideradas metadados porque fornecem informações sobre os dados que elas envolvem e dados sobre dados são metadados.
title: XML
Other fields (not shown on cards):
back: Errado - As tags são consideradas metadados porque fornecem informações sobre os dados que elas envolvem e dados sobre dados são metadados.

front: (CESPE / SEDF – 2017) Um dos objetivos do projeto XML é que o número de recursos opcionais da linguagem deve ser maximizado para torná-la versátil e adaptável.
response: Errado
comment: De acordo com a documentação oficial, o número de recursos opcionais deve ser mantido no absoluto mínimo, idealmente zero. O que torna a linguagem versátil e adaptável é a sua extensibilidade em relação à criação de tags customizadas.
title: XML
Other fields (not shown on cards):
back: Errado - De acordo com a documentação oficial, o número de recursos opcionais deve ser mantido no absoluto mínimo, idealmente zero. O que torna a linguagem versátil e adaptável é a sua extensibilidade em relação à criação de tags customizadas.

front: (CESPE / TCE-PA – 2016) Em um documento XML, deve haver diferenciação entre letras maiúsculas e minúsculas e os comentários devem ter a seguinte sintaxe: .
response: Correto
comment: Perfeito! Essa é a sintaxe correta de um comentário em XML.
title: XML
Other fields (not shown on cards):
back: Correto - Perfeito! Essa é a sintaxe correta de um comentário em XML.

front: (CESPE / TCE-PA – 2016) As desvantagens dos esquemas XML incluem a falta de suporte a diferentes tipos de dados.
response: Errado
comment: O XML possui vários tipos de dados predefinidos (Ex: string, booleano, inteiro, data, etc). Além disso, existe a possibilidade de criar o seu próprio tipo.
title: XML
Other fields (not shown on cards):
back: Errado - O XML possui vários tipos de dados predefinidos (Ex: string, booleano, inteiro, data, etc). Além disso, existe a possibilidade de criar o seu próprio tipo.

front: (CESPE / TCE-PA – 2016) Um arquivo XML deve conter, no máximo, 1.024 tags. Se o uso de uma quantidade maior de tags for necessário, deve-se adotar o seguinte recurso, a fim de aumentar a quantidade de tags referenciadas pelo arquivo XML principal: um arquivo XML fazer referência a outro.
response: Errado
comment: Não existe quantidade máxima limite de tags.
title: XML
Other fields (not shown on cards):
back: Errado - Não existe quantidade máxima limite de tags.

front: (FGV / IMBEL – 2021) O uso do XML é bastante difundido no Brasil para troca de dados em aplicações como notas fiscais, procedimentos médicos, e várias outras. Assinale a utilidade de um Schema XML em aplicações dessa natureza.
a) Direciona os aplicativos que leem arquivos no formato XML.
b) Permite a conversão automática de arquivos XML para o formato CSV.
c) Estabelece precisamente a versão do XML em uso num arquivo no formato XML.
d) Permite que um Web Service interprete corretamente um arquivo de dados no formato XML.
e) Permite a verificação da estrutura e regras de preenchimento de um arquivo contendo dados no formato XML.
response: Letra E
comment: (a) Errado, isso é uma função do sistema operacional; (b) Errado, essa definitivamente não é uma aplicação do XML Schema; (c) Errado, isso é função do prolog e, não, do XML Schema; (d) Errado, essa não é uma de suas funções; (e) Correto, o XML Schema realmente permite a verificação da estrutura e regras de preenchimento de um arquivo contendo dados no formato XML.
title: XML
Other fields (not shown on cards):
back: Letra E - (a) Errado, isso é uma função do sistema operacional; (b) Errado, essa definitivamente não é uma aplicação do XML Schema; (c) Errado, isso é função do prolog e, não, do XML Schema; (d) Errado, essa não é uma de suas funções; (e) Correto, o XML Schema realmente permite a verificação da estrutura e regras de preenchimento de um arquivo contendo dados no formato XML.

front: (FGV / Prefeitura de Niterói-RJ – 2018) XML é uma linguagem de marcação projetada para descrever e transportar dados. Dado que em um documento XML é permitido ao desenvolvedor de software definir seus próprios elementos, pode ser necessário utilizar namespaces para evitar conflitos de nomes. Em relação à namespaces em XML, analise as afirmativas a seguir.
I. Um namespace pode ser declarado no elemento em que é utilizado ou no elemento raiz do documento XML.
II. O atributo uri é reservado em XML para indicar que um prefixo está associado ao namespace.
III. As várias declarações de namespace com prefixos podem ser feitas em um elemento, mas devem possuir prefixos diferentes.
Assinale:
a) se somente a afirmativa I estiver correta.
b) se somente a afirmativa II estiver correta.
c) se somente a afirmativa III estiver correta.
d) se somente as afirmativas I e III estiverem corretas.
e) se todas as afirmativas estiverem corretas.
response: Letra D
comment: (I) Correto; (II) Errado, ele é utilizado para identificar de forma única um prefixo de um namespace; (III) Correto, não há nenhum problema desde que os prefixos sejam diferentes.
title: XML
Other fields (not shown on cards):
back: Letra D - (I) Correto; (II) Errado, ele é utilizado para identificar de forma única um prefixo de um namespace; (III) Correto, não há nenhum problema desde que os prefixos sejam diferentes.

front: (FGV / ALERJ – 2017) XML (Extensible Markup Language) é um sistema de codificação que permite que diferentes tipos de informação sejam distribuídos através da World Wide Web. Com a XML, diversos sistemas de informação, semelhantes ou não, se comunicam de forma transparente entre si. Em relação à linguagem XML, analise as afirmativas a seguir:
I. Seções CDATA podem ocorrer em qualquer parte de um documento XML e devem ser utilizadas para inserir blocos de texto que contenham caracteres especiais como & e <.
II. Documentos XML bem formados devem ter um DTD (Document Type Definition) associado e obedecer a todas as regras que o DTD contém.
III. Na linguagem XML é permitido omitir as tags finais em elementos não vazios.
Está correto o que se afirma em:
a) somente I;
b) somente II;
c) somente III;
d) somente I e II;
e) I, II e III.
response: Letra A
comment: (I) Correto, elas podem ser utilizadas em qualquer parte do documento e são úteis para textos que contenham caracteres especiais – indicando que esses caracteres não devem ser processados pelo parser; (II) Errado, não é obrigatório ter um DTD ou XML Schema; (III) Errado, não é permitido omitir tags de fechamento em elementos vazios ou não.
title: XML
Other fields (not shown on cards):
back: Letra A - (I) Correto, elas podem ser utilizadas em qualquer parte do documento e são úteis para textos que contenham caracteres especiais – indicando que esses caracteres não devem ser processados pelo parser; (II) Errado, não é obrigatório ter um DTD ou XML Schema; (III) Errado, não é permitido omitir tags de fechamento em elementos vazios ou não.

front: (FGV / TJ-PI – 2015) Num trecho XML, o comentário “Trecho em teste” deve ser introduzido como:
a) < !-- Trecho -- em -- teste -- >
b) < !-- Trecho em teste >
c) < !Trecho em teste >
d) < !--Trecho em teste -->
e) <-- Trecho em teste -->
response: Letra D
comment: (a) Errado, não pode haver traços dentro do comentário; (b) Errado, faltam os traços da tag de fechamento; (c) Errado, faltam os traços da tag de abertura e fechamento; (d) Correto; (e) Errado, falta o ponto de exclamação na tag de abertura.
title: XML
Other fields (not shown on cards):
back: Letra D - (a) Errado, não pode haver traços dentro do comentário; (b) Errado, faltam os traços da tag de fechamento; (c) Errado, faltam os traços da tag de abertura e fechamento; (d) Correto; (e) Errado, falta o ponto de exclamação na tag de abertura.