SlideShare uma empresa Scribd logo
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

PDF
Aplicando Transformação em XML usando XSLT e XSL-FO - 4
PDF
Aplicando Transformação em XML usando XSLT e XSL-FO - 3
PDF
Aplicando Transformação em XML usando XSLT e XSL-FO - 1
PPT
Banco de Dados XML
PDF
XML e Banco de Dados XML Nativo
PPTX
eXtensible Markup Language (XML)
PDF
XML: Uma Introdução Prática (2001)
PPT
XML - eXtensible Markup Language
Aplicando Transformação em XML usando XSLT e XSL-FO - 4
Aplicando Transformação em XML usando XSLT e XSL-FO - 3
Aplicando Transformação em XML usando XSLT e XSL-FO - 1
Banco de Dados XML
XML e Banco de Dados XML Nativo
eXtensible Markup Language (XML)
XML: Uma Introdução Prática (2001)
XML - eXtensible Markup Language

Mais procurados (20)

PDF
Introdução à XML - Serviço de Biblioteca da EEFE-USP
PDF
XML & HTML
PPT
Conceitos de xml
PPSX
Linguagem SQL
PDF
Xml pucminas2013
PDF
01- Introdução ao XML
PDF
Aula Introdução a Linguagem XML
PPTX
XML - Introdução
PPTX
Aplicativo aula04
PPTX
Net Coders Ladies - Introdução a Banco de Dados
PPTX
ODP
Workshop - Desenvolvimento web com Drupal 7
PDF
CSS3 e Html5 - O que há de novo / parte 1
PPT
1ª aula php
ODP
Aula 05 - Programação Web - Trabalhando com arquivos em PHP
PDF
Aula de DTD Definição do Tipo de Documento
ODP
Oficina WEB Design Lecom - PHP e MySQL
PPTX
Parte5 xml
PPS
I Series 400 Query
Introdução à XML - Serviço de Biblioteca da EEFE-USP
XML & HTML
Conceitos de xml
Linguagem SQL
Xml pucminas2013
01- Introdução ao XML
Aula Introdução a Linguagem XML
XML - Introdução
Aplicativo aula04
Net Coders Ladies - Introdução a Banco de Dados
Workshop - Desenvolvimento web com Drupal 7
CSS3 e Html5 - O que há de novo / parte 1
1ª aula php
Aula 05 - Programação Web - Trabalhando com arquivos em PHP
Aula de DTD Definição do Tipo de Documento
Oficina WEB Design Lecom - PHP e MySQL
Parte5 xml
I Series 400 Query
Anúncio

Semelhante a Aplicando Transformação em XML usando XSLT e XSL-FO - 2 (20)

PDF
Aula Xml Schema - XSD
PDF
02 - Apresentação de dados em XML com XSL e HTML
PDF
Oracle XML DB - Conceitos iniciais
PDF
XML_WS.pdf
PDF
Tecnologias XML e XML no SQL Server 2016
PDF
12 sax
PPT
XML - Parte 3
PPT
Java Desktop
PPTX
XSLT: Conceitos iniciais
PDF
Oracle XML DB
PDF
Formularios
PDF
JustJava 2004: JAXB
PDF
Suporte XML nativo no SQL Server 2014/2016
PDF
PDF
mod5-estruturas-dadosdinamicas
PPT
ASP.Net Módulo 2
DOCX
A e xtensible markup language (xml)
PPTX
jQuery na Prática - Cauê Fajoli
PDF
Utilização do Software Maxima
PPTX
Doctrine for Dummies
Aula Xml Schema - XSD
02 - Apresentação de dados em XML com XSL e HTML
Oracle XML DB - Conceitos iniciais
XML_WS.pdf
Tecnologias XML e XML no SQL Server 2016
12 sax
XML - Parte 3
Java Desktop
XSLT: Conceitos iniciais
Oracle XML DB
Formularios
JustJava 2004: JAXB
Suporte XML nativo no SQL Server 2014/2016
mod5-estruturas-dadosdinamicas
ASP.Net Módulo 2
A e xtensible markup language (xml)
jQuery na Prática - Cauê Fajoli
Utilização do Software Maxima
Doctrine for Dummies
Anúncio

Mais de Vivian Motti (20)

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

Último (19)

PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PDF
Processos na gestão de transportes, TM100 Col18
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PDF
Apple Pippin Uma breve introdução. - David Glotz
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PPTX
Aula 18 - Manipulacao De Arquivos python
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Aula04-Academia Heri- Tecnologia Geral 2025
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Processos na gestão de transportes, TM100 Col18
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
COBITxITIL-Entenda as diferença em uso governança TI
Custos e liquidação no SAP Transportation Management, TM130 Col18
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Apple Pippin Uma breve introdução. - David Glotz
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Aula 18 - Manipulacao De Arquivos python
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Otimizador de planejamento e execução no SAP Transportation Management, TM120...

Aplicando Transformação em XML usando XSLT e XSL-FO - 2

  • 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