SlideShare uma empresa Scribd logo
1 de 57
Baixar para ler offline
Aplicando Transformações
em XML usando XSLT e
XSL-FO
Ms Vivian Genaro Motti
Profª Drª Maria da Graça Pimentel
Prof Dr Rudinei Goularte
Ilhéus, maio de 2009.
ERBASE
 Parte I: XML, conceitos e definições
 Parte II: XSD, XSL, X-PATH
 Parte III: CSS, XSL-T, XSL-FO
 Parte IV: XSL-FO (Formatting
Objects)
Sumário
 XSD
 Schemas
 XSL
 Origem
 Definição
 Aplicação
 XPATH
Documento XML
<?xml version="1.0" encoding="UTF-8"?>
<recado>
  <para>João</para>
  <de>Maria</de>
  <assunto>Aviso</assunto>
  <mensagem>Sua mãe ligou.</mensagem>
</recado>
Schema
<xs:element name="recado">
<xs:complexType>
<xs:sequence>
<xs:element name="para" type="xs:string"/>
  <xs:element name="de" type="xs:string"/>
  <xs:element name="assunto" type="xs:string"/>
  <xs:element name="mensagem" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
Associando Schema ao XML
<?xml version="1.0"encoding="UTF-8"?>
<recado
xmlns="http://www.w3schools.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance"
xsi:schemaLocation="http://www.w3schools.com
recado.xsd">
  <para>João</para>
...
  <mensagem>Sua mãe ligou.</mensagem>
</recado>
Associando Schema ao XML
xmlns="http://www.w3schools.com"
 Especifica a declaração do namespace padrão
 Todos os elementos usados no XML original estão
declarados no namespace da URL
 Tendo o namespace disponível:
xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance"
 Declara-se o namespace a ser usado
 E o Schema
xsi:schemaLocation="http://www.w3schools.com
recado.xsd"
Restrições
 Elementos do Schema que
restringem a definição de
 simpleType
 simpleContent
 complexContent
Elementos Simples
 São elementos compostos apenas
por texto
 Não possuem atributos nem outros
elementos
 No entanto o texto pode ser de
diferentes tipos
 Boolean, string, date
 É possível restringir seu conteúdo
Elementos Simples
 São definidos assim
<xs:element name="x" type="y">
 Tipos
 xs:string
 xs:decimal
 xs:integer
 xs:boolean
 xs:date
 xs:time
Exemplos
<nome>Maria</nome>
<idade>16</idade>
<nascimento>1993-02-27</nascimento>
<xs:element name="nome" type="xs:string"/>
<xs:element name="idade" type="xs:integer"/>
<xs:element name="nascimento" type="xs:date"/>
Valores Padrão e Fixo
 É possível especificar um valor fixo ou
padrão para elementos simples
<xs:element name="sexo" type="xs:string"
default="M"/>
 O valor padrão é usado caso nenhum outro
seja definido
 Já o valor fixo não pode ser alterado
<xs:element name="cor" type="xs:string"
fixed="azul"/>
Exemplo de Atributo
 Exemplo
<nome prefixo="Sr">Smith</nome>
 Declaração
<xs:attribute name="prefixo" type="xs:string"/>
 Opções
 Valor padrão ou constante
 Opcional ou Requerido
 Conteúdos Restritos
Atributos
 São definidos assim
<xs:attribute name="x" type="y">
 Tipos
 xs:string
 xs:decimal
 xs:integer
 xs:boolean
 xs:date
 xs:time
Atributo
 Elemento Vazio
<aluno id="01" />
 Declaração
<xs:element name="aluno" type="xs:string">
<xs:complexType name="aluno">
<xs:attribute name="id" type="xs:string"/>
</xs:complexType>
Ocorrências
 Quantidade de elementos
 DTD: *, ?, +
 Schema: minOccurs, maxOccurs
<xs:element name="cel" type="xs:string"
minOccurs="1" maxOccurs="2"/>
 Valor especial
 maxOccurs="unbounded"
 Sem limites
Tipos de Dados
 É possível criar tipos de dados próprios
<xs:element name="nomecompleto">
<xs:complexType>
<xs:sequence>
<xs:element name="nome" type="xs:string"/>
<xs:element name="sobrenome" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
Ordem dos elementos
 Há três opções
 Sequence: atribui uma ordem fixa aos
elementos
 All: qualquer ordem é possível
 Choice: um elemento da lista aparece
Exemplo
 Para escolha: choice
<xs:element name="setor">
<xs:complexType>
<xs:choice>
<xs:element name="venda" type="xs:string"/>
<xs:element name="caixa" type="xs:string"/>
</xs:choice>
</xs:complexType>
</xs:element>
Tipo Simples
 Enumeration
 Opções de conteúdo
<xs:simpleType name="cor">
<xs:restriction base="xs:string">
<xs:enumeration value="branco"/>
<xs:enumeration value="azul"/>
<xs:enumeration value="verde"/>
</xs:restriction>
</xs:simpleType>
Parsing
 Análise
 É feita uma leitura integral do
documento
 A informação é estrutura de acordo
com a definição de seus elementos
Parsers
 Lêem o documento XML
 Analisam a formatação e gramática
 Convertem em um objeto DOM
 Para ser acessado via JavaScript
 Expat
 Desenvolvido em C
 XML4J
 Suporta DOM e SAX
SAX (Simple API for XML)
 É um conjunto de interfaces Java
 Permite criação de aplicativos para
ler dados em um documento XML
 Parsing
DOM (Document Object Model)
 Define um modo padrão para acessar e
manipular documentos XML
 Interpreta como estrutura em árvore
 Permitindo acesso, alteração, criação e
remoção de nós
 Armazena o documento todo na
memória
 Não recomendado para arquivos grandes
DOM
 Para navegação e manipulação de
conteúdo
 Adição de modelos de folhas de estilo
 Visualização da formatação dos
documentos
 Método para recuperar dados
 getElementsByTagName()
Linguagens Derivadas
 XHTML última versão do HTML
 SVG formato de imagens
 SMIL para descrever multimídia na web
 WSDL para descrever webservices
 WAP linguagem de marcação para PDAs
 RSS para feeds
 RDF e OWL para descrever recursos e
ontologias
 MathML, CML
SVG
 Scalable Vector Graphics
 Especificação para gráficos
 Escaláveis
 Interativos
 Padrão W3C
SMIL (smile)
 Synchronized Multimedia Integration
Language
 Descreve o tempo em uma
apresentação
 Descreve o layout da apresentação na
tela
 Associa links aos objetos de mídia
MathML
 Mathematical Markup Language
 Recomendação W3C
 Linguagem para descrições
matemáticas
 Provê acessibilidade
 E consultas mais precisas
MathML
 Usa a notação pré-fixa (6+2)
<math>
<apply>
<plus/> --> Operador vem antes.
<cn>6</cn> --> 1º operando
<cn>2</cn> --> 2º operando
</apply>
</math>
CML – H2O
<?xml version="1.0"?>
<cml xmlns="http://www.xml-cml.org/schema/cml2/core"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation= "http://www.xml-
cml.org/schema/cml2/core cmlCore.xsd">
<molecule title="Water">
<atomArray>
<atom id="a1" elementType="H" hydrogenCount="0"/>
<atom id="a2" elementType="O" hydrogenCount="2"/>
<atom id="a3" elementType="H" hydrogenCount="0"/>
</atomArray>
<bondArray>
<bond atomRefs2="a1 a2" order="1"/>
<bond atomRefs2="a2 a3" order="1"/>
</bondArray>
</molecule>
</cml>
Considerações Importantes
 XML: Extensible Markup Language
 Não substitui o HTML
 DTD: Document Type Definition
 XSL: Extensible Stylesheet Language
 <?xml version="1.0"?>
 Documentos válidos x bem-formados
XSL
Extensible
Stylesheet
Language
Definição de XSL
 XSL: Extensible Stylesheet Language
 Transforma o XML adicionando folhas de
estilo a ele
 Usa linguagem de transformação e de
formatação
 XSL
 É um conjunto de recomendações para
definir a transformação e a apresentação
de um documento XML
Transformação do XML
 Reorganiza o conteúdo
 Adicionando
 Movendo ou
 Excluindo elementos
 XSL
 Associa regras de formatação aos
elementos
Folhas de Estilo
 Arquivos que descrevem a formatação
de documentos XML
 Consistem em:
 XPATH
 Transformações ou XSLT
 XSL-FO
Comparação
 CSS
 Folhas de estilo para apresentar
conteúdo HML
 XSL
 Folhas de estilo para apresentar
conteúdo XML
X-PATH
XPATH
 Sintaxe para navegar por conteúdo
XML
 Possui uma biblioteca de funções
padrão
 É o principal elemento de XSLT
 É um recomendação da W3C
XPATH
 Linguagem para acesso ao conteúdo
de um documento XML
 Manipula strings, números, booleanos
 Navega pela estrutura hierárquica
de um documento XML
 Classifica os nós em 5 tipos
 Pai, filho, irmão, ancestral e
descendente
Nós em XPATH
 São de 7 tipos diferentes
 Elemento
 Atributo
 Texto
 Namespaces
 Instruções de processamento
 Comentários
 Raiz
 Documentos XML são sempre tratados
como árvores
Nós em XPATH
 Valores Atômicos
 São nós sem filhos ou sem pais
 Ex: <nome>Maria</nome>
 Nós Pais
 Todo elemento e atributo possui um pai
 Filhos
 Elementos podem ter zero, um ou mais
filhos
Nós em XPATH
 Irmãos
 Nós com o mesmo pai
 Nó Ancestral
 O pai, ou avó ... de um nó
 Nós Descendentes
 Os filhos, ou netos ... de um nó
Expressões em XPATH
 São utilizadas para
 Selecionar nós e conjuntos de nós em
um documento XML
 Sua sintaxe é similar à de
