Escolar Documentos
Profissional Documentos
Cultura Documentos
W3C
HTML
SAX
DO M
JDOM
Troca de dados
Um modo alternativo aos formatos proprietrios de troca de informao
Anotar um documento
A tarefa de anotar um documento num sistema de processamento compreende as seguintes fases:
1. Analisar a estrutura da informao e os atributos que a caracterizam 2. Determinar quais as funes de processamento que produziro o formato desejado para cada elemento 3. Inserir as marcas/anotaes no texto (pode ser uma aplicao a faz-lo)
5
XML
<MUSICA> Semntica <TITULO>Grndola</TITULO> <OBS>msica usada como sinal de aco militar</OBS> <AUTOR>Jos Afonso</AUTOR> <DATA>1972</DATA> <EDITORA>Valentim de Carvalho</EDITORA> </MUSICA> Estrutura
Comparao
HTML:
Estrutura Semntica Formato
XML:
mais semntica, tambm estrutura, sem formato Facilita a leitura e a interpretao relativamente realidade Suporta a pesquisa Flexvel Necessita indicaes de apresentao
7
Metalinguagem
SGML Standard Generalized Markup Language (1986, ISO 8879) Charles Goldfarb, Ed Mosher, Ray Lorie (1969, IBM) Anotao de documentos para facilitar o seu processamento Define os mecanismos bsicos para as linguagens concretas HTML Hypertext Markup Language (1993) Tim Berners-Lee (criou a Web) Linguagem SGML concreta para facilitar a apresentao de documentos na Internet
XML eXtensible Markup Language (1996) Jon Bosak para W3C (WWW Consortium) conjunto de regras que os documentos devem seguir (simplificao do SGML, de processamento pesado, pelas excepes que admite)
XML Prolog Elementos Atributos Character Data (CDATA) Processing Instructions Comments Entity References
10
Documento
<?xml version=1.0?>
Opcional
11
Prlogo
standalone - indica se a informao que resulta do processamento do documento depende ou no de declaraes externas ao mesmo (opcional).
Declarao do DTD
Indica quais as restries a aplicar ao documento atravs de DTD (Document Type Definition) interna e/ou externa ao documento.
12
Exemplo Prolog
<?xml version="1.0" standalone="yes"?> <DOCTYPE authors [ <!ELEMENT authors (name)*> <!ELEMENT name (firstname, lastname)> <!ELEMENT firstname (#PCDATA)> <!ELEMENT lastname (#PCDATA)> ]> <authors> <name> <firstname>James</firstname> <lastname>Gosling</lastname> </name> ... </authors>
13
Exs:
<nome> Ana Santos </nome>
<idade/>
O contedo (content) de um elemento pode ser qualquer combinao de texto e outros elementos
Elementos
Componentes bsicos de um doc. XML. So identificados por tags Exemplos:
<titulo>O Rei vai nu</titulo> <autor>Eu</autor>
O nome dos elementos devem comear por uma letra case-sensitive: <p> diferente de <P> Pode conter texto ou outros elementos
<titulo>O Rei vai nu <autor>Eu</autor></titulo>
15
Atributos num elemento: com contedo STag ::= < elementName (S Attribute)* S? > sem contedo EmptyElementTag ::= < elementName (S Attribute)* S? /> Separadores: S ::= {#x20 | #x9 | #xD | #xA}+
16
Atributos
Pares de nome-valor includos dentro dos elementos O valor deve estar sempre entre aspas <titulo nome=O Rei vai nu/> <frase autor=Eu>O Benfica o maior</frase> No se pode repetir o mesmo atributo num mesmo elemento
17
Entity References:
Mecanismo semelhante s macros da linguagem C. Permitem inserir no documento o contedo de entidades prdefinidas ou definidas atravs de DTD. EntityRef ::= (& entityName ;). Nomes das 5 entidades pr-definidas: apos - amp - & quot - lt - <
18
19
CDATA
Quando um elemento XML processado, o texto entre as marcas tambm processado. A existncia de certos caracteres especiais no texto (<,>, etc..) pode provocar a ocorrncia de erros de processamento. A soluo usar referencia a entidades ou usar um seco CDATA
<?xml version="1.0" encoding="ISO-8859-1"?> <server> <port status="accept"> <![CDATA[8001 <= port < 9000]]> </port> </server>
20
CDATA
Character Data (CDATA)
Permite inserir caracteres no tratados pelo parser Caracteres do tipo: >, >, &, tags, etc.. Syntax: <![CDATA[]>
<MarkupSample> Isto um exemplo errado de uso XMl com <tags> </MarkupSample>
<MarkupSample> Isto um exemplo correcto de uso XMl com <![CDATA[<tags>]] </MarkupSample>
21
Primeiro documento
Um documento XML
<?xml version="1.0" standalone="yes" ?> <foo> Bom dia a quem chegou a horas! </foo>
Outra
As trs formas do documento so equivalentes pois tm a mesma estrutura e contedo O significado est na cabea do leitor (terceira forma a melhor)
23
Apresentao
Ensinando o navegador a apresentar os elementos
Definir folha de estilo (CSS) Partilhvel por vrios documentos, tal como um conjunto de marcas partilhado Diferentes estilos permitem adequar a diferentes meios
Ficheiro saudacao.css
saudacao {display : block; font-size : 24pt; font-weight : bold; }
24
<?xml version="1.0" standalone="...?> valores de atributos entre aspas a marcas de abertura correspondem marcas de fecho marcas so encaixadas correctamente
Resultado no IE6
26
27
28
Resumindo regras
29
Resumindo regras
Caso no contenham texto, o fim da marcapode ser representada com / na marca de incio
<br></br> equivalente a <br />
30
<p>
Combine all and use as cobbler, pie, or crisp.<br> Related recipes: <a href="#GardenQuiche">Garden Quiche</a> </font> </body>
</html>
31
32
<item><amount>1/4 teaspoon</amount><type>cinnamon</type></item>
<item><amount>dash of</amount><type>nutmeg</type></item> </ingredients> <preparation> Combine all and use as cobbler, pie, or crisp.
</preparation>
<related url="#GardenQuiche">Garden Quiche</related> </recipe>
33
34
Namespaces
35
Problema
<table> <tr> <td>Apples</td> <td>Bananas</td> </tr> </table>
informao sobre uma tabela
Se estes dois XML forem colocados juntos num mesmo documento, existir um conflito de nomes porque em ambos os documentos existe o elemento <table> com definio e contedo diferente
36
Problema (2)
<table> <name>African Coffee Table</name> <width>80</width> <length>120</length> </table> <table> <tr> <td>Apples</td> <td>Bananas</td> </tr> </table>
37
Agora no haver conflito de nomes porque os dois elementos usam diferentes nomes para as tabelas<table> (<h:table> e <f:table>).
38
Resoluo
NameSpaces
Os URLs so usados no por apontarem para uma dada localizao mas por serem exclusivos Problema: quando se juntam dois documentos que usam a mesma etiqueta com significados diferentes Soluo: NameSpace - uma super-etiqueta com a forma dum URL
39
40
41
Evento
<?xml version="1.0" ?> <trip> </trip>
Evento
SAX Evento
42
DOM
43
Concluso da introduo
XML pode codificar uma representao para
um documento ordinrio um registo estruturado (e.g. ordem de compra) um registo de dados (e.g. o resultado de uma interrogao) um objecto com dados e mtodos meta-dados, entidades e tipos (XMI) meta-contedos acerca de um site Web (CDF)
XML auto-contido e pode ser validado, interpretado e processado sem interveno humana Pode ser usado para:
formato de ligao (para transferncia de dados entre cliente e servidor) formato de troca de informao (e.g. entre a aplicao e a base de dados) formato persistente (para guardar dados)
Alguns DTD existentes: CDF (contedo Web), OFX (Financial), OSD (Open Software Distribution), CML (Chemical), MML (Mathematical)
44