Escolar Documentos
Profissional Documentos
Cultura Documentos
<tuplo-pruduto>
<produto id=”HP-G6-4000”>
<nome> Laptop HP Pavillion g6</nome>
<categoria> computador portatil</categoria>
marca> Hewlett-Packard
<preço> 538,50</preço>
<link> http://www.hewlett-packard.com</link>
</marca>
<caracteristicas>
– processador Intel core i5 dual, 2.6Ghz, 4 Gb RAM, placa gráfica
super boa, etc
– </caracteristicas>
</produto>
</tuplo-pruduto> 6
Documentos bem formados
Analizadas o no analizadas
> > Maior que
Generais ou parametrizadas
& & comercial
" “ aspas 12
Partes de um documento XML
Secção CDATA
Uma construção para especificar dados que não serão interpretados
Como alias são todos os dados no interior de marcas
Não confundir com (#PCDATA) que serve para os elementos.
Permite que caracteres especiais não rompam a estrutura.
CDATA (unparsed character data)
A secção CDATA começa com: "<![CDATA[" e termina com: "]]>":
<![CDATA[conteúdo especial: \n áéíóúñ&]]>
Comentários
Serão ignorados pelo processador.
<!--- Un comentario --->
<!-- Otro comentario -->
13
Partes de um documento XML
<comparação>
<![CDATA[
function compara(a,b,c)
{
if (a > b && b > c) then
{ return 1; }
else
{ return 0; }
}
]]>
</comparação>
14
Partes de um documento XML
Tipos de atributos
Atributos CDATA e NMTOKEN
Atributos enumerados y notações
Atributos ID e IDREF: para restrições referenciais
15
Partes de um documento XML
PCDATA (parsed character data)
Em geral XML faz a interpretação de todos os caracteres do texto
No "parser", o texto entre as marcas (tags) é também processado:
<mensagem>este texto será processado pelo parser</mensagem>
Isto é feito porque uns elementos podem conter outros elementos
Repare: elemento <pessoa> contem dois outros elementos
(nome e apelido):
<pessoa>
<nome>José</nome>
<apelido>Saramago</apelido>
</pessoa>
Outros exemplos em: http://www.w3schools.com/xml/xml_examples.asp 16
Exemplos XML
Em XML você define as marcas
<?xml version="1.0" encoding="ISO-8859-1"?>
<nota>
<para>Angelina Jolie</para>
<de>Patricio</de>
<cabecalho>Lamento imenso!</cabecalho>
<corpo>Não consigo estar contigo hoje</corpo>
</nota>
Tal como no caso das BD, um documento XML tem uma espécie de
descritor dos seus dados.
Isto pode ser feito com uma DTD ou com um XML schema
24
XML – transformação XSL
<!-- Utiliza o título do livro como título do documento XHTML -->
<xsl:template match="livro">
<html>
<head>
<title>
<xsl:value-of select="titulo"/>
</title>
</head>
<body>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
<xsl:template match="capitulo/titulo">
<h2>
<xsl:apply-templates/>
</h2>
</xsl:template>
/doc/capitulo/titulo | /doc/capitulo/autor
<my:crossReference
xlink:href="libro.xml"
xlink:role="http://www.example.com/linkprops/listalibros"
xlink:title="Lista de libros">
Lista actual de libros
</my:crossReference>
27
XML – Xpointer, Xquery
Exemplo de código Xpointer: (http://www.w3.org/TR/xptr/)
documento.xml#xpointer(
/libro/capitulo[@public])xpointer(/livro/capitulo[@num="1"])
Manual de referencia:
http://www.w3schools.com/schema/schema_elements_ref.asp
29
XML Schema: XSD
.<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="memorando">
<xs:complexType>
<xs:sequence>
<xs:element name="para" type="xs:string"/>
<xs:element name="de" type="xs:string"/>
<xs:element name="titulo" type="xs:string"/>
<xs: element name=”data” type=”xs:date/”>
<xs: element name=”numero” type=”int/>
<xs:element name="texto" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema> 30
XML e HTML: páginas
<html> <body> <script> Criarmos variavel para um objecto
if (window.XMLHttpRequest) XMLHttpRequest(), conforme browser.
Ler ficheiro “cd_catalog.xml” carregando
{// codigo para IE7+, Firefox, Chrome, Opera, Safari
na variável XMLHttpRequest
xmlhttp=new XMLHttpRequest(); }
utilizando o GET e carregamos num
else {// código para IE6, IE5 array “x” todo o ficheiro onde o tuplo é
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } a marca <CD>
xmlhttp.open("GET","cd_catalog.xml",false); xmlhttp.send(); Criamos uma tabela <table border..>
xmlDoc=xmlhttp.responseXML;
E fazemos um ciclo para mostrar
(“document.write”) um a um os “tuplos”
document.write("<table border='1'>");
utilizando as filas da
var x=xmlDoc.getElementsByTagName("CD"); tabela <tr> e células <td>
for (i=0;i<x.length;i++) { Estão no formato XML
document.write("<tr><td>");
document.write(x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue);
document.write("</td><td>");
document.write(x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue);
document.write("</td></tr>"); }
document.write("</table>");
31
</script> </body> </html>
XML e HTML: mostrar páginas
32
XML
– Fim do modulo
– Fim da cadeira
33