Upload
thalita-valente
View
215
Download
0
Embed Size (px)
Citation preview
Produção de SitesUnidade 9 – XMLProf.: Henrique Santos
XML
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.
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.
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>
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.
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.
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.
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.
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.
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>
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>
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.
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">
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">
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)>
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>
DTD
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)
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.
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
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) >
XML Schema
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
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
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.
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
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>
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.
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>
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.
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.
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)
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>
XSLT
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.
Composição do XSL XSLT: Transformar documentos XML XPath: Encontrar elementos XML XSL-FO: Formatar documentos XML
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.
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.
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>
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)
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)
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
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.
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/