navegação por sistemas de arquivos
Expressões em XPATH
seleciona os atributos do nó@
seleciona o pai do nó atual..
seleciona o nó atual.
seleciona nós do documento a partir do nó atual//
seleciona do nó raiz/
seleciona todos os nós filhos do nó correspondentenome do nó
DescriçãoExpressão
Exemplos de expressões
XPATH
todos os elementos telefone que tenham um
atributo tipo de valor celular
//telefone[@tipo='celular']
o primeiro elemento nome que é filho de
agenda
/agenda/nome[1]
todos os elementos telefone que tenham um
atributo tipo
//telefone[@tipo]
os dois primeiros elemento nome que é filho
de agenda
/agenda/nome[position() < 3]
o penúltimo elemento nome que é filho de
agenda
/agenda/nome[last() - 1]
o último elemento nome que é filho de
agenda
/agenda/nome[last()]
o primeiro elemento nome que é filho de
agenda
/agenda/nome[1]
SeleçãoExpressão
Expressões Genéricas
 *
 Seleciona qualquer elemento
 @*
 Seleciona qualquer atributo de qualquer
elemento
 node()
 Seleciona qualquer nó de qualquer tipo
 |
 Seleciona mais de um caminho
 Ex://agenda/nome | //agenda/telefone
Eixos em XPATH
 Definem um conjunto de nós relativos
todos os atributos do nó atualattribute
todos os filhos do nó atualchild
e ele própriodescendant-or-self
todos os descendentesdescendant
e ele próprioancestor-or-self
todos os ancestraisancestor
Eixos em XPATH
 Definem um conjunto de nós relativos
todos os nós de namespaces do nó atualnamespace
todos os filhos do nó atualchild
tudo no documento que está antes do nó
atual
preceding
o pai do nó atualparent
todos os irmão após o nó atualfollowing-sibling
tudo no documento que vier na
sequência do nó atual
following
Operadores em XPATH
divisãodiv
subtração-
igual=
multiplicação*
adição+
processa dois conjuntos de nós|
Operadores em XPATH
maior que>
menor ou igual a<=
maior ou igual a>=
menor que<
diferente!=
Operadores em XPATH
módulo (resto da divisão)mod
eand
ouor
Expressão de local
 Um caminho de localização pode ser
 Absoluto ou
 Relativo
 Caminhos absolutos são iniciados
por um barra
 /nome
 Caminhos relativos não
 nome
Funções Padrão
 XPATH possui uma biblioteca com
mais de 100 funções padrão para
 Comparação de strings, valores
numéricos, booleanos, e tempo
 Manipulação de nós e de sequências
 XPATH é usada em XSLT
Considerações Importantes
 XSL
 Transforma os elementos usando XSLT
 Formata os elementos usando XSL-FO
 XPATH
 Linguagem para seleção e manipulação
de nós XML
Considerações Finais
 XML é uma linguagem dependente,
portanto é necessário
 XSD para validar um documento (ou
DTD)
 XSL para transformar e formatar
 XPATH para navegar pelo documento
fonte
Referências
[XPath, 1999] Definição de XPath disponível em: http
://www.w3.org/TR/xpath
[XPath, 2009] Tutorial sobre XPath disponível em: http
://www.w3schools.com/xpath/
[XSL, 2009] Tutorial sobre XSL da W3C. Disponível em:
http://www.w3schools.com/Xsl/xsl_languages.asp

Mais conteúdo relacionado

Mais procurados (20)

Introdução à XML - Serviço de Biblioteca da EEFE-USP
Introdução à XML - Serviço de Biblioteca da EEFE-USPIntrodução à XML - Serviço de Biblioteca da EEFE-USP
Introdução à XML - Serviço de Biblioteca da EEFE-USP
 
XML & HTML
XML & HTMLXML & HTML
XML & HTML
 
Conceitos de xml
Conceitos de xmlConceitos de xml
Conceitos de xml
 
Linguagem SQL
Linguagem SQLLinguagem SQL
Linguagem SQL
 
Xml pucminas2013
Xml pucminas2013Xml pucminas2013
Xml pucminas2013
 
01- Introdução ao XML
01- Introdução ao XML01- Introdução ao XML
01- Introdução ao XML
 
Aula Introdução a Linguagem XML
Aula Introdução a Linguagem XMLAula Introdução a Linguagem XML
Aula Introdução a Linguagem XML
 
XML - Introdução
XML - IntroduçãoXML - Introdução
XML - Introdução
 
Aplicativo aula04
Aplicativo aula04Aplicativo aula04
Aplicativo aula04
 
Net Coders Ladies - Introdução a Banco de Dados
Net Coders Ladies - Introdução a Banco de Dados Net Coders Ladies - Introdução a Banco de Dados
Net Coders Ladies - Introdução a Banco de Dados
 
Banco de dados
Banco de dadosBanco de dados
Banco de dados
 
Workshop - Desenvolvimento web com Drupal 7
Workshop - Desenvolvimento web com Drupal 7Workshop - Desenvolvimento web com Drupal 7
Workshop - Desenvolvimento web com Drupal 7
 
CSS3 e Html5 - O que há de novo / parte 1
CSS3 e Html5 - O que há de novo / parte 1CSS3 e Html5 - O que há de novo / parte 1
CSS3 e Html5 - O que há de novo / parte 1
 
1ª aula php
1ª aula php1ª aula php
1ª aula php
 
Aula 05 - Programação Web - Trabalhando com arquivos em PHP
Aula 05 - Programação Web - Trabalhando com arquivos em PHPAula 05 - Programação Web - Trabalhando com arquivos em PHP
Aula 05 - Programação Web - Trabalhando com arquivos em PHP
 
15
1515
15
 
Aula de DTD Definição do Tipo de Documento
Aula de DTD Definição do Tipo de DocumentoAula de DTD Definição do Tipo de Documento
Aula de DTD Definição do Tipo de Documento
 
Oficina WEB Design Lecom - PHP e MySQL
Oficina WEB Design Lecom - PHP e MySQLOficina WEB Design Lecom - PHP e MySQL
Oficina WEB Design Lecom - PHP e MySQL
 
Parte5 xml
Parte5 xmlParte5 xml
Parte5 xml
 
I Series 400 Query
I Series 400   QueryI Series 400   Query
I Series 400 Query
 

Semelhante a Aplicando Transformações XML

Semelhante a Aplicando Transformações XML (20)

Aula Xml Schema - XSD
Aula Xml Schema - XSDAula Xml Schema - XSD
Aula Xml Schema - XSD
 
02 - Apresentação de dados em XML com XSL e HTML
02 - Apresentação de dados em XML com XSL e HTML02 - Apresentação de dados em XML com XSL e HTML
02 - Apresentação de dados em XML com XSL e HTML
 
Oracle XML DB - Conceitos iniciais
Oracle XML DB - Conceitos iniciaisOracle XML DB - Conceitos iniciais
Oracle XML DB - Conceitos iniciais
 
XML_WS.pdf
XML_WS.pdfXML_WS.pdf
XML_WS.pdf
 
Tecnologias XML e XML no SQL Server 2016
Tecnologias XML eXML no SQL Server 2016Tecnologias XML eXML no SQL Server 2016
Tecnologias XML e XML no SQL Server 2016
 
12 sax
12 sax12 sax
12 sax
 
XML - Parte 3
XML - Parte 3XML - Parte 3
XML - Parte 3
 
Java Desktop
Java DesktopJava Desktop
Java Desktop
 
XSLT: Conceitos iniciais
XSLT: Conceitos iniciaisXSLT: Conceitos iniciais
XSLT: Conceitos iniciais
 
Oracle XML DB
Oracle XML DBOracle XML DB
Oracle XML DB
 
Formularios
FormulariosFormularios
Formularios
 
JustJava 2004: JAXB
JustJava 2004: JAXBJustJava 2004: JAXB
JustJava 2004: JAXB
 
Suporte XML nativo no SQL Server 2014/2016
Suporte XML nativo no SQL Server 2014/2016Suporte XML nativo no SQL Server 2014/2016
Suporte XML nativo no SQL Server 2014/2016
 
Xml
XmlXml
Xml
 
mod5-estruturas-dadosdinamicas
mod5-estruturas-dadosdinamicasmod5-estruturas-dadosdinamicas
mod5-estruturas-dadosdinamicas
 
ASP.Net Módulo 2
ASP.Net   Módulo 2ASP.Net   Módulo 2
ASP.Net Módulo 2
 
A e xtensible markup language (xml)
A e xtensible markup language (xml)A e xtensible markup language (xml)
A e xtensible markup language (xml)
 
html css js ajax exercícios de programação
html css js ajax exercícios de programaçãohtml css js ajax exercícios de programação
html css js ajax exercícios de programação
 
jQuery na Prática - Cauê Fajoli
jQuery na Prática - Cauê FajolijQuery na Prática - Cauê Fajoli
jQuery na Prática - Cauê Fajoli
 
Utilização do Software Maxima
Utilização do Software MaximaUtilização do Software Maxima
Utilização do Software Maxima
 

Mais de Vivian Motti

Keynote speech - Webmedia 2020
Keynote speech - Webmedia 2020Keynote speech - Webmedia 2020
Keynote speech - Webmedia 2020Vivian Motti
 
Smartwatch Applications as Assistive Technologies
Smartwatch Applications as Assistive TechnologiesSmartwatch Applications as Assistive Technologies
Smartwatch Applications as Assistive TechnologiesVivian Motti
 
Wearable technologies
Wearable technologiesWearable technologies
Wearable technologiesVivian Motti
 
Cards - Users with Disabilities - Course Material
Cards - Users with Disabilities - Course MaterialCards - Users with Disabilities - Course Material
Cards - Users with Disabilities - Course MaterialVivian Motti
 
Assisting Students with Intellectual and Developmental Disabilities in Inclus...
Assisting Students with Intellectual and Developmental Disabilities in Inclus...Assisting Students with Intellectual and Developmental Disabilities in Inclus...
Assisting Students with Intellectual and Developmental Disabilities in Inclus...Vivian Motti
 
Assisting Students with Intellectual and Developmental Disabilities in Inclus...
Assisting Students with Intellectual and Developmental Disabilities in Inclus...Assisting Students with Intellectual and Developmental Disabilities in Inclus...
Assisting Students with Intellectual and Developmental Disabilities in Inclus...Vivian Motti
 
Assisting Students with Intellectual and Developmental Disabilities in Inclus...
Assisting Students with Intellectual and Developmental Disabilities in Inclus...Assisting Students with Intellectual and Developmental Disabilities in Inclus...
Assisting Students with Intellectual and Developmental Disabilities in Inclus...Vivian Motti
 
mHealth Application to Inform Caregivers of Babies with Congenital Zika Virus...
mHealth Application to Inform Caregivers of Babies with Congenital Zika Virus...mHealth Application to Inform Caregivers of Babies with Congenital Zika Virus...
mHealth Application to Inform Caregivers of Babies with Congenital Zika Virus...Vivian Motti
 
Smartwatch Applications for Mental Health: A Qualitative Analysis of Users’ P...
Smartwatch Applications for Mental Health: A Qualitative Analysis of Users’ P...Smartwatch Applications for Mental Health: A Qualitative Analysis of Users’ P...
Smartwatch Applications for Mental Health: A Qualitative Analysis of Users’ P...Vivian Motti
 
Wearable privacy skeletons in the data closet
Wearable privacy  skeletons in the data closetWearable privacy  skeletons in the data closet
Wearable privacy skeletons in the data closetVivian Motti
 
Wearable Life: a Wrist-Worn Application to Assist Students in Special Education
Wearable Life: a Wrist-Worn Application to Assist Students in Special EducationWearable Life: a Wrist-Worn Application to Assist Students in Special Education
Wearable Life: a Wrist-Worn Application to Assist Students in Special EducationVivian Motti
 
UX Design for Wrist-Worn Wearables – how contextual dynamics influence intera...
UX Design for Wrist-Worn Wearables – how contextual dynamics influence intera...UX Design for Wrist-Worn Wearables – how contextual dynamics influence intera...
UX Design for Wrist-Worn Wearables – how contextual dynamics influence intera...Vivian Motti
 
Using Smartwatches to Assist Students with Intellectual and Developmental Dis...
Using Smartwatches to Assist Students with Intellectual and Developmental Dis...Using Smartwatches to Assist Students with Intellectual and Developmental Dis...
Using Smartwatches to Assist Students with Intellectual and Developmental Dis...Vivian Motti
 
Smart Wearables or Dumb Wearables? Understanding how Context Impacts the UX i...
Smart Wearables or Dumb Wearables? Understanding how Context Impacts the UX i...Smart Wearables or Dumb Wearables? Understanding how Context Impacts the UX i...
Smart Wearables or Dumb Wearables? Understanding how Context Impacts the UX i...Vivian Motti
 
Toward a Visual Vocabulary for Privacy Concepts
Toward a Visual Vocabulary for Privacy ConceptsToward a Visual Vocabulary for Privacy Concepts
Toward a Visual Vocabulary for Privacy ConceptsVivian Motti
 
Wearable Computing: Healthcare, Human Factors and Privacy
Wearable Computing: Healthcare, Human Factors and PrivacyWearable Computing: Healthcare, Human Factors and Privacy
Wearable Computing: Healthcare, Human Factors and PrivacyVivian Motti
 
Micro interactions and multi dimensional graphical user interfaces in the des...
Micro interactions and multi dimensional graphical user interfaces in the des...Micro interactions and multi dimensional graphical user interfaces in the des...
Micro interactions and multi dimensional graphical user interfaces in the des...Vivian Motti
 
An Overview of Wearable Applications for Health Care: Requirements and Challe...
An Overview of Wearable Applications for Health Care: Requirements and Challe...An Overview of Wearable Applications for Health Care: Requirements and Challe...
An Overview of Wearable Applications for Health Care: Requirements and Challe...Vivian Motti
 

Mais de Vivian Motti (20)

Keynote speech - Webmedia 2020
Keynote speech - Webmedia 2020Keynote speech - Webmedia 2020
Keynote speech - Webmedia 2020
 
Usable Privacy
Usable PrivacyUsable Privacy
Usable Privacy
 
Smartwatch Applications as Assistive Technologies
Smartwatch Applications as Assistive TechnologiesSmartwatch Applications as Assistive Technologies
Smartwatch Applications as Assistive Technologies
 
Wearable technologies
Wearable technologiesWearable technologies
Wearable technologies
 
Cards - Users with Disabilities - Course Material
Cards - Users with Disabilities - Course MaterialCards - Users with Disabilities - Course Material
Cards - Users with Disabilities - Course Material
 
Assisting Students with Intellectual and Developmental Disabilities in Inclus...
Assisting Students with Intellectual and Developmental Disabilities in Inclus...Assisting Students with Intellectual and Developmental Disabilities in Inclus...
Assisting Students with Intellectual and Developmental Disabilities in Inclus...
 
Assisting Students with Intellectual and Developmental Disabilities in Inclus...
Assisting Students with Intellectual and Developmental Disabilities in Inclus...Assisting Students with Intellectual and Developmental Disabilities in Inclus...
Assisting Students with Intellectual and Developmental Disabilities in Inclus...
 
Assisting Students with Intellectual and Developmental Disabilities in Inclus...
Assisting Students with Intellectual and Developmental Disabilities in Inclus...Assisting Students with Intellectual and Developmental Disabilities in Inclus...
Assisting Students with Intellectual and Developmental Disabilities in Inclus...
 
mHealth Application to Inform Caregivers of Babies with Congenital Zika Virus...
mHealth Application to Inform Caregivers of Babies with Congenital Zika Virus...mHealth Application to Inform Caregivers of Babies with Congenital Zika Virus...
mHealth Application to Inform Caregivers of Babies with Congenital Zika Virus...
 
