Introduction to XML and Relational Databases Introduction to Databases
Introdução ao XML - w3.ualg.ptw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/10... ·...
Transcript of Introdução ao XML - w3.ualg.ptw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/10... ·...
![Page 1: Introdução ao XML - w3.ualg.ptw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/10... · Tutorial - XML XML: Extensible Markup ... Selecção XPath Linguagem para indicar caminho](https://reader030.fdocuments.net/reader030/viewer/2022021507/5b05ac867f8b9ac33f8ba657/html5/thumbnails/1.jpg)
Introdução ao XML
Extensible Markup Language
![Page 2: Introdução ao XML - w3.ualg.ptw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/10... · Tutorial - XML XML: Extensible Markup ... Selecção XPath Linguagem para indicar caminho](https://reader030.fdocuments.net/reader030/viewer/2022021507/5b05ac867f8b9ac33f8ba657/html5/thumbnails/2.jpg)
2
Tutorial - XMLXML: Extensible Markup Language
Uma linguagem de marcas na estruturação, no armazenamento e no transporte de dados na Web
Gere os dados numa estrutura tipo árvore . Só uma raiz
Descrição dos dados em formato texto. Simples, permite que seja utilizado a través de diferentes plataformas de software e hardware
Simples de perceber e de ler. Para o computador e as pessoas
Excelente para armazenamento de dados no longo prazo
Utiliza um conjunto de módulos capazes de responder as diferentes tipos de demandas dos utilizadores
Um simples exemplo: catalogo de plantas (Não há display!)
![Page 3: Introdução ao XML - w3.ualg.ptw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/10... · Tutorial - XML XML: Extensible Markup ... Selecção XPath Linguagem para indicar caminho](https://reader030.fdocuments.net/reader030/viewer/2022021507/5b05ac867f8b9ac33f8ba657/html5/thumbnails/3.jpg)
3
Tutorial - XML
Apoiado em diferentes módulos:
XSLT: Linguagem extensível de Folhas de Estilo. Mostra como deve ser estruturado o conteúdo, como desenhar o conteúdo de origem, como deveria ser paginado para apresentações(Extensible Stylesheet Language Transformation). exemplo
Xlink: Linguagem de ligação XML. Permite inserir elementos em documentos XML para criar ligações entre recursos XML
Xpath: Linguagem de rotas XML. Permite o acesso a partes dum documento XML.
Xpointer: Linguagem de redireccionamento Permite o acesso a estrutura interna dum documento XML: elementos, atributos, conteúdos
XQL: Linguagem de pesquisa XML. Facilita a extracção de dados desde documentos XML.
![Page 4: Introdução ao XML - w3.ualg.ptw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/10... · Tutorial - XML XML: Extensible Markup ... Selecção XPath Linguagem para indicar caminho](https://reader030.fdocuments.net/reader030/viewer/2022021507/5b05ac867f8b9ac33f8ba657/html5/thumbnails/4.jpg)
4
Tutorial XML
Estrutura
DTD Linguagem para definição do esquema.Especificação do XML 1.0
EsquemaXML
Definição da linguagem do esquema do documento
Selecção XPathLinguagem para indicar caminho dum documento XML na sua estrutura de árvore para seleccionar elementos e atributos
Transformação XSLT Especifica o mecanismo para transformar um doc. XML num documento XML de estrutura diferente
Mostrar(display)
CSSUma especificação do formato do desenho de dados no XML e HTML
XSL-FO Linguagem para descrição do desenho dum doc XML
ProtocoloSOAP Protocolo de mensagem baseado no XML
![Page 5: Introdução ao XML - w3.ualg.ptw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/10... · Tutorial - XML XML: Extensible Markup ... Selecção XPath Linguagem para indicar caminho](https://reader030.fdocuments.net/reader030/viewer/2022021507/5b05ac867f8b9ac33f8ba657/html5/thumbnails/5.jpg)
5
Tutorial - XMLNão confundir XML com HTML = Hyper Text Markup Language
Ambas duas, XML e HTML utilizam tags, (marcas), mais tem diferenças:
HTML desenhada para mostrar dados.XML, desenhada para armazenar e transferir dados
As marcas do HTML são predefinidas (<p> <tr> <href >As marcas em XML as define você. A única restrição é respeitar o aninhamento das marcas<nome> <primeiro>Ana Sofia</primeiro> <apelido>Guimarães</apelido> </nome>
Cada peça individual de dados colocada entre as marcas
Antes de aprender XML era conveniente primeiro dar uma vista de olhos ao HTML e ao javascript
![Page 6: Introdução ao XML - w3.ualg.ptw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/10... · Tutorial - XML XML: Extensible Markup ... Selecção XPath Linguagem para indicar caminho](https://reader030.fdocuments.net/reader030/viewer/2022021507/5b05ac867f8b9ac33f8ba657/html5/thumbnails/6.jpg)
6
Tutorial - XML<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE tuplo-produto SYSTEM "file:///c:/xml/edit_produto.dtd">
<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>
![Page 7: Introdução ao XML - w3.ualg.ptw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/10... · Tutorial - XML XML: Extensible Markup ... Selecção XPath Linguagem para indicar caminho](https://reader030.fdocuments.net/reader030/viewer/2022021507/5b05ac867f8b9ac33f8ba657/html5/thumbnails/7.jpg)
7
Documentos bem formados
Bem formados (well formed): documentos que cumprem todas as
definições básicas de formato. Assim podem ser analisados por
qualquer analisado sintáctico (parser) que cumpra com a norma
Documentos devem seguir:
Estrutura estritamente hierárquica das etiquetas (tags)
delimitadoras.
Etiquetas devem estar correctamente aninhadas
Os elementos com conteúdos devem estar correctamente
fechados
Só um elemento raiz a partir do qual todos os outros são parte.
(“tuplo_produto” no exemplo)
![Page 8: Introdução ao XML - w3.ualg.ptw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/10... · Tutorial - XML XML: Extensible Markup ... Selecção XPath Linguagem para indicar caminho](https://reader030.fdocuments.net/reader030/viewer/2022021507/5b05ac867f8b9ac33f8ba657/html5/thumbnails/8.jpg)
8
Documentos bem formados
Os valores de atributos devem estar entre aspas simples o duplas.
<nome id=”207875342”>Maria José</nome>
XML é sensível a maiúsculas e minúsculas.
Existem caracteres "espaços em branco" (espaços, tabulações, saltos de linha, "returns") que os processadores XML tratam conforme o parser XML.
É preciso atribuir nomes as estruturas, tipos de elementos, entidades, elementos particulares, etc.
As construções etiquetas, referencias de entidade e declarações se chamam marcas; são parte do documento.
O resto do documento entre marcas corresponde aos dados
![Page 9: Introdução ao XML - w3.ualg.ptw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/10... · Tutorial - XML XML: Extensible Markup ... Selecção XPath Linguagem para indicar caminho](https://reader030.fdocuments.net/reader030/viewer/2022021507/5b05ac867f8b9ac33f8ba657/html5/thumbnails/9.jpg)
9
Partes dum documento XML
Duas partes: prólogo e corpo do documento
Prólogo: (opcional)
Uma declaração indicando que se trata de um docto. XML
A versão do XML
Uma declaração do tipo de documento.
Relaciona o documento com a sua DTD (document type definition)
Um ou mais comentários e Instruções de processamento
Ex.: <?xml version="1.0" encoding="ISO-8859-1"?>
A DTD especifica o tipo de documento, as restrições da estrutura
e a sintaxe do documento
![Page 10: Introdução ao XML - w3.ualg.ptw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/10... · Tutorial - XML XML: Extensible Markup ... Selecção XPath Linguagem para indicar caminho](https://reader030.fdocuments.net/reader030/viewer/2022021507/5b05ac867f8b9ac33f8ba657/html5/thumbnails/10.jpg)
10
Partes dum documento XMLCorpo: <obrigatótio. Não é opcional. Deve pelo menos conter um elemento raiz
<?xml version="1.0" encoding="ISO-8859-1"?>
<livro>
<titulo>O livro das Mentiras</titulo>
<capitulo>
<ctitulo>Capitulo III: a mentira sempre se descobre </ctitulo>
<seção>
<stitulo>Mentiras e boatos</stitulo>
</seção>
</capitulo>
</livro>
![Page 11: Introdução ao XML - w3.ualg.ptw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/10... · Tutorial - XML XML: Extensible Markup ... Selecção XPath Linguagem para indicar caminho](https://reader030.fdocuments.net/reader030/viewer/2022021507/5b05ac867f8b9ac33f8ba657/html5/thumbnails/11.jpg)
11
Partes dum documento XML
Marcas (tags) <produto> ...</produto>
Identificadas por qualquer nome que o programador quiser lhe dar
Elementos produto
Os elementos XML podm ter conteúdo (outros elementos, caracteres ou ambois dois).ou bem estar vazios
Atributos (um par nome/valor)
Os elementos podem ter atributos, ou seja, as características dos elementos dum documento. Devem ser inseridos entre aspas. Estaõ entre as tags do elemento
Ex.: o elemento «barco» tem um atributo «nome» e um atributo «matricula», con valores "furação" e «C-049»
<barco nome= "furação" matricula="C-049"> Que lindo barco de Faro </barco>
Ex.: O elemento imagem tem dois atributos, fonte e autor:
<imagem fonte="madonna.jpg" autor="Foligno Madonna, Rafael"</imagem>
![Page 12: Introdução ao XML - w3.ualg.ptw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/10... · Tutorial - XML XML: Extensible Markup ... Selecção XPath Linguagem para indicar caminho](https://reader030.fdocuments.net/reader030/viewer/2022021507/5b05ac867f8b9ac33f8ba657/html5/thumbnails/12.jpg)
12
Partes dum documento XML
Entidades predefinidas
Entidades para representar caracteres especiais, de maneira não serem interpretados sintacticamente pelo parser XML.
As entidades podem ser:
Internas o externas
Analizadas o no analizadas
Generais ou parametrizadas
< < Menor que
> > Maior que
& & comercial
&apos ' plica
" “ aspas
![Page 13: Introdução ao XML - w3.ualg.ptw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/10... · Tutorial - XML XML: Extensible Markup ... Selecção XPath Linguagem para indicar caminho](https://reader030.fdocuments.net/reader030/viewer/2022021507/5b05ac867f8b9ac33f8ba657/html5/thumbnails/13.jpg)
13
Partes de um documento XMLSecçã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 -->
![Page 14: Introdução ao XML - w3.ualg.ptw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/10... · Tutorial - XML XML: Extensible Markup ... Selecção XPath Linguagem para indicar caminho](https://reader030.fdocuments.net/reader030/viewer/2022021507/5b05ac867f8b9ac33f8ba657/html5/thumbnails/14.jpg)
14
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>
O parser do XML não vai interpretar o código em CDATA
![Page 15: Introdução ao XML - w3.ualg.ptw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/10... · Tutorial - XML XML: Extensible Markup ... Selecção XPath Linguagem para indicar caminho](https://reader030.fdocuments.net/reader030/viewer/2022021507/5b05ac867f8b9ac33f8ba657/html5/thumbnails/15.jpg)
15
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
![Page 16: Introdução ao XML - w3.ualg.ptw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/10... · Tutorial - XML XML: Extensible Markup ... Selecção XPath Linguagem para indicar caminho](https://reader030.fdocuments.net/reader030/viewer/2022021507/5b05ac867f8b9ac33f8ba657/html5/thumbnails/16.jpg)
16
Partes de um documento XMLPCDATA (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
![Page 17: Introdução ao XML - w3.ualg.ptw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/10... · Tutorial - XML XML: Extensible Markup ... Selecção XPath Linguagem para indicar caminho](https://reader030.fdocuments.net/reader030/viewer/2022021507/5b05ac867f8b9ac33f8ba657/html5/thumbnails/17.jpg)
17
Exemplos XMLEm 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>
Validade: acima se indica o standard seguido para ser considerado um documento bem formado. Só que isso não chega!!
![Page 18: Introdução ao XML - w3.ualg.ptw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/10... · Tutorial - XML XML: Extensible Markup ... Selecção XPath Linguagem para indicar caminho](https://reader030.fdocuments.net/reader030/viewer/2022021507/5b05ac867f8b9ac33f8ba657/html5/thumbnails/18.jpg)
18
Tutorial - XML
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
DTD: DATA TRANSFER DEFINITION
Uma estrutura que define os dados a serem manipulados. Uma metadata: Definição dos dados sobre os dados Na DTD se definem os tipos de elementos, atributos e entidades permitidas. Pode ser interna (no documento) ou externa (ficheiro)
Os documentos XML que se ajustam a sua DTD são denominados válidos
A DTD faz parte do standard do XML
![Page 19: Introdução ao XML - w3.ualg.ptw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/10... · Tutorial - XML XML: Extensible Markup ... Selecção XPath Linguagem para indicar caminho](https://reader030.fdocuments.net/reader030/viewer/2022021507/5b05ac867f8b9ac33f8ba657/html5/thumbnails/19.jpg)
19
Tutorial - XML
Eis a A DTD do documento tuplo-produto anterior:
<!ELEMENT tuplo-produto (produto, nome, categoria, marca, caracteristicas)* ><!ELEMENT produto(nome,categoria,marca,caracteristicas)<!ELEMENT nome (#PCDATA)><!ELEMENT categoria (#PCDATA)><!ELEMENT marca (preco, link)> <!--elemento complexo --><!ELEMENT preco (#PCDATA)><!ELEMENT link (#PCDATA)><!ELEMENT caracteristicas (#PCDATA)>
Na DTD se definem os tipos de elementos, atributos e entidades permitidas. Pode ser interna (no documento) ou externa (ficheiro)
Os documentos XML que se ajustam a sua DTD são denominados válidos
![Page 20: Introdução ao XML - w3.ualg.ptw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/10... · Tutorial - XML XML: Extensible Markup ... Selecção XPath Linguagem para indicar caminho](https://reader030.fdocuments.net/reader030/viewer/2022021507/5b05ac867f8b9ac33f8ba657/html5/thumbnails/20.jpg)
20
XML - DTDCada documento que esta conforme o seu DTD tem só 1
elemento raiz: tuplo-produto
A raiz contem zero ou mais elementos produto
DOCTYPE: indica uma DTD externa. Onde fica o ficheiro que contem as suas definições
Qualquer documento que pretenda lidar com tuplo-produto vai indicar isto no inicio do documento como vimos
No caso DTD interna, a DTD precede o elemento raiz
Cada elemento que contem #PCDATA vai conter texto
Cada tuplo-produto contem exactamente 1 atributo
produto, nome, categoria, marca e caracteristicas
Cada elemento marca tem 1 elemento preco e 1 elem. link
![Page 21: Introdução ao XML - w3.ualg.ptw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/10... · Tutorial - XML XML: Extensible Markup ... Selecção XPath Linguagem para indicar caminho](https://reader030.fdocuments.net/reader030/viewer/2022021507/5b05ac867f8b9ac33f8ba657/html5/thumbnails/21.jpg)
21
XMLO DTD tem limitações:
Todos os dados definidos são de tipo texto
As restrições existem ao nivel dos elementos, mais ao nivel dos atributos para os quais praticamente não se podem definir
Não existe maneira de definir algo semelhante a chaves primárias, assim como chaves compostas
Não utilizam sintaxe XML, (eles próprios não são documentos XML). Portanto não podem ser processados pelo parser do XML
Existe algum apoio a restrições de unicidade e referenciais
(ver mais enfrente tipos de atributos ID e IDREF
Os elementos devem aparecer numa dada sequência, mesmo que em termos relacionais isto não tenha significado especial
![Page 22: Introdução ao XML - w3.ualg.ptw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/10... · Tutorial - XML XML: Extensible Markup ... Selecção XPath Linguagem para indicar caminho](https://reader030.fdocuments.net/reader030/viewer/2022021507/5b05ac867f8b9ac33f8ba657/html5/thumbnails/22.jpg)
22
Transformação do XML em XSLExtensible Stylesheet Language (versão 1.1)
Uma linguagem avanzada para criar folhas de estilo
Recebe o input em XML e uma folha de estilo XSL e produz o output a apresentação do doc XML
Transforma, ordena e filtra dados XML, formatando baseado nos seus valores indicando de que modo o documento XML deveria ser apresentado
O processo tem duas fases:
Tree transformation:
Cria uma árvore e logo
Transformation
interpreta a árvore resultante para efeitos de sua apresentação.
![Page 23: Introdução ao XML - w3.ualg.ptw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/10... · Tutorial - XML XML: Extensible Markup ... Selecção XPath Linguagem para indicar caminho](https://reader030.fdocuments.net/reader030/viewer/2022021507/5b05ac867f8b9ac33f8ba657/html5/thumbnails/23.jpg)
23
Transformação do XML em XSLExtensible Stylesheet Language (versão 1.1)
Recebe o input em XML e uma folha de estilo XSL e produz o output a apresentação do doc XML.
Exemplo: Tínhamos o seguinte documento XML (http://www.w3.org/TR/xsl/)
<?xml version="1.0" encoding="ISO-8859-1"?>
<livro>
<titulo>O livro das Mentiras</titulo>
<capitulo>
<ctitulo>Capitulo III: a mentira sempre se descobre </ctitulo>
<seção> <stitulo>Mentiras e boatos</stitulo></seção>
</capitulo>
</livro>
![Page 24: Introdução ao XML - w3.ualg.ptw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/10... · Tutorial - XML XML: Extensible Markup ... Selecção XPath Linguagem para indicar caminho](https://reader030.fdocuments.net/reader030/viewer/2022021507/5b05ac867f8b9ac33f8ba657/html5/thumbnails/24.jpg)
24
XML – transformação XSLO cabeçalho do novo documento:
<!-- Transforma o documento XML anterior nun documento XHTML --><xsl:stylesheet version="1.0" xmlns="http://www.w3.org/1999/xhtml" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:strip-space elements="livro capitulo titulo"/><xsl:output method="xml" indent="yes" encoding="iso-8859-1" doctype-public="-//W3C//DTD XHTML 1.1//EN" doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"/>
![Page 25: Introdução ao XML - w3.ualg.ptw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/10... · Tutorial - XML XML: Extensible Markup ... Selecção XPath Linguagem para indicar caminho](https://reader030.fdocuments.net/reader030/viewer/2022021507/5b05ac867f8b9ac33f8ba657/html5/thumbnails/25.jpg)
25
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>
<!-- Utiliza o titulo do livro também com nível H1 --><xsl:template match="livro/titulo"> <h1> <xsl:apply-templates/> </h1></xsl:template>
![Page 26: Introdução ao XML - w3.ualg.ptw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/10... · Tutorial - XML XML: Extensible Markup ... Selecção XPath Linguagem para indicar caminho](https://reader030.fdocuments.net/reader030/viewer/2022021507/5b05ac867f8b9ac33f8ba657/html5/thumbnails/26.jpg)
26
XML – transformação XSL<!-- Os títulos dos capítulos aparecem como H2 – >
<xsl:template match="capitulo/titulo"> <h2> <xsl:apply-templates/> </h2></xsl:template>
<!-- Os títulos das secções aparecerão como H3 --><xsl:template match="seccion/titulo"> <h3> <xsl:apply-templates/> </h3></xsl:template></xsl:stylesheet>
Ver um excelente exemplo: http://www.w3schools.com/xml/tryxslt.asp?xmlfile=simple&xsltfile=simple
![Page 27: Introdução ao XML - w3.ualg.ptw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/10... · Tutorial - XML XML: Extensible Markup ... Selecção XPath Linguagem para indicar caminho](https://reader030.fdocuments.net/reader030/viewer/2022021507/5b05ac867f8b9ac33f8ba657/html5/thumbnails/27.jpg)
27
XML – Xpath, XLink Exemplo de código Xpath:
<!-- Toma todos os elementos titulo no interior do elemento capítulo e os elementos autor ao interior do elemento capitulo →
/doc/capitulo/titulo | /doc/capitulo/autor
Exemplo de código Xlink:
<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>
![Page 28: Introdução ao XML - w3.ualg.ptw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/10... · Tutorial - XML XML: Extensible Markup ... Selecção XPath Linguagem para indicar caminho](https://reader030.fdocuments.net/reader030/viewer/2022021507/5b05ac867f8b9ac33f8ba657/html5/thumbnails/28.jpg)
28
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"])
Exemplo de código de Xquery: (http://www.w3.org/XML/Query/)
<!-- Livros escritos por Mia Counto após ano 2000 --><biblioteca> { for $b in doc("http://livro.example.com/bib.xml")/bib/livro where $b/autor = "Mia Counto" and $b/@anio > 2000 return <livro ano="{ $b/@ano }"> { $b/titulo } </livro> }</biblioteca>
![Page 29: Introdução ao XML - w3.ualg.ptw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/10... · Tutorial - XML XML: Extensible Markup ... Selecção XPath Linguagem para indicar caminho](https://reader030.fdocuments.net/reader030/viewer/2022021507/5b05ac867f8b9ac33f8ba657/html5/thumbnails/29.jpg)
29
XML Schema: XSD Descreve a estrutura dum documento XML. Também conhecida como XML Schema Definition: XSDRecomendação w3C desde 2001
Define os elementos que podem aparecer num documentoDefine os atributos que podem aparecer no documentoDefine quais elementos são elementos filhos de outrosDefine a ordem dos elementos filhosDefine se um elemento está vazio ou pode incluir textoDefine tipos de dados para elementos e atributosDefine valores fixos ou por defeito para elementos e atributos
XSD é o sucessor do DTD
Manual de referencia: http://www.w3schools.com/schema/schema_elements_ref.asp
![Page 30: Introdução ao XML - w3.ualg.ptw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/10... · Tutorial - XML XML: Extensible Markup ... Selecção XPath Linguagem para indicar caminho](https://reader030.fdocuments.net/reader030/viewer/2022021507/5b05ac867f8b9ac33f8ba657/html5/thumbnails/30.jpg)
30
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>
![Page 31: Introdução ao XML - w3.ualg.ptw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/10... · Tutorial - XML XML: Extensible Markup ... Selecção XPath Linguagem para indicar caminho](https://reader030.fdocuments.net/reader030/viewer/2022021507/5b05ac867f8b9ac33f8ba657/html5/thumbnails/31.jpg)
31
XML e HTML: páginas<html> <body> <script>
if (window.XMLHttpRequest)
{// codigo para IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest(); }
else {// código para IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); }
xmlhttp.open("GET","cd_catalog.xml",false); xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
document.write("<table border='1'>");
var x=xmlDoc.getElementsByTagName("CD");
for (i=0;i<x.length;i++) {
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>");
</script> </body> </html>
Criarmos variavel para um objecto XMLHttpRequest(), conforme browser.Ler ficheiro “cd_catalog.xml” carregando na variável XMLHttpRequestutilizando o GET e carregamos numarray “x” todo o ficheiro onde o tuplo é a marca <CD>Criamos uma tabela <table border..>E fazemos um ciclo para mostrar (“document.write”) um a um os “tuplos” utilizando as filas da tabela <tr> e células <td>Estão no formato XML
![Page 32: Introdução ao XML - w3.ualg.ptw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/10... · Tutorial - XML XML: Extensible Markup ... Selecção XPath Linguagem para indicar caminho](https://reader030.fdocuments.net/reader030/viewer/2022021507/5b05ac867f8b9ac33f8ba657/html5/thumbnails/32.jpg)
32
XML e HTML: mostrar páginas
O resultado da leitura do ficheiro dos CD e a sua formatação numa tabela HTML, da o resultado que pode ser visto
aqui: http://www.w3schools.com/xml/tryit.asp?filename=tryxml_display_table
![Page 33: Introdução ao XML - w3.ualg.ptw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/10... · Tutorial - XML XML: Extensible Markup ... Selecção XPath Linguagem para indicar caminho](https://reader030.fdocuments.net/reader030/viewer/2022021507/5b05ac867f8b9ac33f8ba657/html5/thumbnails/33.jpg)
33
XML
– Fim do modulo– Fim da cadeira
– HASTA LA VISTA BABY!