desenvolvimento fgv - aula 02
TRANSCRIPT
8/18/2019 Desenvolvimento FGV - Aula 02
http://slidepdf.com/reader/full/desenvolvimento-fgv-aula-02 1/37
Exercícios FGVXML+XSLT
Prof. Marcelo Pacote e Leon Solon
1
8/18/2019 Desenvolvimento FGV - Aula 02
http://slidepdf.com/reader/full/desenvolvimento-fgv-aula-02 2/37
Agenda
XML
XSLT
2
8/18/2019 Desenvolvimento FGV - Aula 02
http://slidepdf.com/reader/full/desenvolvimento-fgv-aula-02 3/37
eXtensible Markup Language
(XML)
3
8/18/2019 Desenvolvimento FGV - Aula 02
http://slidepdf.com/reader/full/desenvolvimento-fgv-aula-02 4/37
Partes de um Documento XML
4
8/18/2019 Desenvolvimento FGV - Aula 02
http://slidepdf.com/reader/full/desenvolvimento-fgv-aula-02 5/37
Documentos XML bem formados
5
8/18/2019 Desenvolvimento FGV - Aula 02
http://slidepdf.com/reader/full/desenvolvimento-fgv-aula-02 6/37
Exercício [1] (SENADO/2008/FGV)
Considere as seguintes afirmativas sobre um documento XML bem formado:I. Deve estar sintaticamente correto, seguindo as regras de marcaçãoprescritas para o padrão XML.
II. Deve conter um elemento raiz e pelo menos algum outro elemento.
III. Deve conter uma associação com um documento XMLSchema ou uma
DTD.IV. Deve fazer uso de pelo menos um namespace.
Estão incorretas as afirmativas:a) I e II, apenas. b) III e IV, apenas. c) II, III e IV, apenas.
d) I, II e IV, apenas. e) I, II , III e IV.
6
8/18/2019 Desenvolvimento FGV - Aula 02
http://slidepdf.com/reader/full/desenvolvimento-fgv-aula-02 7/37
Exercício [2] (MEC/2008/FGV/WebDesign) (1/2)
XHTML é a sigla em inglês para EXtensible HyperTextMarkup Language que em português significa Linguagem
Extensível para Marcação de Hipertexto. Uma aplicação XML, escrita para substituir o HTML, nada mais é do que
um HTML "puro, claro e limpo".
Assinale a opção que indica duas diferenças do XHTML
em relação ao HTML.:
(A) tags devem ser escritas em letras minúsculas / o usode tags de fechamento é obrigatório
(B) o uso de tags de fechamento é obrigatório / tagsdevem ser escritas em letras maiúsculas.
7
8/18/2019 Desenvolvimento FGV - Aula 02
http://slidepdf.com/reader/full/desenvolvimento-fgv-aula-02 8/37
Exercício [2] (MEC/2008/FGV/WebDesign) (2/2)
(C) o uso de tags de fechamento é irrelevante / tagsdevem ser escritas em letras minúsculas.
(D) tags devem ser escritas em letras maiúsculas / tagsdevem estar convenientemente aninhadas.
(E) tags devem estar convenientemente aninhadas / tagsdevem ser escritas em letras maiúsculas
8
8/18/2019 Desenvolvimento FGV - Aula 02
http://slidepdf.com/reader/full/desenvolvimento-fgv-aula-02 9/37
XML Namespaces
9
8/18/2019 Desenvolvimento FGV - Aula 02
http://slidepdf.com/reader/full/desenvolvimento-fgv-aula-02 10/37
Declaração de Namespaces
10
8/18/2019 Desenvolvimento FGV - Aula 02
http://slidepdf.com/reader/full/desenvolvimento-fgv-aula-02 11/37
Namespace
11
8/18/2019 Desenvolvimento FGV - Aula 02
http://slidepdf.com/reader/full/desenvolvimento-fgv-aula-02 12/37
XML Válido
12
8/18/2019 Desenvolvimento FGV - Aula 02
http://slidepdf.com/reader/full/desenvolvimento-fgv-aula-02 13/37
DTD vs. XML Schema
13
8/18/2019 Desenvolvimento FGV - Aula 02
http://slidepdf.com/reader/full/desenvolvimento-fgv-aula-02 14/37
Documentos válidos
8/18/2019 Desenvolvimento FGV - Aula 02
http://slidepdf.com/reader/full/desenvolvimento-fgv-aula-02 15/37
XML Schema: Tipos
15
8/18/2019 Desenvolvimento FGV - Aula 02
http://slidepdf.com/reader/full/desenvolvimento-fgv-aula-02 16/37
XML Schema
Tipo Simples
<xs:element name=“sobrenome" type"xs:string"/>
<xs:element name=“idade" type="xs:integer"/>
<xs:element name=“dataNasc" type="xs:date"/>
<sobrenome>Zouza</sobrenome>
<idade>26</idade>
<dataNasc>1984-11-21</dataNasc>
16
8/18/2019 Desenvolvimento FGV - Aula 02
http://slidepdf.com/reader/full/desenvolvimento-fgv-aula-02 17/37
XML Schema – Tipos Complexos
<xs:element name=“empregado"> <xs:complexType>
<xs:sequence>
<xs:element name=“nome" type="xs:string"/>
<xs:element name=“sobrenome" type="xs:string“ maxOccurs="10"
minOccurs="0"/>
</xs:sequence></xs:complexType>
</xs:element>
<empregado>
<nome>Marcelo</nome>
<sobrenome>Pacote</sobrenome>
</empregado>
17
8/18/2019 Desenvolvimento FGV - Aula 02
http://slidepdf.com/reader/full/desenvolvimento-fgv-aula-02 18/37
XML Schema
<!ELEMENT note (de, para, head, body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.xml.com"
xmlns="http://www.xml.com"
elementFormDefault=“unqualified">
<xs:element name="note"><xs:complexType>
<xs:sequence>
<xs:element name=“de" type="xs:string" />
<xs:element name=“para” type="xs:string" />
<xs:element name=“head" type="xs:string" />
<xs:element name="body" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element></xs:schema>
18
8/18/2019 Desenvolvimento FGV - Aula 02
http://slidepdf.com/reader/full/desenvolvimento-fgv-aula-02 19/37
19
Para as questões 3 a 5, sejam o documento XMLe seu correspondente XML Schema nos slides a
seguir:
Exercício (SENADO/2008/FGV) - adaptado
8/18/2019 Desenvolvimento FGV - Aula 02
http://slidepdf.com/reader/full/desenvolvimento-fgv-aula-02 20/37
8/18/2019 Desenvolvimento FGV - Aula 02
http://slidepdf.com/reader/full/desenvolvimento-fgv-aula-02 21/37
<xs:sch ema xm lns:xs=ht tp: / /ww w.w3.org/2001/XMLSchema
targetNamespace ="http:/xyz.org/oc.xsd“ xmlns="ht tp: / /xyz.org/oc.xsd"
elementFormDefaul t="qual i f ied">
<xs:element name="OrdemdeComp ra “ type=" TipoOrdemdeCompra"/>
<xs:e lement name="comentar io" type="xs :str ing" />
<xs:com plexType name=" TipoOrdemdeCompra "><xs:sequence>
<xs:element name=" enddest ino" type="endereco" />
<xs:element name="endpagamento" type="endereco" />
<xs:e lement ref="comentar io" m inOccurs=" 0"/>
<xs:e lement name=" i tens" type="I tens" />
</xs:sequence>
<xs:at t r ibute name="datacomp ra" type="x s:date" />
</xs:complexType>
<xs:com plexType name="endereco" >
<xs:sequence>
<xs:e lement name="n ome" type="x s:str ing" />
<xs:e lement name=" rua" type="xs :str ing" />
<xs:e lement name="cidade" type=" xs:str ing" /><xs:e lement name=" estado" type="xs :str ing" />
<xs:e lement name="cep" typ e=" xs:decimal" />
</xs:sequence>
<xs:at t r ibute name="p ais" typ e=" xs:NMTOKEN “ fixed="BRASIL"/>
</xs:complexType>
(...)
</xs:schema>
21
8/18/2019 Desenvolvimento FGV - Aula 02
http://slidepdf.com/reader/full/desenvolvimento-fgv-aula-02 22/37
Exercício [3] (SENADO/2008/FGV)
É correto afirmar que, no documento XML:
a) o elemento rua poderia anteceder o elemento nome em enddestino.
b) o elemento comentario pode aparecer mais de uma vez.
c) http:/xyz.org/oc.xsd é o namespace padrão.d) o atributo datacompra não deveria estar dentro da tag de abertura do
elemento OrdemdeCompra.
e) os elementos enddestino e endpagamento não podem ter um atributocom mesmo nome.
22
8/18/2019 Desenvolvimento FGV - Aula 02
http://slidepdf.com/reader/full/desenvolvimento-fgv-aula-02 23/37
Exercício [4] (SENADO/2008/FGV)
Em relação ao documento XML Schema é correto afirmar que:
a) se minOccurs=”0” fosse removido da declaração do elemento comentario,
então o documento XML deveria ter pelo menos uma ocorrência desseselementos.
b) o elemento comentário é um tipo simples por não ter um atributo type
associado.
c) os elementos nome, rua, cidade, estado e cep não poderiam serdeclarados diretamente como subelementos dos elementosendpagamento e enddestino em lugar da declaração através do type
endereço.
d) a declaração <xs:attribute name="datacompra” type="xs:date"/> deveria
anteceder a declaração do tipo complexo TipoOrdemdeCompra.
e) no documento XML, os elementos em que minOccurs=”0”
não podem ter qualquer ocorrência.
23
8/18/2019 Desenvolvimento FGV - Aula 02
http://slidepdf.com/reader/full/desenvolvimento-fgv-aula-02 24/37
Exercício [5] (SENADO/2008/FGV)
Avalie as afirmativas a seguir:
I. A declaração elementFormDefault="qualified" torna obrigatório o uso detipos complexos no esquema.
II. A declaração targetNamespace="http:/xyz.org/oc.xsd“ indica que oselementos e tipos de dados usados no XML Schema (schema, element,complexType, sequence etc.) vêm do namespace http:/xyz.org/oc.xsd.
III. Um elemento do tipo complexo pode se basear em um tipo complexoexistente e ainda adicionar alguns elementos.
a) se somente as afirmativas I e II estiverem corretas.
b) se somente as afirmativas II e III estiverem corretas.
c) se somente a afirmativa III estiver correta.
d) se somente a afirmativa II estiver correta.
e) se somente as afirmativas I e III estiverem corretas.
24
8/18/2019 Desenvolvimento FGV - Aula 02
http://slidepdf.com/reader/full/desenvolvimento-fgv-aula-02 25/37
XSLT
25
8/18/2019 Desenvolvimento FGV - Aula 02
http://slidepdf.com/reader/full/desenvolvimento-fgv-aula-02 26/37
XSL –eXtensible Stylesheet Language
26
8/18/2019 Desenvolvimento FGV - Aula 02
http://slidepdf.com/reader/full/desenvolvimento-fgv-aula-02 27/37
XPath
27
Representa caminhos para os nós de umdocumento XML
8/18/2019 Desenvolvimento FGV - Aula 02
http://slidepdf.com/reader/full/desenvolvimento-fgv-aula-02 28/37
XSLT: documento-fonte (1/3)
28
8/18/2019 Desenvolvimento FGV - Aula 02
http://slidepdf.com/reader/full/desenvolvimento-fgv-aula-02 29/37
XSLT: folha de estilos (2/3)
29
8/18/2019 Desenvolvimento FGV - Aula 02
http://slidepdf.com/reader/full/desenvolvimento-fgv-aula-02 30/37
XSLT: documento-resultado (3/3)
30
8/18/2019 Desenvolvimento FGV - Aula 02
http://slidepdf.com/reader/full/desenvolvimento-fgv-aula-02 31/37
Exercício [6] (SENADO/2012/FGV) (1/3)
XSLT (Extensible Stylesheet LanguageTransformations), é uma linguagem baseada emXML, usada mais frequentemente para converterdados entre diferentes esquemas XML ou converter
dados XML em páginas da web ou em PDF. Na XSLTé utilizada uma folha de estilo XSL, que consiste emuma ou mais regras denominadas templates. Nessesentido, observe o código:
31
8/18/2019 Desenvolvimento FGV - Aula 02
http://slidepdf.com/reader/full/desenvolvimento-fgv-aula-02 32/37
Exercício [6] (SENADO/2012/FGV) (2/3)
32
8/18/2019 Desenvolvimento FGV - Aula 02
http://slidepdf.com/reader/full/desenvolvimento-fgv-aula-02 33/37
Exercício [6] (SENADO/2012/FGV) (1/3)
No código, para definir o documento como uma folhade estilo XSLT, é utilizada a seguinte instrução ouparâmetro:
a) match=”/”> b) <xsl:stylesheetc) <xsl:templated) <?xml version=”1.0”
e) encoding=”ISO-8859-1”
33
8/18/2019 Desenvolvimento FGV - Aula 02
http://slidepdf.com/reader/full/desenvolvimento-fgv-aula-02 34/37
Exercício [7] (MEC/2009/FGV/Arquiteto) (1/2)
Com relação às tecnologias relacionadas aXML(eXtensible Markup Language), leia os trechos a
seguir.
O ______ é um processador XSLT em código aberto
produzido pela organização Apache. Ele pode serutilizado para transformar um documento XML em
HTML ou outro XML.
_______ é uma linguagem de expressão utilizada para
navegar por meio de elementos e atributos de umdocumento XML.
34
8/18/2019 Desenvolvimento FGV - Aula 02
http://slidepdf.com/reader/full/desenvolvimento-fgv-aula-02 35/37
Exercício [7] (MEC/2009/FGV/Arquiteto) (2/2)
_______ é uma linguagem baseada no formato XML paradefinição de regras de validação em documentos XML.
Esta linguagem é uma alternativa ao DTD, cuja sintaxe
não é baseada no formato XML.
Assinale a alternativa que preencha corretamente, decima para baixo, as lacunas acima:
(A) XALAN, XPATH, XSD. (B) SAXON, XPATH, XST.
(C) XALAN, XESALT, XDD. (D) SAXON, XESALT, XSD.
(E) MSXML3, XESALT, XDD.
35
8/18/2019 Desenvolvimento FGV - Aula 02
http://slidepdf.com/reader/full/desenvolvimento-fgv-aula-02 36/37
Exercício [8] (MEC/2008/FGV/Arquiteto)
A XSLT (eXtensible Stylesheet Language:Transformations) é umalinguagem usada para transformara 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 XSLTem um documento fonte XML e produzir um documentoresultante. Assinale a alternativa que não apresente umprocessador XSLT:
(A) Xalan. (B) Saxon. (C) XTLTX.
(D) MSXML3. (E) Sablotron.
36
8/18/2019 Desenvolvimento FGV - Aula 02
http://slidepdf.com/reader/full/desenvolvimento-fgv-aula-02 37/37
Gabarito dos Exercícios (XML + XSLT)
[01] c
[02] a
[03] c
[04] a [05] c
[06] b
[07] a [08] c
37