XML: Conceitos e Aplicações
Prof. Marcos Alexandruk
[email protected]
XML
z
z
z
z
XML (Extensible Markup Language)
Possibilita separar o conteúdo da apresentação
dos dados.
Por ser extensível, o XML possibilita a criação
de elementos, ou seja, você mesmo pode criar
as suas tags.
Um dos usos mais difundidos do XML é o
armazenamento e transação de dados entre
empresas.
Por que usar XML?
z
z
z
z
z
z
z
z
z
Padrão aberto
Facilidade para converter dados
Trabalha com formato texto
Fácil de ler e processar
Separa estrutura, conteúdo e apresentação
Facilita geração dinâmica de dados
Evita repetição de informação
Manutenção simples
Compatibilidade com mecanismos de busca
Diferenças entre HTML e XML
z
HTML
z
z
Formata e exibe as informações
Tags pré-definidas
<h1>Fulano de Tal</h1>
<h2>[email protected]</h2>
<p>5555-1234</p>
Diferenças entre HTML e XML
z
XML
z
z
Descreve e armazena as informações
Você pode criar suas próprias tags
<nome>Fulano de Tal</nome>
<email>[email protected]</email>
<fone>5555-1234</fone>
O que compõe um documento XML?
z
Um documento XML é composto basicamente
por três elementos:
z
z
z
CONTEÚDO: Informação a ser disponibilizada
ESTRUTURA: Definida por um DTD (Document
Type Definition) ou Schema que contém as regras
de formatação
APRESENTAÇÃO: A forma como os dados serão
exibidos. Para isso utiliza-se CSS (Cascading Style
Sheets) ou XSLT (Extensible Style Language
Transformation).
Como criar um documento XML?
z
Documentos XML podem ser criados da mesma forma que as
páginas HTML: utilizando um editor de textos ou softwares
especializados.
<?xml version "1.0"?>
<agenda>
<contato>
<nome>José da Silva</nome>
<email>[email protected]</email>
</contato>
<contato>
<nome>Maria dos Santos</nome>
<email>[email protected]</email>
</contato>
</agenda>
Algumas regras:
z
z
z
z
z
Nomes podem conter letras, números e "_"
(underscore)
Nomes não devem iniciar com números ou "_"
(underscore)
Nomes não devem conter a palavra xml ou XML
Nomes não devem conter espaços
O XML é case-sensitive (letras maiúsculas e
letras minúsculas são tratadas de maneiras
diferentes).
Formatação usando CSS
z
cds.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet type="text/css" href="cds.css"?>
<loja>
<cd>
<titulo>Blue Sky Mining</titulo>
<cantor>Midnight Oil</cantor>
</cd>
<cd>
<titulo>Testify</titulo>
<cantor>Phil Collins</cantor>
</cd>
</loja>
Formatação usando CSS
z cds.css
loja {font-family: Verdana; font-size: 12px }
titulo { color: red; font-weight: bold; display: block }
cantor { color: green; display: block; margin-bottom: 10px }
NOTA: display: block insere uma quebra de linha antes
do próximo elemento.
Formatação usando XSLT
z
XSLT (Extensible Stylesheet Language Transformation)
transforma e manipula os dados de um documento XML
para apresentá-los no browser.
z
VANTAGENS
z
É escrito em XML (não há necessidade de aprendizagem de uma
outra linguagem).
z
Permite ordenar, excluir e filtrar os dados de um documento XML
(o usuário pode controlar a maneira como os dados são
apresentados no browser).
z
Capacidade de inserir textos e gráficos no documento final.
Formatação usando XSLT
z
cds.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet type="text/xsl" href="cds.xsl"?>
<loja>
<cd>
<titulo>Blue Sky Mining</titulo>
<cantor>Midnight Oil</cantor>
</cd>
<cd>
<titulo>Testify</titulo>
<cantor>Phil Collins</cantor>
</cd>
</loja>
Formatação usando XSLT
z
cds.xsl
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<html>
<head><title>Music Hall</title></head>
<body>
<table border="1">
<tr><th>Título</th><th>Cantor</th></tr>
<xsl:for-each select="loja/cd">
<tr>
<td><xsl:value-of select="titulo" /></td>
<td><xsl:value-of select="cantor" /></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Formatação usando XSLT
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/TR/WD-xsl">
Abre o documento e faz referência ao namespace necessário para que o browser
reconheça as instruções de processamento e formate o documento.
O elemento xsl:stylesheet deve ser fechado no final do documento.
<xsl:template match="/">
O template é usado para definir como a apresentação dos documentos deve ser feita.
A propriedade match é usada para assciar o template com um determinado elemento
XML.
<xsl:for-each select="loja/cd">
O elemento xsl:for-each permite efetuar um loop dentro de um documento XSLT.
<xsl:value-of select="titulo" />
<xsl:value-of select="cantor" />
O elemento xsl:value-of é usado para extrair o valor de um node (no DOM da W3C cada
elemento na representação da árvore é chamado de node) e apresentá-lo no browser.
A propriedade select permite definir o elemento XML cujo valor será lido. O elemento é
acessado da mesma maneira que acessamos um arquivo, navegando por diretórios.
Formatação usando XSLT
Título
Cantor
Blue Sky Mining
Midnight Oil
Testify
Phil Collins
XML: Uso de atributos (ou propriedades)
z
Atributos apresentam informações adicionais sobre um
elemento.
Os nomes dos atributos devem estar em letras minúsculas.
z
cds.xml
z
<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet type="text/xsl" href="cds.xsl"?>
<loja>
<cd cod="1001">
<titulo>Blue Sky Mining</titulo>
<cantor>Midnight Oil</cantor>
</cd>
<cd cod="1002">
<titulo>Testify</titulo>
<cantor>Phil Collins</cantor>
</cd>
</loja>
XML: Uso de atributos (ou propriedades)
z
cds.xsl
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<html>
<head><title>Music Hall</title></head>
<body>
<table border="1">
<tr><th>Código</th><th>Título</th><th>Cantor</th></tr>
<xsl:for-each select="loja/cd">
<tr>
<td align="center"><xsl:value-of select="@cod" /></td>
<td><xsl:value-of select="titulo" /></td>
<td><xsl:value-of select="cantor" /></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
XML: Uso de atributos (ou propriedades)
Código
Título
1001
1002
Blue Sky Mining
Testify
Cantor
Midnight Oil
Phil Collins
Data Islands
z
Agregam informações dentro de um documento.
Utilizadas para inserir código XML em um documento HTML.
z
cds.xml
z
<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet type="text/xsl" href="cds.xsl"?>
<loja>
<cd>
<codigo>1001</codigo>
<titulo>Blue Sky Mining</titulo>
<cantor>Midnight Oil</cantor>
</cd>
<cd>
<codigo>1002</codigo>
<titulo>Blue Sky Mining</titulo>
<cantor>Phil Collins</cantor>
</cd>
</loja>
Data Islands
cds.htm
<html>
<head>
<title>Music Hall</title>
</head>
<style type="text/css">
body {font: 80% Verdana}
th {font-size: 90%}
td {font-size: 80%}
</style>
<body>
<xml id="dados" src="cds.xml"></xml>
<table datasrc="#dados" border="1">
<thead>
<tr><th>Título</th><th>Cantor</th></tr>
</thead>
<tbody>
<tr>
<td><span datafld="titulo"></span></td>
<td><span datafld="cantor"></span></td>
</tr>
</tbody>
</table>
</body>
</html>
Data Islands: propriedade datapagesize
cds.htm
<html>
<head>
<title>Music Hall</title>
</head>
<style type="text/css">
body {font: 80% Verdana}
th {font-size: 90%}
td {font-size: 80%}
</style>
<body>
<xml id="dados" src="cds.xml"></xml>
<table id="tabela" datasrc="#dados" datapagesize="2" border="1">
<thead>
<tr><th>Título</th><th>Cantor</th></tr>
</thead>
<tbody>
<tr>
<td><span datafld="titulo"></span></td>
<td><span datafld="cantor"></span></td>
</tr>
</tbody>
</table> <br />
<button onclick="tabela.firstPage()">Primeira</button>
<button onclick="tabela.previusPage()">Anterior</button>
<button onclick="tabela.nextPage()">Próxima</button>
<button onclick="tabela.lastPage()">Última</button>
</body>
</html>
Download

XML: Conceitos e Aplicações