Tecnologia Web
Tecnologia Web
XML
XML
Anna Izabel João Tostes Ribeiro
Pontifícia Universidade Católica de Minas GeraisSumário
●
Introdução
●
Classificação de dados
Introdução
●
O que é o XML?
o eXtensible Markup Language: Linguagem de marcação utilizada
para representação e transferência de dados na Internet;
●
Idealizada por Jon Bonsak da Sun e teve a versão 1.0
apresentada pela W3C em 1998;
●
Não é uma linguagem com marcações pré-definidas;
o As tags são definidas pelo autor do documento;
o Não existe um limite para o número de tags criadas no XML.
●
XML não foi criada para executar nada. Seus objetivos:
o Estruturação de dados;
Introdução
●
Não foi criada para substituir o HTML e sim
complementá-la;
o Ambas têm origem na SGML (Standard Generalized Markup
Language)
●
Um arquivo XML é definido em um arquivo de texto puro;
o Fácil entendimento humano;
o Pode conter dados ou a especificação dos dados (DTD –
Document Type Definition);
Introdução
●
Benefícios do XML:
o Fácil manipulação em diversas plataformas de software e
hardware;
o Facilita a criação de protocolos para troca de informações entre empresas;
o Processamento de dados por meio de softwares de baixo custo;
o Não apresenta grandes desafios para migração de dados entre
sistemas novos e legados;
o Disponibilidade de informação para diversas aplicações
Introdução
●
Exemplos de aplicações:
o XHTML; o RSS; o WAP; o Etc.Classificação de Dados
●
Dados estruturados:
o Dados organizados seguindo regras rígidas;
o Facilita a consulta de informações relevantes;
o O maior exemplo são os banco de dados relacionais.
●
Ao contrário dos dados estruturados, os dados
semi-estruturados apresentam:
o Estrutura irregular e implícita;
o Heterogêneos;
Classificação de Dados
●
Dados semi-estruturados:
o As informações não seguem regras rígidas;
o Porém, existe uma estruturação variável;
o Os dados das páginas da Web podem ser considerados
semi-estruturados:
Uma página de consulta de CDs pode retornar diversas
informações sobre os CDs listados.
Algumas informações podem estar presentes em um
item, mas não em outro.
●
Texto puro:
o O processamento das informações torna-se extremamente
Dados Semi-estruturados
<DBPL> <CONFERENCIA> <RESPONSAVEL> Marcelo Arena </RESPONSAVEL> <RESPONSAVEL> Michael I. Schwartzbach </RESPONSAVEL> <AREA>Database Programming Language </AREA>
<ANO> 2007 </ANO> <LOCAL>
<PAIS> Áustria </PAIS>
<CIDADE> Vienna </CIDADE> ...
</CONFERENCIA> ...
Definição Conceitual do XML
●
Um documento XML é uma árvore rotulada, onde:
o É obrigatório a existência de um nodo raiz;o Os nodos folhas são dados textuais contendo valores dos
elementos;
o Os nodos internos são elementos do documento, representando
Definição Conceitual do XML
<?xml version="1.0" encoding="ISO-8859-1"?> <bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year>
<price>30.00</price> </book>
<book category="CHILDREN"> <title lang="en">Harry Potter</title> <author>J K. Rowling</author> <year>2005</year>
<price>29.99</price> </book>
<book category="WEB">
<title lang="en">Learning XML</title> <author>Erik T. Ray</author>
<year>2003</year> <price>39.95</price> </book>
Definição Conceitual do XML
● Existem dois níveis de correção de XML:
o XML bem formatada: documentos que possuem tags fechadas
incorretamente, ou com aninhamento inadequado são exemplos de documentos mal formatados;
o XML válido: documentos bem formatados que seguem definições
específicas. Essas definições são descritas em XML esquemas ou DTDs.
● Uma DTD pode ser definida externamente ou no próprio documento
XML
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE note SYSTEM "Note.dtd">
<note>
<to>Tove</to>
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE note SYSTEM "Note.dtd">
<note>
<to>Tove</to>
Definição Conceitual do XML
●
DTD – Document Type Definition
●
XML Esquema: Alternativa ao DTD
<!DOCTYPE note [ <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> ]>
<!DOCTYPE note [ <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> ]>
<xs:element name="note"> <xs:complexType>
<xs:sequence>
<xs:element name="to" type="xs:string"/> <xs:element name="from" type="xs:string"/> <xs:element name="heading" type="xs:string"/> <xs:element name="body" type="xs:string"/> <xs:element name="note">
<xs:complexType> <xs:sequence>
<xs:element name="to" type="xs:string"/> <xs:element name="from" type="xs:string"/> <xs:element name="heading" type="xs:string"/> <xs:element name="body" type="xs:string"/> </xs:sequence>
Regras do XML
● Todas as tags devem ser fechadas;
● As tags são sensíveis a caixa:
o <Pessoa> é diferente de <pessoa>;
● Os elementos devem estar aninhados corretamente:
o <paragrafo><texto>Isto é incorreto</paragrafo></texto>
● Deve existir um elemento raiz;
● Os valores dos atributos devem ser estar entre “aspas”;
● Determinados caracteres devem ser substituídos no texto para não
causar confusão no parser:
< <
XML – Elementos e Atributos
●
Elementos:
o No documento XML é qualquer coisa que esteja especificado
como uma <tag>
●
Atributos:
o Fornece maiores informações sobre o elemento:
<img src=“foto.gif”>
●
Regras de nomenclatura:
o Nomes podem conter letras, números e outros caracteres;
o Não podem começar com números ou caracteres de pontuação;
o Não podem começar com a palavra xml (Xml, XMl, etc.);
XML – Elementos e Atributos
●
Elementos podem ser estendidos:
<receita> <ingredientes> <produto> <nome>Sal</nome> </produto> </ingredientes> </receita> <receita> <ingredientes> <produto> <nome>Sal</nome> <quantidade>50</quantidade> <unidade>gramas</unidade> </produto> </ingredientes> </receita>
XML – Elementos e Atributos
●
Elementos vs Atributos:
●
Não existe regra pré-definida. Porém, existem algumas
limitações com os atributos:
o Atributos não podem conter múltiplos valores;
o Atributos não podem ser especificados em árvore;
o Atributos não são tão estendíveis quanto os elementos.
<pessoa sexo="feminino"> <primeiro_nome>Ana</primeiro_nome> <ultimo_nome>Smith</ultimo_nome> </ pessoa> < pessoa > <sexo>feminino</sexo> <primeiro_nome>Anna</primeiro_nome> <ultimo_nome>Smith</ultimo_nome> </pessoa>
Formatação do XML
●
XML não define forma de apresentação
●
É possível definir a forma de apresentação do documento
o CSS o XSLT <?xml version="1.0" encoding="ISO-8859-1"?> <?xml-stylesheet type="text/css" href="cd_catalog.css"?> <CATALOG> <CD> <TITLE>Empire Burlesque</TITLE> <ARTIST>Bob Dylan</ARTIST> <COUNTRY>USA</COUNTRY> <COMPANY>Columbia</COMPANY> <PRICE>10.90</PRICE>
Formatação do XML
CSS: CATALOG { background-color: #ffffff; width: 100%; } CD {display: block; margin-bottom: 30pt; margin-left: 0; } TITLE { color: #FF0000; font-size: 20pt; } ARTIST { color: #0000FF; font-size: 20pt; } COUNTRY,PRICE,YEAR,COMPANY {
Formatação do XML
●
XSLT (eXtensible Stylesheet Language Transformation):
o É uma linguagem para geração de uma apresentação do XML em
um formato específico. Um exemplo muito comum é transformar em HTML. <?xml version="1.0" encoding="ISO-8859-1"?> <html xsl:version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml"> <body style="font-family:Arial;font-size:12pt;background-color:#EEEEEE"> <xsl:for-each select="CATALOG/CD"> <div style="background-color:teal;color:white;padding:4px"> <span style="font-weight:bold"><xsl:value-of select="TITLE"/></span>
Formatação do XML
...
<table> <tr>
<td>País: </td><td><xsl:value-of select="COUNTRY"/></td>
<td>Produtora: </td><td><xsl:value-of select="COMPANY"/></td> <td>Ano: </td><td><xsl:value-of select="YEAR"/></td>
<td>Preço: </td><td><xsl:value-of select="PRICE"/></td> </tr> </table> </div> </xsl:for-each> </body> </html>
Exercício
●
Crie um arquivo XML que contenha os dados, descritos
abaixo, de 5 colegas da classe
o Nome
o Sobrenome
o Data de Nascimento
o Sexo