• Nenhum resultado encontrado

extensible Markup Language <XML/> XML XML XML vs. HTML Evolução

N/A
N/A
Protected

Academic year: 2021

Share "extensible Markup Language <XML/> XML XML XML vs. HTML Evolução"

Copied!
23
0
0

Texto

(1)

eXtensible Markup Language

<

XML/

>

Lirisnei Gomes de Sousa Jair C Leite

[email protected] [email protected]

XML

• Evolução • O que é XML? • Aplicações • Sintaxe • Linguagens auxiliares • Conclusões • O Futuro (proposto)

Evolução

• SGML (Década de 80) • HTML (93-4) • XML (1998)

• Linguagens baseadas em XML para fins específicos (1998-...)

O que é

XML

?

• Uma linguagem de marcação para a descrição de dados, imagens e etc., onde o

usuário é quem define a sua sintaxe e

semântica

– As tags definem a função do conteúdo

XML

Definição do W3C

“The Extensible Markup Language (XML) is a subset of SGML. Its goal is to enable generic SGML to be served, received, and processed on the Web in the way that is now possible with HTML. XML has been designed for ease of implementation and for interoperability with both SGML and HTML”

XML vs. HTML

• HTML: conjunto e semântica de tags pré-definidos

– <H1>, <IMG>,...

• XML: meta-linguagem para descrever linguagens de marcação.

– XML provê recursos para para definir tags e as relações estruturais entre elas.

(2)

XML vs. SGML

• SGML é o padrão OSI para documentação estruturada

• XML é um “perfil de aplicação” de SGML • XML é muito mais restrito que SGML • SGML permite estruturas arbitrárias, mas a

dificuldade de implementação é muito grande para os navegadores interpretarem

Considerações em XML

• O número de recursos opcionais em XML deve ser mínimo, idealmente zero

– Ambigüidades prejudicam

• O projeto do padrão XML deve ser rápido • O projeto de XML deve ser formal e

conciso

• Documentos XML devem ser simples de criar

XML

• Evolução • O que é XML? • Aplicações • Sintaxe • Linguagens auxiliares • Conclusões • O Futuro (proposto)

Aplicações

• Descrição de interface

– Mais simples, flexível e portável que HTML

<menuBar>

<menu menuCaption="Arquivo">

<menuOption caption="Novo" onchose="newFile();"/> <menuOption caption="Abrir" onchose="openFile();" /> <menuOption caption="Salvar" onchose="ola.show();"/> <menuOption caption="Fechar" onchose="close();"/> </menu> ... </menuBar>

Aplicações

• Publicação de conteúdo XML HTML www.jornal.com.br (informações diversas) www.informática.com.br Informações específicas

Aplicações

• Descrição de imagens (SVG)

(3)

Código da figura SVG

<svg width="7.5cm" height="5cn" viewBox="0 0 200 120"> <title>Example filters01-0.svg - source graphic with no filters</title> <desc>Shows what filters01.svg looks like without any filters.</desc> <rect x="1" y="1" width="198" height="118" style="fill:#888888; stroke:blue"/> <g>

<g>

<path style="fill:none; stroke:#D90000; stroke-width:10" d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z"/>

<path style="fill:#D90000" d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z"/>

<g style="fill:#FFFFFF; stroke:black; font-size:45; font-family:Verdana"> <text x="52" y="76">SVG</text> </g> </g> </g> </svg>

APLICAÇÕES

• Prover interoperabilidade entre diferentes aplicações

XML

• Evolução • O que é XML? • Aplicações • Sintaxe • Linguagens auxiliares • Conclusões • O Futuro (proposto)

Exemplo

<?xml version="1.0"?> <pedido data="1999-10-20"> <enderecoDeEntrega country="BR"> <nome>Felipe Camarão</nome> ... </enderecoDeEntrega > <items> <item codigo="872-AA"> <nomeDoProducto>Monitor 15</nomeDoProducto> ... </item> </items> </pedido> INÍCIO DE UM DOCUMENTO XML ELEMENTO RAIZ (único)

Marcadores XML

• Elementos • Referências a entidades • Comentários • Instruções de Processamento • Seções Formatadas

• Declarações de Tipos de Documentos

Elementos

• Marcação mais comum

• Delimitados por <e >

• Exemplos:

– <element> bla bla bla </element> – <element/>

(4)

Atributos