Smartwatch Applications for Mental Health: A Qualitative Analysis of Users’ P...
Smartwatch Applications for Mental Health: A Qualitative Analysis of Users’ P...Smartwatch Applications for Mental Health: A Qualitative Analysis of Users’ P...
Smartwatch Applications for Mental Health: A Qualitative Analysis of Users’ P...
 
Wearable privacy skeletons in the data closet
Wearable privacy  skeletons in the data closetWearable privacy  skeletons in the data closet
Wearable privacy skeletons in the data closet
 
Wearable Life: a Wrist-Worn Application to Assist Students in Special Education
Wearable Life: a Wrist-Worn Application to Assist Students in Special EducationWearable Life: a Wrist-Worn Application to Assist Students in Special Education
Wearable Life: a Wrist-Worn Application to Assist Students in Special Education
 
UX Design for Wrist-Worn Wearables – how contextual dynamics influence intera...
UX Design for Wrist-Worn Wearables – how contextual dynamics influence intera...UX Design for Wrist-Worn Wearables – how contextual dynamics influence intera...
UX Design for Wrist-Worn Wearables – how contextual dynamics influence intera...
 
Using Smartwatches to Assist Students with Intellectual and Developmental Dis...
Using Smartwatches to Assist Students with Intellectual and Developmental Dis...Using Smartwatches to Assist Students with Intellectual and Developmental Dis...
Using Smartwatches to Assist Students with Intellectual and Developmental Dis...
 
Smart Wearables or Dumb Wearables? Understanding how Context Impacts the UX i...
Smart Wearables or Dumb Wearables? Understanding how Context Impacts the UX i...Smart Wearables or Dumb Wearables? Understanding how Context Impacts the UX i...
Smart Wearables or Dumb Wearables? Understanding how Context Impacts the UX i...
 
Toward a Visual Vocabulary for Privacy Concepts
Toward a Visual Vocabulary for Privacy ConceptsToward a Visual Vocabulary for Privacy Concepts
Toward a Visual Vocabulary for Privacy Concepts
 
Wearable Health
Wearable HealthWearable Health
Wearable Health
 
Wearable Computing: Healthcare, Human Factors and Privacy
Wearable Computing: Healthcare, Human Factors and PrivacyWearable Computing: Healthcare, Human Factors and Privacy
Wearable Computing: Healthcare, Human Factors and Privacy
 
Micro interactions and multi dimensional graphical user interfaces in the des...
Micro interactions and multi dimensional graphical user interfaces in the des...Micro interactions and multi dimensional graphical user interfaces in the des...
Micro interactions and multi dimensional graphical user interfaces in the des...
 
An Overview of Wearable Applications for Health Care: Requirements and Challe...
An Overview of Wearable Applications for Health Care: Requirements and Challe...An Overview of Wearable Applications for Health Care: Requirements and Challe...
An Overview of Wearable Applications for Health Care: Requirements and Challe...
 

