Questão nº 50
Questão de Tecnologia da Informação · CESGRANRIO BASA 02/2021 (nº 50)
Um projetista de sistemas está desenvolvendo um siste-
ma e precisou programar um arquivo XSLT. Neste arquivo,
ele precisou inserir um elemento para aplicar uma regra
de modelo, a partir de uma folha de estilo importada, ao
invés de uma regra equivalente, a partir da folha de estilo
principal, mas sem que este elemento apareça como o
primeiro nó filho de `<xsl: stylesheet>`.
Para este caso, o elemento que deve ser inserido para
aplicar tal regra nesse arquivo XSLT é o
- A`apply-imports` (alternativa correta)
- B`apply_templates`
- C`imports`
- D`include`
- E`template`
Resposta comentada
Gabarito Alternativa A
Conceito-chave: XSLT tem duas formas de usar regras de outras folhas de estilo: import (prioridade menor) e include (prioridade igual). Quando você importa uma folha e quer chamar uma regra da folha importada (e não a da folha principal), usa-se <xsl:apply-imports>. Esse elemento só funciona dentro de uma regra de modelo (<xsl:template>) e serve para "delegar" o processamento à versão importada, sem precisar reescrever a regra.
- (A) Correta:
<xsl:apply-imports>é exatamente o elemento que aplica uma regra de modelo vinda de uma folha de estilo importada, priorizando-a sobre a regra equivalente da folha principal — e não precisa ser o primeiro filho de<xsl:stylesheet>. - (B) Incorreta:
<xsl:apply-templates>aplica regras de modelo aos nós filhos do nó atual, mas sempre prioriza a regra de maior prioridade (da folha principal), não a importada — por isso não atende ao caso. - (C) Incorreta:
<xsl:import>é o elemento usado para importar uma folha de estilo inteira, mas deve ser o primeiro filho de<xsl:stylesheet>; não é usado para aplicar uma regra específica. - (D) Incorreta:
<xsl:include>insere o conteúdo de outra folha de estilo com a mesma prioridade da principal, mas não permite chamar uma regra importada especificamente; e também não é um elemento de aplicação de regra. - (E) Incorreta:
<xsl:template>define uma regra de modelo, mas não a aplica; é o "molde" que será chamado porapply-templatesouapply-imports, não o elemento que faz a chamada.
Armadilha da banca (no distrator mais tentador, a letra B): O aluno confunde apply-templates (que é o mais comum e aparece em todo exemplo básico) com apply-imports. A pegadinha está no verbo "importada": quem lê rápido pensa "aplicar templates" e marca B, mas a questão exige priorizar a regra da folha importada, o que só apply-imports faz.
Fonte: CESGRANRIO BASA 02/2021 Técnico Científico - Tecnologia da Informação. Reproduzida para fins de estudo.