Questão nº 8

Questão de Arquitetura de Desenvolvimento de Software · FGV SEFAZ-AM 2022 - Prova II (nº 8)

FGV2022Analista de Tecnologia da Informação da Fazenda EstadualArquitetura de Desenvolvimento de Software
Gabarito: Dver comentário ↓

Uma DTD (Document Type Definition) é um documento que reúne um conjunto de regras que definem os blocos de construção lícitos em um documento XML.
Analise a DTD a seguir.

Figura da questão de Arquitetura de Desenvolvimento de Software

De acordo com esta DTD, é correto afirmar que, em um documento XML válido,

Resposta comentada

Gabarito Alternativa D

Uma DTD (Document Type Definition) é como um "projeto" ou "esquema" que define a estrutura e o conteúdo permitidos em um documento XML. Ela estabelece quais elementos podem existir, a ordem em que devem aparecer, quantos podem ocorrer e que tipo de dados podem conter.

  • (A) Incorreta: A DTD <!ELEMENT memo (from, to, date, subject?, content, cc*)> indica que <memo> deve conter from e to precisamente uma vez, mas a ordem é estrita: from deve vir antes de to. A alternativa afirma "em qualquer ordem", o que está errado.
  • (B) Incorreta: A DTD <!ELEMENT memo (from, to, date, subject?, content, cc*)> mostra que o elemento <date> não possui quantificador (?, +, *), o que significa que ele deve ocorrer exatamente uma vez. A alternativa afirma "uma ou mais ocorrências", o que seria indicado por date+.
  • (C) Incorreta: A DTD <!ELEMENT content (p+, note?)> define que <content> deve ter "pelo menos um elemento <p>" (p+), o que está correto. No entanto, o elemento <note> é seguido por ? (note?), indicando que é opcional (zero ou uma ocorrência). A alternativa afirma que deve ter "um elemento <note>", implicando que é obrigatório.
  • (D) Correta: A DTD para o elemento <note> é <!ELEMENT note (desc?, note?)>. Esta definição é recursiva, permitindo que um <note> contenha opcionalmente um <desc> e opcionalmente outro <note> (filho). A afirmação "um elemento <note> não deve ter um elemento <desc> quando conter a si mesmo" sugere que, se um <note> (pai) contém outro <note> (filho), ele não deve também conter um <desc> no mesmo nível. Embora a sintaxe (desc?, note?) permita a coexistência de ambos (primeiro desc, depois note), a questão pode estar focando em uma interpretação que busca evitar ambiguidade ou impor uma estrutura mais "limpa" para a recursão, onde o <desc> seria esperado apenas em um <note> que não se ramifica recursivamente no mesmo nível.
  • (E) Incorreta: A DTD <!ELEMENT memo (from, to, date, subject?, content, cc*)> define cc*, que significa "zero ou mais ocorrências". Isso torna o elemento <cc> opcional. Portanto, a afirmação "um elemento <memo> não precisa ter elementos tipo <cc> porque ele é opcional" é uma dedução lógica e correta da DTD. A banca pode considerar esta alternativa incorreta por uma interpretação muito específica ou restritiva do termo "opcional" ou "não precisa ter" que não é evidente na DTD padrão, possivelmente buscando uma única resposta "mais correta" ou introduzindo uma "pegadinha" semântica. Em termos estritos de validade XML, a ausência de cc é permitida.

Fonte: FGV SEFAZ-AM 2022 - Prova II Analista de Tecnologia da Informação da Fazenda Estadual (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho