Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.

45
Produção de Sites Unidade 9 – XML Prof.: Henrique Santos

Transcript of Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.

Page 1: Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.

Produção de SitesUnidade 9 – XMLProf.: Henrique Santos

Page 2: Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.

XML

Page 3: Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.

O que é XML? XML significa EXtensible Markup

Language (Linguagem de Marcação Extensível)

XML é uma linguagem de tags bem como a HTML

XML foi projetado para conter dados, e não exibi-los

As tags XML não são pré-definidas. O usuário define suas próprias tags

XML foi projetado para ser auto-descritiva.

Page 4: Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.

Diferenças entre XML e HTML XML não é um substituto para HTML XML e HTML foram projetados com

objetivos diferentes:• XML foi projetado para conter e transportar

dados focando no que os dados são.• HTML foi projetado para exibir os dados

focando em como os dados aparecem. HTML está relacionado com a

exibição de informação, enquanto XML está relacionada com a descrição de informação.

Page 5: Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.

XML Não Faz Coisa Alguma Talvez seja um pouco difícil de entender,

mas XML faz nada. XML foi criado para estruturar, armazenar

e transportar informação. O seguinte exemplo é um bilhete para José

de Maria, armazenada como XML:• <bilhete> <para>José</para> <de>Maria</de> <título>Lembrete</título> <corpo>Não me esqueça neste fim-de-semana!</corpo> </bilhete>

Page 6: Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.

XML é Texto Simples Um arquivo XML não possui nada de

especial. É apenas um arquivo de texto simples.

Qualquer software que lida com texto simples pode lidar com XML.

Entretanto, aplicações podem tratar tags XML especificamente. As funcionalidades das tags no entanto dependem da interpretação da aplicação.

Page 7: Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.

XML Tags As tags XML não são definidas por um

padrão. As tags são inventadas pelos autores do documento.

Isto porque a linguagem XML não possui tags predefinidas.

As tags usadas em HTML são predefinidas. Documentos HTML só podem usar essas tags (como <body>,<p>,<h1>, etc).

XML permite que o autor defina suas próprias tags e estrutura do documento.

Page 8: Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.

XML não substitui HTML É importante entende que XML não é

um substituto para HTML. XML é complementar a HTML Na maioria das aplicações Web, XML

é utilizado para transportar dados, enquanto HTML é usado para exibir os dados.

Page 9: Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.

XML está em todos lugares XML hoje é tão importante para a

Web como HTML foi na criação da Web.

XML está em todos os lugares. É a linguagem mais utilizada para transmissão de dados entre todo tipo de aplicação.

XML tem se tornado cada vez mais popular na área de armazenamento da informação.

Page 10: Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.

XML simplifica a troca de Dados No mundo real, os sistemas e bancos

de dados contém dados em formatos incompatíveis.

Um dos desafios que mais consomem tempo para o desenvolvedores tem sido a troca de dados entre sistemas.

Converter os dados para a XML pode reduzir enormemente esta complexidade e criar dados que podem ser lidos por aplicações e plataformas diferentes.

Page 11: Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.

Formato de Documento XML Documentos XML formam uma estrutura

de árvore. Todo documento XML deve conter um

elemento Raiz. A Raiz deve ser pai de todos os outros elementos.

A exceção é a tag de descrição do XML.• <?xml version="1.0" encoding="ISO-8859-1" ?><raiz> <filho> <neto>.....</neto> </filho> ...</raiz>

Page 12: Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.

Exemplo de Livraria<?xml version="1.0" encoding="ISO-8859-1" ?><livraria> <livro categoria="Computação" idioma="pt"> <título>Redes de Computadores</título>

<autor>Andrew S. Tanenbaum</autor> <ano>2003</ano> <preço>60.00</preço>

</livro>

<livro categoria="Computação" idioma="en"> <título>Learning XML</título> <autor>Erik T. Ray</autor> <ano>2003</ano> <preço>39.90</preço>

</livro></livraria>

Page 13: Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.

Regras de Nomenclatura Os elementos XML devem seguir as

seguintes regras de nomenclatura:• Nomes devem começar com uma letra• Nomes podem conter letras, números e

outros caracteres• Nomes não podem começar com as letras

xml (ou XML, Xml, etc.)• Nomes não podem conter espaços• Qualquer nome pode ser usado, não existem

palavras reservadas.

Page 14: Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.

Atributos XML Lembrando HTML: <img src="ps.gif">. O atributo SRC provê informação adicional

sobre o elemento IMG. Em HTML (e XML) os atributos fornecem

informação adicional sobre os elementos Os valores de atributo devem sempre ser

colocados entre aspas, mas tanto aspas simples quanto duplas podem ser usadas.

•<livro idioma="pt">

Page 15: Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.

Validação de XML A validação do documento XML é

feita por tags ou atributos especiais O XML pode ser validado com um

DTD ou um Schema DTD

• <!DOCTYPE nome_raiz SYSTEM"arquivo.dtd">

Schema• <raiz_do_xml

xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:schemaLocation="url arquivo.xsd">

Page 16: Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.

Exemplo de DTD<?xml version="1.0" encoding="ISO-8859-1"?>

<!ELEMENT bilhete (de,para,título,corpo)>

<!ELEMENT para (#PCDATA)> <!ELEMENT de (#PCDATA)><!ELEMENT título (#PCDATA)><!ELEMENT corpo (#PCDATA)>

Page 17: Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.

Exemplo de Schema<xs:element name="bilhete"> <xs:complexType> <xs:sequence> <xs:element name="para" type="xs:string"/>

<xs:element name="de" type="xs:string"/>

<xs:element name="título" type="xs:string"/>

<xs:element name="corpo" type="xs:string"/>

</xs:sequence> </xs:complexType> </xs:element>

Page 18: Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.

DTD

Page 19: Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.

O que é um DTD? DTD significa Documento de

Definição de Tipo (Document Type Definition)

Este documento define como os elementos devem ser utilizados na construção de um XML.

• Contém basicamente a definição da estrutura permitida no documento

Definições baseadas em Teoria de Linguagens (Expressões Regulares)

Page 20: Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.

Definição de Elementos Use a tag <!ELEMENT nome (cont) >

Nome: É o nome do elemento a ser definido Cont: É o conteúdo deste elemento possíveis

valores são:• Nomes de outros elementos• #PCDATA que seria um texto livre• EMPTY para vazio

Pode-se usar caracteres especiais para definir a quantidade de elementos contidos como:

• * : 0 ou mais ocorrências• + : 1 ou mais ocorrências• ? : 0 ou 1 ocorrência• | : Ou lógico entre elementos.

Page 21: Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.

Definição de Atributos Use a tag <!ATTLIST elemento nome tipo

valor> Elemento: é o elemento que contém o atributo Nome: é o nome do atributo Tipo: tipo do atributo, normalmente CDATA Valor: valor padrão do atributo, possíveis

valores• #REQUIRED: Atributo obrigatório• #IMPLIED: Atributo opcional• Ou um valor qualquer entre aspas duplas

Page 22: Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.

Exemplo DTD Livraria (Resumido)

<!ELEMENT livraria (livro*) ><!ELEMENT livro (título,autor+,ano,preço) >

<!ATTLIST livro categoria CDATA #REQUIRED idioma CDATA "pt" ><!ELEMENT título (#PCDATA) ><!ELEMENT autor (#PCDATA) ><!ELEMENT ano (#PCDATA) ><!ELEMENT preço (#PCDATA) >

Page 23: Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.

XML Schema

Page 24: Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.

O que é XML Schema? O propósito de um XML Schema é definir a

legalidade dos elementos de um documento XML. Define elementos que podem aparecer no

documento Define os atributos que podem aparecer em cada

elemento Define quais elementos são filhos e sua ordem Define se um elemento é vazio ou pode conter

texto ou outros elementos Define tipos de dados para os elementos e

atributos Define valores padrões e fixos para elementos e

atributos

Page 25: Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.

XML Schema x DTD XML Schemas são extensíveis para

adições futuras XML Schemas é uma linguagem mais

rica e poderosa do que DTDs XML Schemas são escritos em XML

• Mas usa-se a extensão .xsd para diferenciar XML Schemas suportam tipos de

dados

Page 26: Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.

Suporte a tipos de Dados Uma das maiores vantagens do XML Schema é o

suporte a tipos de dados. Torna mais fácil a descrição de conteúdo

permitido no documento. Torna mais fácil validar se os dados estão corretos Torna mais fácil trabalhar com dados de um SGBD Torna mais fácil colocar restrições nos dados Torna mais fácil definir formatos e máscaras de

dados Torna mais fácil a conversão de dados entre tipos

diferentes.

Page 27: Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.

Schemas usam sintaxe XML Não é preciso aprender uma nova

linguagem (em parte) Pode-se usar o editor de XML para

editar os arquivos de Schema Pode-se utilizar um parser XML para

os arquivos de Schema Pode-se manipular o Schema com

XML DOM Pode-se transformar o Schema com

XSLT

Page 28: Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.

Elemento Raiz Todo schema deve estar contido

dentro de um elemento Raiz (assim como qualquer documento XML)

O elemento Raiz de Schema é:<xs:schema

xmlns:xs="http://www.w3.org/2001/XMLSchema">

</xs:schema>

Page 29: Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.

Elementos Simples Um Elemento Simples em Schema é

um elemento que não contém outros elementos.

<xs:element name="XXX" type="YYY"/>

• XXX: É o nome do elemento• YYY: É o tipo do elemento onde os possíveis

valores são: xs:string, xs:decimal, xs:integer, xs:boolean, xs:date, xs:time.

Page 30: Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.

Elementos Complexos Um elemento complexo contém

outros elementos ou atributos <xs:element name="XXX">  <xs:complexType>

<indicador> <tags de elementos/> </indicador>

<tags de atributos />   </xs:complexType></xs:element>

Page 31: Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.

Elementos Complexos Onde

XXX: É o nome do elemento <indicador>: indica como os elementos

contidos serão tratados. Possíveis valores podem ser:• <xs:sequence>: os elementos filhos devem

aparecer na ordem (em sequência) como foram declarados.

• <xs:all>: os elementos filhos podem aparecer em qualquer ordem.

• <xs:choice>: pode-se escolher entre um dos elementos filhos.

Page 32: Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.

Limitação de Ocorrências Pode-se limitar as ocorrências

mínimas e máximas de um elemento filho de um Elemento Complexo.

O atributo maxOccurs indica a quantidade máxima de elementos permitidos.

• Use o valor “unbounded” para ilimitado O atributo minOccurs indica a

quantidade mínima de elementos permitidos.

Page 33: Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.

Atributos Somente elementos complexos

podem conter atributos. A definição de atributos é bastante

similar a de um elemento simples <xs:attribute name="XXX"

type="YYY"/>• XXX: é o nome do atributo• YYY: é um tipo de dado schema (os mesmos

vistos anteriormente na definição de elementos simples)

Page 34: Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.

Exemplo Livraria (Resumido)Falta colocar a TAG Livraria neste exemplo<xs:schema> <xs:element name="livro"> <xs:complexType> <xs:sequence> <xs:element name="título" type="xs:string" /> <xs:element name="autor" type="xs:string"

maxOccurs="unbounded" /> <xs:element name="ano" type="xs:integer" /> <xs:element name="preço" type="xs:decimal" /> </xs:sequence> <xs:attribute name="categoria"

type="xs:string"/> <xs:attribute name="idioma" type="xs:string" /> </xs:complexType> </xs:element></xs:schema>

Page 35: Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.

XSLT

Page 36: Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.

Introdução Tudo começou com XSL

(EXtensible Stylesheet Language) Como XML não possui tags pre-

definidas, um navegador não sabe como exibir um documento XML.

XSL seria o estilo do XML, informando ao navegador como ele deve exibir os elementos XML.

Page 37: Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.

Composição do XSL XSLT: Transformar documentos XML XPath: Encontrar elementos XML XSL-FO: Formatar documentos XML

Page 38: Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.

XSLT É uma linguagem para tranformar

documentos XML em documentos HTML ou XHTML.

Usando XSLT pode-se:• Adicionar/remover elementos e atributos do

documento gerado• Reordenar elementos• Realizar testes e tomar decisões sobre quais

elementos esconder ou exibir.• E muitas outras funcionalidades.

Page 39: Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.

Adicionando XSLT no XML Para transformar um documento XML,

deve-se primeiro criar o arquivo XSLT com as transformações

• Extensão padrão .xsl Depois deve-se adicionar uma tag especial

no arquivo XML indicando qual XSLT deverá ser utilizado

• <?xml-stylesheet type="text/xsl" href="arquivo.xsl"?>

Deve-se abrir no navegador o arquivo XML• O Navagedor irá identificar o arquivo XSL

automaticamente pela tag acima e exibir de acordo.

Page 40: Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.

Exemplo Livraria.xsl<?xml version="1.0" encoding="ISO-8859-1"?><xsl:stylesheet version="1.0"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:template match="/"> <html> <body> <h2>Livraria ProdSites</h2> <table border="1"> <thead> <th>Título</th> <th>Autor</th> </thead> <xsl:for-each select="livraria/livro">

<tr> <td><xsl:value-of select="título"/></td> <td> <xsl:value-of select="autor"/></td></tr> </xsl:for-each> </table> </body> </html></xsl:template></xsl:stylesheet>

Page 41: Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.

Modelo do Documento O elemento <xsl:template> define o

modelo do documento. Esta tag marca o começo da saída

HTML do documento. O atributo match="/" associa o

modelo com o elemento raiz do XML utilizado

• Para usar outro elemento basta colocar o caminho do elemento XML (usando XPath)

Page 42: Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.

Recuperando Informação O elemento <xsl:value-of> pode ser

usado para extrair o valor de um componente XML e adicioná-la a saída

O atributo select informa o elemento, atributo ou informação que se deseja extrair.

• Deve-se usar o XPath equivalente do componente desejado (elemento, atributo)

Page 43: Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.

Múltiplos elementos O element <xsl:for-each> é usado

para selecionar todos elementos de um conjunto.

Basicamente, a mesma função de um for each na programação

Atributo select define o componente selecionado

Page 44: Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.

Ordenação Elemento para ordenação é o

<xsl:sort>• Este elemento deve ser o primeiro elemento

dentro de um <xsl:for-each> A ordenação é realizada pelo atributo

select onde se especifica o elemento.

Page 45: Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.

Fontes XML Tutorial

• http://www.w3schools.com/xml/ XML DTD Tutorial

• http://www.w3schools.com/dtd/ XML Schema Tutorial

• http://www.w3schools.com/schema/ XSLT Tutorial

• http://www.w3schools.com/xsl/ Outros Tutoriais

• http://www.w3schools.com/sitemap/