Aplicando Transformações XML

  • 1. Aplicando Transformações em XML usando XSLT e XSL-FO Ms Vivian Genaro Motti Profª Drª Maria da Graça Pimentel Prof Dr Rudinei Goularte Ilhéus, maio de 2009. ERBASE
  • 2.  Parte I: XML, conceitos e definições  Parte II: XSD, XSL, X-PATH  Parte III: CSS, XSL-T, XSL-FO  Parte IV: XSL-FO (Formatting Objects)
  • 3. Sumário  XSD  Schemas  XSL  Origem  Definição  Aplicação  XPATH
  • 4. Documento XML <?xml version="1.0" encoding="UTF-8"?> <recado>   <para>João</para>   <de>Maria</de>   <assunto>Aviso</assunto>   <mensagem>Sua mãe ligou.</mensagem> </recado>
  • 5. Schema <xs:element name="recado"> <xs:complexType> <xs:sequence> <xs:element name="para" type="xs:string"/>   <xs:element name="de" type="xs:string"/>   <xs:element name="assunto" type="xs:string"/>   <xs:element name="mensagem" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element>
  • 6. Associando Schema ao XML <?xml version="1.0"encoding="UTF-8"?> <recado xmlns="http://www.w3schools.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema- instance" xsi:schemaLocation="http://www.w3schools.com recado.xsd">   <para>João</para> ...   <mensagem>Sua mãe ligou.</mensagem> </recado>
  • 7. Associando Schema ao XML xmlns="http://www.w3schools.com"  Especifica a declaração do namespace padrão  Todos os elementos usados no XML original estão declarados no namespace da URL  Tendo o namespace disponível: xmlns:xsi="http://www.w3.org/2001/XMLSchema- instance"  Declara-se o namespace a ser usado  E o Schema xsi:schemaLocation="http://www.w3schools.com recado.xsd"
  • 8. Restrições  Elementos do Schema que restringem a definição de  simpleType  simpleContent  complexContent
  • 9. Elementos Simples  São elementos compostos apenas por texto  Não possuem atributos nem outros elementos  No entanto o texto pode ser de diferentes tipos  Boolean, string, date  É possível restringir seu conteúdo
  • 10. Elementos Simples  São definidos assim <xs:element name="x" type="y">  Tipos  xs:string  xs:decimal  xs:integer  xs:boolean  xs:date  xs:time
  • 12. Valores Padrão e Fixo  É possível especificar um valor fixo ou padrão para elementos simples <xs:element name="sexo" type="xs:string" default="M"/>  O valor padrão é usado caso nenhum outro seja definido  Já o valor fixo não pode ser alterado <xs:element name="cor" type="xs:string" fixed="azul"/>
  • 13. Exemplo de Atributo  Exemplo <nome prefixo="Sr">Smith</nome>  Declaração <xs:attribute name="prefixo" type="xs:string"/>  Opções  Valor padrão ou constante  Opcional ou Requerido  Conteúdos Restritos
  • 14. Atributos  São definidos assim <xs:attribute name="x" type="y">  Tipos  xs:string  xs:decimal  xs:integer  xs:boolean  xs:date  xs:time
  • 15. Atributo  Elemento Vazio <aluno id="01" />  Declaração <xs:element name="aluno" type="xs:string"> <xs:complexType name="aluno"> <xs:attribute name="id" type="xs:string"/> </xs:complexType>
  • 16. Ocorrências  Quantidade de elementos  DTD: *, ?, +  Schema: minOccurs, maxOccurs <xs:element name="cel" type="xs:string" minOccurs="1" maxOccurs="2"/>  Valor especial  maxOccurs="unbounded"  Sem limites
  • 17. Tipos de Dados  É possível criar tipos de dados próprios <xs:element name="nomecompleto"> <xs:complexType> <xs:sequence> <xs:element name="nome" type="xs:string"/> <xs:element name="sobrenome" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element>
  • 18. Ordem dos elementos  Há três opções  Sequence: atribui uma ordem fixa aos elementos  All: qualquer ordem é possível  Choice: um elemento da lista aparece
  • 19. Exemplo  Para escolha: choice <xs:element name="setor"> <xs:complexType> <xs:choice> <xs:element name="venda" type="xs:string"/> <xs:element name="caixa" type="xs:string"/> </xs:choice> </xs:complexType> </xs:element>
  • 20. Tipo Simples  Enumeration  Opções de conteúdo <xs:simpleType name="cor"> <xs:restriction base="xs:string"> <xs:enumeration value="branco"/> <xs:enumeration value="azul"/> <xs:enumeration value="verde"/> </xs:restriction> </xs:simpleType>
  • 21. Parsing  Análise  É feita uma leitura integral do documento  A informação é estrutura de acordo com a definição de seus elementos
  • 22. Parsers  Lêem o documento XML  Analisam a formatação e gramática  Convertem em um objeto DOM  Para ser acessado via JavaScript  Expat  Desenvolvido em C  XML4J  Suporta DOM e SAX
  • 23. SAX (Simple API for XML)  É um conjunto de interfaces Java  Permite criação de aplicativos para ler dados em um documento XML  Parsing
  • 24. DOM (Document Object Model)  Define um modo padrão para acessar e manipular documentos XML  Interpreta como estrutura em árvore  Permitindo acesso, alteração, criação e remoção de nós  Armazena o documento todo na memória  Não recomendado para arquivos grandes
  • 25. DOM  Para navegação e manipulação de conteúdo  Adição de modelos de folhas de estilo  Visualização da formatação dos documentos  Método para recuperar dados  getElementsByTagName()
  • 26. Linguagens Derivadas  XHTML última versão do HTML  SVG formato de imagens  SMIL para descrever multimídia na web  WSDL para descrever webservices  WAP linguagem de marcação para PDAs  RSS para feeds  RDF e OWL para descrever recursos e ontologias  MathML, CML
  • 27. SVG  Scalable Vector Graphics  Especificação para gráficos  Escaláveis  Interativos  Padrão W3C
  • 28. SMIL (smile)  Synchronized Multimedia Integration Language  Descreve o tempo em uma apresentação  Descreve o layout da apresentação na tela  Associa links aos objetos de mídia
  • 29. MathML  Mathematical Markup Language  Recomendação W3C  Linguagem para descrições matemáticas  Provê acessibilidade  E consultas mais precisas
  • 30. MathML  Usa a notação pré-fixa (6+2) <math> <apply> <plus/> --> Operador vem antes. <cn>6</cn> --> 1º operando <cn>2</cn> --> 2º operando </apply> </math>
  • 31. CML – H2O <?xml version="1.0"?> <cml xmlns="http://www.xml-cml.org/schema/cml2/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation= "http://www.xml- cml.org/schema/cml2/core cmlCore.xsd"> <molecule title="Water"> <atomArray> <atom id="a1" elementType="H" hydrogenCount="0"/> <atom id="a2" elementType="O" hydrogenCount="2"/> <atom id="a3" elementType="H" hydrogenCount="0"/> </atomArray> <bondArray> <bond atomRefs2="a1 a2" order="1"/> <bond atomRefs2="a2 a3" order="1"/> </bondArray> </molecule> </cml>
  • 32. Considerações Importantes  XML: Extensible Markup Language  Não substitui o HTML  DTD: Document Type Definition  XSL: Extensible Stylesheet Language  <?xml version="1.0"?>  Documentos válidos x bem-formados
  • 34. Definição de XSL  XSL: Extensible Stylesheet Language  Transforma o XML adicionando folhas de estilo a ele  Usa linguagem de transformação e de formatação  XSL  É um conjunto de recomendações para definir a transformação e a apresentação de um documento XML
  • 35. Transformação do XML  Reorganiza o conteúdo  Adicionando  Movendo ou  Excluindo elementos  XSL  Associa regras de formatação aos elementos
  • 36. Folhas de Estilo  Arquivos que descrevem a formatação de documentos XML  Consistem em:  XPATH  Transformações ou XSLT  XSL-FO
  • 37. Comparação  CSS  Folhas de estilo para apresentar conteúdo HML  XSL  Folhas de estilo para apresentar conteúdo XML
  • 39. XPATH  Sintaxe para navegar por conteúdo XML  Possui uma biblioteca de funções padrão  É o principal elemento de XSLT  É um recomendação da W3C
  • 40. XPATH  Linguagem para acesso ao conteúdo de um documento XML  Manipula strings, números, booleanos  Navega pela estrutura hierárquica de um documento XML  Classifica os nós em 5 tipos  Pai, filho, irmão, ancestral e descendente
  • 41. Nós em XPATH  São de 7 tipos diferentes  Elemento  Atributo  Texto  Namespaces  Instruções de processamento  Comentários  Raiz  Documentos XML são sempre tratados como árvores
  • 42. Nós em XPATH  Valores Atômicos  São nós sem filhos ou sem pais  Ex: <nome>Maria</nome>  Nós Pais  Todo elemento e atributo possui um pai  Filhos  Elementos podem ter zero, um ou mais filhos
  • 43. Nós em XPATH  Irmãos  Nós com o mesmo pai  Nó Ancestral  O pai, ou avó ... de um nó  Nós Descendentes  Os filhos, ou netos ... de um nó
  • 44. Expressões em XPATH  São utilizadas para  Selecionar nós e conjuntos de nós em um documento XML  Sua sintaxe é similar à de navegação por sistemas de arquivos
  • 45. Expressões em XPATH seleciona os atributos do nó@ seleciona o pai do nó atual.. seleciona o nó atual. seleciona nós do documento a partir do nó atual// seleciona do nó raiz/ seleciona todos os nós filhos do nó correspondentenome do nó DescriçãoExpressão
  • 46. Exemplos de expressões XPATH todos os elementos telefone que tenham um atributo tipo de valor celular //telefone[@tipo='celular'] o primeiro elemento nome que é filho de agenda /agenda/nome[1] todos os elementos telefone que tenham um atributo tipo //telefone[@tipo] os dois primeiros elemento nome que é filho de agenda /agenda/nome[position() < 3] o penúltimo elemento nome que é filho de agenda /agenda/nome[last() - 1] o último elemento nome que é filho de agenda /agenda/nome[last()] o primeiro elemento nome que é filho de agenda /agenda/nome[1] SeleçãoExpressão
  • 47. Expressões Genéricas  *  Seleciona qualquer elemento  @*  Seleciona qualquer atributo de qualquer elemento  node()  Seleciona qualquer nó de qualquer tipo  |  Seleciona mais de um caminho  Ex://agenda/nome | //agenda/telefone
  • 48. Eixos em XPATH  Definem um conjunto de nós relativos todos os atributos do nó atualattribute todos os filhos do nó atualchild e ele própriodescendant-or-self todos os descendentesdescendant e ele próprioancestor-or-self todos os ancestraisancestor
  • 49. Eixos em XPATH  Definem um conjunto de nós relativos todos os nós de namespaces do nó atualnamespace todos os filhos do nó atualchild tudo no documento que está antes do nó atual preceding o pai do nó atualparent todos os irmão após o nó atualfollowing-sibling tudo no documento que vier na sequência do nó atual following
  • 51. Operadores em XPATH maior que> menor ou igual a<= maior ou igual a>= menor que< diferente!=
  • 52. Operadores em XPATH módulo (resto da divisão)mod eand ouor
  • 53. Expressão de local  Um caminho de localização pode ser  Absoluto ou  Relativo  Caminhos absolutos são iniciados por um barra  /nome  Caminhos relativos não  nome
  • 54. Funções Padrão  XPATH possui uma biblioteca com mais de 100 funções padrão para  Comparação de strings, valores numéricos, booleanos, e tempo  Manipulação de nós e de sequências  XPATH é usada em XSLT
  • 55. Considerações Importantes  XSL  Transforma os elementos usando XSLT  Formata os elementos usando XSL-FO  XPATH  Linguagem para seleção e manipulação de nós XML
  • 56. Considerações Finais  XML é uma linguagem dependente, portanto é necessário  XSD para validar um documento (ou DTD)  XSL para transformar e formatar  XPATH para navegar pelo documento fonte
  • 57. Referências [XPath, 1999] Definição de XPath disponível em: http ://www.w3.org/TR/xpath [XPath, 2009] Tutorial sobre XPath disponível em: http ://www.w3schools.com/xpath/ [XSL, 2009] Tutorial sobre XSL da W3C. Disponível em: http://www.w3schools.com/Xsl/xsl_languages.asp