• Pares nome-valor que caracterizam o elemento

• Em XML, todos os atributos devem vir entre aspas.

• Exemplo:

– <div class=“preface”>

Referências a Entidades

• Utilizadas para representar caracteres especiais:

– < = &ldquo; – > = &rdquo; – & = &amp;

– Caracteres Unicode: &#8478 ou &#x211E

Comentários

• Igual aos comentários em HTML • Não são processados pelo interpretador

XML • Início: <!--• Fim: -->

Documento XML

• Formado por um ou mais arquivos • Documento Bem-formado

– NAMESPACE • Documento Válido

– Linguagens para especificação

• DTD • XML SCHEMA

Documento bem-formado

• Uma linguagem estabelece regrasas quais

documentos devem respeitar

• Isto é, documentos XML devem ser bem

formados

Documento bem-formado

• Elementos de um documento podem incluir outros elementos formando uma hierarquia que não pode ser desrespeitada

<i> <b> OK </i> </b>

(5)

Documento bem-formado

• Todo documento XML deve iniciar com uma instrução de processamento indicando a versão e o conjunto de caracteres usados:

<?xml version="1.0" encoding="ISO-8859-1" ?> • conjuntos de caracteres – Unicode – ISO-8859-1 – UTF-8 – UTF-16

Documento válido

• Documento de acordo com as especificações:

– DTD ou – XML Schema

NAMESPACE

Conflito de Nomes

• Desde que nomes de elementos em XML não são fixados, freqüentemente, há um conflito de nomes quando dois diferentes documentos usam os mesmos nomes descrevendo dois diferentes tipos de elementos

EXEMPLO 1

• Este documento tem informações em uma tabela <table> <tr> <td>Morango</td> <td>Banana</td> </tr> </table>

EXEMPLO 2

• Este documento tem informações sobre uma mesa

<table>

<name>African Coffee Table</name> <width>80</width>

<length>120</length> </table>

(6)

Conflito

• Se estes dois documentos XML forem colocados juntos num mesmo documento, existirá um conflito de nomes porque em ambos os documentos existe o elemento <table> com definição e conteúdo diferente

Resolvendo com Prefixo

• Este documento tem informações em uma tabela <h:table> <h:tr> <h:td>Morango</td> <h:td>Banana</td> </h:tr> </h:table>

Resolvendo com Prefixo

• Este documento tem informações sobre uma mesa

<f:table xmlns:f="http://www.w3schools.com/furniture > <f:name>African Coffee Table</f:name>

<f:width>80</f:width> <f:length>120</f:length> </f:table>

Atributo Namespace

• Quando um namespace é definido no início da tag como um elemento, todos os elementos filhos com o mesmo prefixo são associados com o mesmo namespace.

• O endereço usado para identificar o namespace não é o usado pelo analisador sintático para obter informação. O único propósito é dar ao namespace um único nome. Contudo, freqüentemente usa-se o namespace como ponteiro para uma página Web contendo informação sobre o namespace.

Prática

• Desenvolver um arquivo (ex1.) XML com a seguinte estrutura sintática

universidade departamento turma professor aluno disciplina nome

nome, codigo, creditos Numero, horario

nome, fone nome, media, fone, cor

didático

XML

• Evolução • O que é XML? • Aplicações • Sintaxe • Linguagens auxiliares • Conclusões • O Futuro (proposto) definição sintática e aplicação de estilos

(7)

Como provê

interoperabilidade entre

diferentes aplicações, sendo

que a sintaxe é definida de

“qualquer forma”?

A especificação sintática

ajuda

a resolver este problema

DTD (Data Type Definition)

<?xml version="1.0" ?>

<!DOCTYPE pedido [

<!ELEMENT pedido (enderecoDeEntrega, Itens)> <!ELEMENT enderecoDeEntrega (nome, rua, cidade,

estado, cep)>

<!ELEMENT itens (item)+>

<!ELEMENT Item(nomeDoProduto, quantidade, preco)> <!ELEMENT nodeDoProduto (#PCDATA)>

<!ATTLIST cliente ID #REQUIRED > <!ATTLIST codigo IDREF #REQUIRED > ]>

Ordem de ocorrência de filhos

• Filhos com ordem pré-definida

– <!ELEMENT spec (front, body, back?)>

• Filhos com ordem aleatória

– <!ELEMENT p

(#PCDATA|a|ul|b|i|em)*>

Número da ocorrência dos filhos

• * - zero ou mais ocorrências • + - uma ou mais ocorrências • ? - zero ou uma ocorrência

Atributos

<!AT T LI S T termdef

id ID #REQUIRED name CDATA #IMPLIED>

nome tipo uso

Prática (ex1.dtd)

• Desenvolver um DTD para o arquivo XML gerado anteriormente

– Especificar todos os possíveis filhos de cada elemento e a ocorrência desses filhos – Especificar todos os atributos dos de cada

(8)

Prática (ex1.dtd)

<?xml version="1.0" ?> <!DOCTYPE universidade [

<!ELEMENT universidade (departamento)+> <!ELEMENT departamento (disciplina)+> <!ELEMENT disciplina (turma)+> <!ELEMENT turma (professor,aluno)+> <!ELEMENT professor (nome,fone)> ...

...

<!ELEMENT aluno (nome,fone,media,cor)> <!ELEMENT fone (#PCDATA)>

<!ATTLIST departamento nome CDATA #REQUIRED > <!ATTLIST disciplina nome CDATA #REQUIRED

creditos CDATA #REQUIRED codigo CDATA #REQUIRED >

<!ATTLIST turma numero CDATA #REQUIRED horario CDATA #REQUIRED > ]>

XML Schema

O que faz XML Schema?

• Substitui o DTD

• O propósito de um XML Schema é definir a construção de blocos válidos como um DTD. • define elementos que aparecerão no documento • define atributos que poderão aparecer em um

documento

• define quais elementos terão elementos filhos

O que faz XML Schema?

• define qual a ordem dos elementos filhos • define o número de elementos filhos • define se um elemento é vazio ou pode

incluir texto.

• define tipos de dados para elementos e atributos

• define padrões e fixa valores para elementos e atributos

+ benefícios

• XML Schemas são extensíveis para futuras adições

• XML Schemas são mais ricos e mais úteis que DTD

• XML Schemas são escritos em XML • XML Schemas suportam tipos de dados • XML Schemas suportam namespaces

(9)

<?xml version="1.0" encoding="UTF-8"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="poema">

<xs:complexType> <xs:sequence>

<xs:element name="titulo" type="xs:string"/> <xs:element name="autor" type="xs:string"/> <xs:element name="data" type="xs:string"/> <xs:element name="corpo" type="Tcorpo"/> </xs:sequence> <xs:attribute name="tipo" type="xs:string" use=“optional" default="soneto"/> </xs:complexType> </xs:element> ... </xs:schema>

Exemplo: O Poema

<xs:complexType name="Tquadra"> <xs:sequence>

<xs:element name="verso" type="Tverso"/> <xs:element name="verso" type="Tverso"/> <xs:element name="verso" type="Tverso"/> <xs:element name="verso" type="Tverso"/> </xs:sequence>

</xs:complexType>

<xs:complexType name="Tterno"> <xs:sequence>

<xs:element name="verso" type="Tverso"/> <xs:element name="verso" type="Tverso"/> <xs:element name="verso" type="Tverso"/> </xs:sequence>

</xs:complexType>

<xs:complexType name="Tcorpo"> <xs:sequence>

<xs:element name="quadra" type="Tquadra"/> <xs:element name="quadra" type="Tquadra"/> <xs:element name="terno" type="Tterno"/> <xs:element name="terno" type="Tterno"/> </xs:sequence>

</xs:complexType>

<xs:complexType name="Tverso" mixed="true">

<xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="nome" type="xs:string"/> <xs:element name="lugar" type="xs:string"/> </xs:choice> </xs:complexType>

Tipos Primitivos

• String • Float • Decimal • Date • ...

<xs:element name="nome" type="xs:string"/> <xs:element name="lugar" type="xs:string"/>

Tipos Derivados

• Derivam dos tipos primitivos • integer (decimal), long (integer), ... • Por restrição

• Por extensão

Tipos Simple e Complex

• Os tipos de dados em XML Schema ou são “simple” ou

“complex”.

• Um tipo “simple” é um dos tipos básicos: string, date, float, double, timeDuration, ...

• Um tipo “simple” restringe o texto que pode aparecer no valor de um atributo ou no conteúdo dum elemento textual. • Um elemento que tenha atributos ou elementos filho é do

tipo “complex”.

• Um tipo “complex” restringe o conteúdo de um elemento relativamente aos atributos e elementos filho que pode ter.

(10)

Exemplo: complexType

<xs:complexType name="Tquadra"> <xs:sequence>

<xs:element name="verso" type="Tverso"/> <xs:element name="verso" type="Tverso"/> <xs:element name="verso" type="Tverso"/> <xs:element name="verso" type="Tverso"/> </xs:sequence>

</xs:complexType>

Tverso é uma referência a um “complex type” definido

algures no schema

Tquadra é um complex type com nome (por oposição a

um anónimo)

Escopo dos elemento

• Um elemento pode ser declarado como

global ou como local.

• Um elemento global é declarado como sendo filho de <schema>.

• Um elemento local é declarado sendo filho do elemento que lhe faria referência. • Os elementos globais podem ser

reutilizados por referência.

Elementos globais

<xs:element name="poema"> <xs:complexType>

<xs:sequence>

<xs:element name="titulo" type="xs:string"/> <xs:element name="autor" type="xs:string"/> <xs:element name="data" type="xs:string"/> <xs:element name="corpo">

<xs:complexType> <xs:sequence>

<xs:element ref = "Quadra"/> <xs:element ref = "Quadra"/> <xs:element ref = "Terno"/> <xs:element ref = "Terno"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> <?xml version=“1.0” encoding=“iso-8859-1”?> <quadra>

<verso>Olha,<nome>Daisy</nome>: quando eu morrer tu hás-de</verso> <verso>dizer aos meus amigos aí de <nome>Londres</nome>,</verso> <verso>embora não o sintas, que tu escondes</verso>

<verso>a grande dor da minha morte. Irás de</verso>

</quadra> Instância Válida

<xs:element name=“quadra”> <xs:complexType> <xs:sequence> <xs:element ref="verso"/> <xs:element ref="verso"/> <xs:element ref="verso"/> <xs:element ref="verso"/> </xs:sequence> </xs:complexType> </xs:element>

Cardinalidade

<xs:complexType name="Tquadra"> <xs:sequence>

<xs:elementname="verso" type="Tverso“ minOccurs="4"maxOccurs="4"/> </xs:sequence>

</xs:complexType>

A cardinalidade pode ser restringida recorrendo aos atributos: minOccurse maxOccurs

Valores para elementos

<xs:element name=“email" type=“xs:string“

default=“[email protected]"/> Valor por omissão

<xs:elementname=“supervisor" type=“xs:string“ fixed=“José Carlos Ramalho"/> Valor fixo

(11)

Atributos

• Os atributos declaram-se recorrendo ao elemento “<attribute>”

• Um atributo é sempre do tipo “simple”

<xs:attribute name="tipo" type="xs:string" use=“optional" default="soneto"/> use: (optional | default | required | fixed )

Restrição de tipos primitivos

<xs:simpleType name=“dia“ base = “xs:integer”>

<xs:minInclusive value=“1”/> <xs:maxInclusive value=“31”/> </xs:simpleType>

<xs:simpleTypename=“telefone“ base = “xs:integer”> <xs:pattern value=“253-\d{6}”/> </xs:simpleType> Restrição de domínio Restrição de formato

Restrições ou facetas

• minInclusive • maxInclusive • maxExclusive • Length • minLength • maxLength • Pattern • Enumeration • minExclusive • Precision • Scale • Encoding • Period • Duration

Restrição por enumeração

<xs:simpleType name=“diaSemana“ base = “xs:string”> <xs:enumeration value=“Domingo”/> <xs:enumeration value=“Segunda”/> <xs:enumeration value=“Terça”/> <xs:enumeration value=“Quarta”/> <xs:enumeration value=“Quinta”/> <xs:enumeration value=“Sexta”/> <xs:enumeration value=“Sábado”/> </xs:simpleType>

Elementos vazios

<xs:element name="ref">

<xs:complexType>

<xs:attributename="destino" type="xs:string" use="required"/> </xs:complexType>

</xs:element>

<xs:elementname="imagem"> <xs:complexType>

<xs:attributename="path"type="xs:string" use="required"/>

<xs:attributename="formato"type="xs:string" use="optional"/>

</xs:complexType> </xs:element>

Formato de arquivo

• Os arquivos contendo descrições XML

(12)

Prática

• Desenvolver um XML Schema para o XML da universidade desenvolvido

anteriormente, este substituirá o DTD. – Descrever os elementos

– Descrever os atributos dos elementos

globais locais

aplicar restições e formatos

Iniciando o XML Schema

<?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2000/10/XMLSch ema" elementFormDefault="qualified"> <!– Corpo do documento--> </xsd:schema>

Elemento universidade

<xsd:element name="universidade"> <xsd:complexType> <xsd:sequence>

<xsd:element ref="departamento" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element>

Elemento departamento

<xsd:element name="departamento"> <xsd:complexType>

<xsd:attribute name="nome" type="xsd:string" use="required"/>

<xsd:all>

<xsd:element ref="disciplina" maxOccurs="unbounded"/> </xsd:all> </xsd:complexType> </xsd:element>

Elemento disciplina

<xsd:element name="disciplina"> <xsd:complexType>

<xsd:attribute name="nome" type="xsd:string" /> <xsd:attribute name="codigo" type="xsd:string" /> <xsd:attribute name="creditos" type="xsd:int" /> <xsd:all>

<xsd:element ref="turma" maxOccurs="unbounded"/> </xsd:all>

<xsd:attribute name="nome" type="xsd:string" /> </xsd:complexType>

</xsd:element>

Elemento turma

<xsd:element name="turma"> <xsd:complexType>

<xsd:attribute name="numero" type="xsd:int" use="required"/> <xsd:attribute name="horario" type="xsd:string"

use="required"/> <xsd:all>

<xsd:element ref="professor" maxOccurs="unbounded"/> <xsd:element ref="aluno" maxOccurs="unbounded"/>

</xsd:all> </xsd:complexType> </xsd:element>

(13)

Elemento professor

<xsd:element name="professor">

<xsd:complexType>

<xsd:attribute name="nome" type="xsd:string" /> <xsd:all>

<xsd:element ref="fone" maxOccurs="2"/> </xsd:all> </xsd:complexType> </xsd:element>

Elemento aluno

<xsd:element name="aluno"> <xsd:complexType>

<xsd:attribute name="nome" type="xsd:string" use="required"/>

<xsd:all>

<xsd:element ref="media" maxOccurs="1"/> <xsd:element ref="fone" maxOccurs="1"/> <xsd:element ref="cor" maxOccurs="1"/>

</xsd:all> </xsd:complexType> </xsd:element>

Elemento fone

<xsd:element name="fone"> <xsd:complexType>

<xsd:attribute name="tipo" type="xsd:string" use="required"/> <xsd:simpleType> <xsd:restriction base="xsd:NMTOKEN"> <xsd:enumeration value="casa"/> <xsd:enumeration value="celular"/> <xsd:enumeration value="trabalho"/> </xsd:restriction> ...

+ elementos

<xsd:element name="media"> </xsd:element> <xsd:element name="cor"> </xsd:element>

Fechando a fase de validação

• Salvar em um arquivo .xsd • Validar o documento .xml

XSL

(14)

<?xml version="1.0" encoding="ISO-8859-1"?> <?xml-stylesheet type="text/xsl" href="ex1.xsl" ?> <escola>

<turma nome="Estrutura de Dados "> <aluno> <nome>Rui Silva</nome> <media>13.6</media> </aluno> <aluno> <nome>João Sousa</nome> <media>11.0</media> </aluno> </turma> </escola> XML

Como enviar contéudo

para diferentes clientes,

extraído de um mesmo

documento XML?

A solução é “

traduzir

” o

conteúdo

para cada tipo

de cliente.

Como exibir o conteúdo XML

XSL

• Transforma XML to XML(HTML, …) • Linguagem de programação declarativa • Cria o formato de saída

• Filtra o dados

Alvos XSL

PDF HTML <XML-Document> Catalogue entry Catálogo XSLT-Stylesheet XSLT-Stylesheet XSLT-Stylesheet

Elementos que definem o alvo

• <xsl:output method="xml"> • <xsl:output method="html> • <xsl:output method="text">

– fazer mudanças no arquivo ex1.xsl

Exemplo XSL

<doc> <head>

<xsl:stylesheet id="style1" version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"> <xsl:import href="doc.xsl"/> <xsl:template match="id('foo')"> <fo:block font-weight="bold"> <xsl:apply-templates/> </fo:block> </xsl:template> <xsl:template match="xsl:stylesheet"> <!-- ignore --> </xsl:template> </xsl:stylesheet> </head> <body>

<para id="foo"> ... </para> </body> </doc>

Templates

• Transformação de elementos <xsl:template match="expression"> <p> <xsl:apply-templates/> </p> <xsl:template>

(15)

Exemplo value-of

<source> <title>XSL</title> <author>John Smith</author> </source> <xsl:stylesheet version = '1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'> <xsl:template match="/"> <h1> <xsl:value-of select="//title"/> </h1> <h2> <xsl:value-of select="//author"/> </h2> </xsl:template> </xsl:stylesheet> XML XSL

Exemplo value-of (continuação)

<h1>XSL</h1> <h2>John Smith</h2>

XSL

John Smith HTML saída no browser

Exemplo value-of (2)

<source> <bold>Hello, world.</bold> <red>I am </red> <italic>fine.</italic> </source> <xsl:stylesheet version = '1.0' xmlns:xsl='http:/...'> <xsl:template match="bold"> <p> <b> <xsl:value-of select="."/> </b> </p> </xsl:template> <xsl:template match="red"> <p style="color:red"><xsl:value-of select="." </p> </xsl:template> <xsl:template match="italic"> <p> <i><xsl:value-of select="."/> </i> </p>

Exemplo value-of (2)

<p> <b>Hello, world.</b> </p> <p style="color:red">I am </p> <p> <i>fine.</i> </p> Hello, world. I am fine.

Exemplo text

<source>

<AAA id="a1" pos="start"> <BBB id="b1"/> <BBB id="b2"/> </AAA> <AAA id="a2"> <BBB id="b3"/> <BBB id="b4"/> <CCC id="c1"> <CCC id="c2"/> </CCC> <BBB id="b5"> <CCC id="c3"/> </BBB> </AAA> </source> <xsl:stylesheet version = '1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'> <xsl:template match="/"> <xsl:apply-templates select="//CCC"/> </xsl:template>

<xsl:template match="CCC" priority="3"> <h3 style="color:blue"> <xsl:value-of select="name()"/> <xsl:text> (id=</xsl:text> <xsl:value-of select="@id"/> <xsl:text>) </xsl:text>

(16)

<xsl:template match="CCC/CCC" priority="4"> <h2 style="color:red"> <xsl:value-of select="name()"/> <xsl:text> (id=</xsl:text> <xsl:value-of select="@id"/> <xsl:text>) </xsl:text> </h2> </xsl:template> </xsl:stylesheet> <h3 style="color:blue">CCC (id=c1)</h3> <h2 style="color:red">CCC (id=c2)</h2> <h3 style="color:blue">CCC (id=c3)</h3> CCC (id=c1) CCC (id=c2) CCC (id=c3)

Exemplo com expressões

<source>

<car id="a234" checked="yes"/> <car id="a111" checked="yes"/> <car id="a005"/> </source> <xsl:stylesheet version = '1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'> <xsl:template match="car[not(@checked)]"> <p> <xsl:text>Car: </xsl:text> <xsl:value-of select="@id"/> </p> </xsl:template> <p>Car: a005</p> Car: a005

Exemplo for-each

<source> <name>John</name> <name>Josua</name> <name>Charles</name> <name>Alice</name> <name>Martha</name> <name>George</name> </source> <xsl:template match="/"> <TABLE> <xsl:for-each select="//name">

<xsl:sort order="ascending" select="."/> <TR> <TH><xsl:value-of select="."/></TH> </TR> </xsl:for-each> </TABLE> </xsl:template> Alice Charles George John Josua Martha

Prática

• Desenvolver um XSL para o arquivo XML – Deverá ser gerada uma tabela para cada turma – Cada tabela terá:

• Informações sobre o departamento, disciplina e professor

(17)

Elemento template

• Criar um template para os seguintes elementos

– Departamento

• Cada disciplina gera um “tópico”

– discisplina

• Cada disciplina gera um “tópico” menor

– turma

• Cada turma estará em uma tabela

Atributo match

• Definir onde o elemento se encontra com a ajuda de Xpath

– Ex: em turmatrocar por

/universidade/turma

– Colocar o elemento departamentocomo

filho de universidadee pai de turma

O Xpath é similar a estrutura de arquivos do UNIX

Element value-of

• Utilizado para recuperar valores – De elementos ou de atributos

– O caminho também é definido com a ajuda do

Xpath

– Fazer mudanças em ex1.xsl

path em um atributo

• O path deve ser colocado entre aspas e entre chaves

– Colocar <font color="{cor}">

Elemento for-each

• Executa o processo para todos os elementos que estiverem no documento

• É utilizado para evitar a declaração de uma

novo template

– Uma solução alternativa é criar templatee

utilizar o elemento applay-tampletes

– exercitar tópicos acima

Processamento Condicional

• O valores colocados devem satisfazer a uma condição

(18)

Acesso elementos pela posição

• Funções e vetores permitem o acesso a elementos

– Colocar <xsl:value-of select="/universidade/departamento/turma/aluno[1]/no me"/> • aluno[position()=1]/nome • aluno[last()]/nome • aluno[not(position()=last())]/nome">

Ordenação dos elementos

• Os elementos são ordenados em ordem crescente ou descrescente com base em um certo valor (elemento ou atributo)

– Ordenar os alunos com

• <xsl:sort select="nome" order="ascending"/>

XML

• Evolução • O que é XML? • Aplicações • Sintaxe • Linguagens auxiliares • Conclusões • O Futuro (proposto)

Vantagens

• Flexível • Auto-contida • Portável • Fácil de utilizar • Robusta • Legível

Vantagens (continuação)

• Reusabilidade da informação: pequenos trechos de informações comuns podem ser compartilhadas em vários lugares

• Coleta de informações: o sistema pode identificar e capturar componentes de informações úteis em um documento

• Aplicações de gerenciamento de textos de

granularidade fina: suporte a aplicações que

envolvem o processamento de documentos em diferentes granularidades

Desvantagens

• Tamanho

• Custo de processamento • Complexidade

• A flexibilidade para a criação de linguagem gera muitas maneiras de descrever a mesma coisa.

(19)

XML

• Evolução • O que é XML? • Aplicações • Sintaxe • Linguagens auxiliares • Conclusões • O Futuro(proposto)

O Futuro

A descrição sintática do conteúdo resolve o problema sintático de um XML.

Mas, e a descrição semântica?

A descrição semântica,

o que o conteúdo

significa

,

é um problema bem maior.

O problema

Se já é difícil fazer aplicações conversarem com uma mesma

linguagem XML, como chegar a

informações, que estão em

documentos XML, que não

sabemos procurá-las?

Gerações da Web

• A 1ª geração Web

– Geração manual de conteúdo • A 2ª geração Web

– Geração automática do conteúdo • A 3ª geração Web

– Web Semântica, as máquinas (agentes) devem buscar conteúdo

Web Semântica

"The Semantic Web is an extension of the current

web in which information is given well-defined meaning, better enabling computers and people to

work in cooperation." Tim Berners-Lee, James Hendler, Ora Lassila

(20)

Web Semântica

• Tem como objetivo buscar técnicas para a descrição semântica dos dados

• Recuperação dos dados diferente do casamento de palavras

Estutura da Web Semântica

A transição

<XML> <nome> <desc>... </XML> <RDF> <inf> <doc>... </RDF> <DAML> <nome> <desc>... </DAML> <SHOE> <inf> <doc>... </SHOE> <HTML> <a href></a> ... </HTML> <HTML> <a href></a> ... </HTML> <HTML> <a href></a> ... </HTML> <HTML> <a href></a> ... </HTML> <HTML> <a href></a> ... </HTML> <HTML> <a href></a> ... </HTML> <HTML> <a href></a> ... </HTML> <HTML> <a href></a> ... </HTML> <HTML> <a href></a> ... </HTML> <HTML> <a href></a> ... </HTML> <HTML> <a href></a> ... </HTML> <HTML> <a href></a> ... </HTML> <HTML> <a href></a> ... </HTML> <HTML> <a href></a> ... </HTML>       %&'()#"*'

Ontologias

• O terceiro componente básico da Web Semântica são as ontologias.

• Em Filosofia uma ontologia é uma teoria sobre a natureza da existência, sobre que tipos de coisas existem.

“Ontologia é definida como um conjunto de termos de conhecimento incluindo o vocabulário, as interconexões semânticas e simples regras de inferências e lógicas para algum tópico particular.”

James Hendler

Linguagens XML

• RDF

– A “primeira” para a descrição semântica, mas com elementos em aberto

• DAML+OIL

– A “primeira” para a descrição semântica com sintaxe definida

• OWL

– A proposta do W3C baseada na DAML+OIL

OWL

• Class • rdf:Property • rdfs:subClassOf • rdfs:subPropertyOf • rdfs:domain • rdfs:range • Individual

(21)

OWL – equivalência

• equivalentClass • equivalentProperty • sameIndividualAs • differentFrom • AllDifferent

OWL – carac. das propriedades

• InverseOf • TransitiveProperty • SymmetricProperty • FunctionalProperty • InverseFunctionalProperty • MinCardinality • maxCardinality • cardinality • hasValue

relações de classes

• oneOf • disjointWith • equivalentClass • rdfs:subClassOf • unionOf • intersectionOf • ComplementOf

Uma aplicação (BD)

university departament universidade departamento

WS

Aplicações

• Gestão do conhecimento: – Pesquisas inteligentes;

– Recuperação da informação relevante; • Comércio Eletrônico:

– Compreensão dos dados; – Manutenção mais barata;

Aplicações

• Acesso à Informação:

– Internet

• Dinâmica

• Grande volume e variedade de informações • Conseqüência a sobrecarga de dados • Repositório de documentos desestruturados

– Motores de busca:

• Baseados em SRI – Efetividade – Eficiência – Facilidade de uso

(22)

Aplicações

• Medidas para avaliar um SRI:

– Recall mede a habilidade do sistema recuperar informações relevantes;

– Precision mede a habilidade do sistema rejeitar informações irrelevantes;

• Efetua uma pesquisa em um motor de busca:

– Palavras-chave;

– Conseqüência a realização de uma mesma consulta feita várias vezes por usuários diferentes gerando resultados praticamente iguais;

Aplicações- Caso

• Intercâmbio de dados entre duas aplicações com dois bancos diferentes

• Consulta na aplicação 1: – SELECT nome FROM usuarios where

curso=”ciências”

• Consulta na aplicação 2:

– SELECT username FROM users where course=”ciências”

• A comunicação entre as aplicações é

inviável sem uma contextualização

Aplicações- Caso

• A aplicação 1 manda sua consulta para a aplicação 2, que:

– trata esta consulta semânticamete – Adapta a sua estrutura

– Faz a consulta

– Adapta a estrutura da aplicação cliente – E devolve a consulta

• Ex: Foogle, Buscapé(BR)

Conclusões sobre WS

• O Acesso à Informação relevante se tornará mais eficiente e preciso;

• Os motores de busca aumentarão seu desempenho; • “Programas distribuídos interagindo com recursos baseados na Web não-locais (ex.: Web services) podem se tornar a forma dominante pela qual computadores interagirão com seres humanos e outros computadores e serão a forma primária de computação em um futuro não distante” (J. Hendler)

Referências

• W3C – www.w3.org • ZVON – www.zvon.org

<Dúvidas/>

(23)

Referências

Documentos relacionados

O número de acidentes devidos a ultrapassagem indevida em pista simples 7,4 vezes maior que seu número em vias com pista dupla, associado à operação das duas rodovias em nível

Pinho (2005) diz que as EBTs encontram dificuldades no processo de internacionalização, pelo fato da grande maioria das EBTs nacionais produzirem seus bens ou prestarem

Henrique, rotunda em frente p/ Baguim do Monte, cruzamento à esq.. p/ Rua Fernão de Magalhães, rotunda

De acordo com as informações obtidas no balancete de julho de 2020, para uma dívida de curto prazo de R$ 269 mil, a Recuperanda possui no Ativo Circulante o valor de R$ 698

Thirty bait-traps were distributed in 2 vertical strata (understory and canopy) in each habitat type (savanna and gallery forest; thus, 60 bait-traps were distributed during 6 d

A Administração da Companhia é responsável pela elaboração e adequada apresentação dessas demonstrações contábeis de acordo com as práticas contábeis

Por exemplo, curso de qualificação profissional nós estamos fazemos de acordo com as vocações locais e eles diziam não adianta esse curso aqui, por que não tem, nós não temos

Anabaena Ankira Carteria Chlam ydom ona Chlorella Chloridella Chloroboptrys Chlorom onas Cosm arium Dunaliella Euglena Gem inella Gonium Haem atococcus Kirchneriella Merism