extensible Markup Language <XML/>



Documentos relacionados
XML para transferência de dados Estrutura hierárquica do XML DTDs e XML Schema Consultas de documentos XML: XPath e XQuery Transformação de

Programação para Internet I Aulas 10 e 11

Programação para Internet I 4. XML. Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt

5a. Aula - XML

Extensible Markup Language (XML) Júnio César de Lima Cedric Luiz de Carvalho. Instituto de Informática Universidade Federal de Goiás

XML - Extensible Markup Language

XML XML. XML extensible Markup Language HTML. Motivação. W3C: World Wide Web Consortium XML 1.0. Mário Meireles Teixeira DEINF-UFMA

Transformação de documentos XML

extensible Markup Language (XML) XML é uma linguagem de anotação. XML utiliza tags para descrever informação.

XML Schema. Vanessa Braganholo. Curso baseado em mini-cursos apresentados no SBBD. Autores: Carlos Heuser, Carina Dorneles e Vanessa Braganholo

XML. Prof. Júlio Machado

XML e XSL. Ciência da Computação DESENVOLVIMENTO DE APLICAÇÕES PARA WEB. Claudinei Dias prof.claudinei.dias@gmail.com

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

XML Schema. Um XML schema descreve a estrutura de um documento XML.

Documentos XML 1/20. Exemplo de documento XML:

Introdução de XML. Dados da Web. Gerência de Dados da Web. A Web representa, nos dias de hoje, um repositório universal de dados, onde:

Ontologias: definições e conceitos básicos

XMLs E INTEGRAÇÃO COM BANCOS DE DADOS

XSL - extemsible Stylesheet Language. Prof. Antonio Almeida de Barros Jr.

Folhas de estilo. Jomi Fred Hübner (XSL e XPath) FURB / DSC

5 Tecnologias estudadas

FEUP Faculdade de Engenharia da Universidade do Porto XSL. Porto, Maio de Gabriel David FEUP, Maio 2002 XML/XSL

Sumário. XML (extensible Markup Language)

Roteiro de Auxílio para as Atividades Práticas de Sistemas de Informação

Linguagem XML (extensible Markup Language)

CEEP-CENTRO ESTADUAL DE EDUCAÇÃO PROFISSIONAL PEDRO BOARETTO NETO INTERNET E PROGRAMAÇÃO WEB INICIO DE HTML

Esquemas para Dados XML

XML: uma introdução prática X100. Helder da Rocha

XML. Prof. Júlio Machado

Utilização de XML no Desenvolvimento de Hiperdocumentos Educacionais

Tecnologias Internet

Desenvolvimento em Ambiente Web. HTML - Introdução

XML (extensible Markup Language) por. Rafael Port da Rocha. (Notas de Aula)

XML XML. Motivação. Mário Meireles Teixeira DEINF-UFMA

XML Schema, RDF(S) e UML: uma Comparação

Noções de XML. Henrique Silva Direção-Geral do Território FCUL, 12 e 19 de Outubro de 2017

XML (extensible Markup Language)

Bem-vindo ao XML. Apostila de XML

Web Design Aula 11: XHTML

L A C Laboratory for Advanced Collaboration

MAPEAMENTO DE CONSULTAS SQL EM XML ENTRE SISTEMAS GERENCIADORES DE BANCO DE DADOS RELACIONAIS

Série Rações Semanais Xpath e XSLT Rogério Araújo

Gerenciamento de Dados XML

introdução principais componentes

A Linguagem XML (& Markup Languages)

Simbiose entre Tecnologias: XML e Java

XML. na gestão de informações. Helder da Rocha Consultor. Integração total de negócios usando XML. Integração total de negócios usando XML

Notas sobre XSLT. O modo correcto para declarar um documento xsl é:

Módulo III Introdução a XML

Webdesign HTML. Introdução a HTML e as principais tags da linguagem. Thiago Miranda dos Santos Souza

TECNOLOGIA WEB INTRODUÇÃO CONSTRUÇÃO DE PÁGINAS ESTÁTICAS HTML / XHTML

Introdução XML. Vanessa Braganholo

Introdução à Tecnologia Web HTML HyperText Markup Language XHTML extensible HyperText Markup Language Estrutura Básica do Documento HTML

GESTÃO DA CADEIA DE SUPRIMENTOS FORMAS DE TROCA DE INFORMAÇÃO: EDI E XML

XML Schema. Vanessa de Paula Braganholo ftp://metropole/pub/curso/xml/index.html. Janeiro de XML Schema

Guia de Bolso HTML e XHTML

PÓS-GRADUAÇÃO EM MATEMÁTICA COMPUTACIONAL INFORMÁTICA INSTRUMENTAL Aula 06: Introdução Linguagem HTML

Sumário. 1 Aplicações Não-Convencionais 2 BD Orientado a Objetos e Objeto- Relacional 3 BD Temporal 4 BD Geográfico 5 BDs XML

Web Semântica: Conceitos, Tecnologias e Aplicações

XML e Banco de Dados. Prof. Daniela Barreiro Claro DCC/IM/UFBA

Oracle Database 10g: Fundamentos de SQL e PL/SQL

CONTEÚDO PROGRAMÁTICO

Estrutura Lógica DTD

Quem sou eu? Ana Paula Alves de Lima. Formação:

Escola de Ciência da Informação ECI/UFMG. Eduardo Ribeiro Felipe

Tópicos. Apresentando a família XML HTML HTML. XML extesible Markup Language. Problemas com o HTML

INTRODUÇÃO AO DESENVOLVIMENTO WEB. PROFª. M.Sc. JULIANA H Q BENACCHIO

Definição da Sintaxe Abstrata de Potigol em XML

Obtendo Interoperabilidade Semântica em Sistemas. Metamorphosis

Programação para Internet I. Fernando F. Costa

Linked Data Management. Capítulo 1: Linked Data & the Semantic Web Standards

Dados na Web integrar irregular ausente não conhecida completamente evoluem Fernando Fonseca Ana Carolina Robson Fidalgo

Programação para Internet I 5. XHTML. Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt

Leiaute de arquivos XML para Carta-Circular 3254

Manual para utilização da funcionalidade de importar arquivo XML para prestação de contas

XML: uma introdução prática <xml:introdução />

A Web, o Design, o Software Livre e outras histórias... Eduardo Santos -

Guia de Consulta Rápida XML. Otávio C. Décio. Novatec Editora

Sistema de Cota de Tela Manual do Usuário Envio de Arquivo XML

<NOME>ABIAS FRANCISCO DE SOUZA</NOME> <CNPJCPF> </CNPJCPF> <NMATRICULA>101264</NMATRICULA>

Prova de pré-requisito

Arquivo de retorno Boleto Bancário Formato XML

ONTOLOGIAS E ONTOLOGIAS DIFUSAS

Aplicação para Web I. Começando a compreender o HTML

TECNOLOGIAS WEB. Unidade 2 Introdução a Construção de Páginas Estáticas. Luiz Leão luizleao@gmail.com

documentos, apenas indicações de formatação de como o texto deve ser exibido. Por exemplo, imagine o seguinte trecho de documento em HTML:

PROCESSAMENTO ESTRUTURADO DE DOCUMENTOS. Departamento de Documentação Curso de Arquivologia

XML e XSL da Teoria à Prática. 20 de Abril de 2001

Suporte Nativo a XML no Oracle 10g

XML (Extensible Markup Language)

Dados na Web. Gerenciamento de Dados e Informação. Web X Banco de Dados. Representação de Dados para Web/BD. Estrutura dos Dados. Web X Banco de Dados

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) XML Origens. HTML Problemas

Introdução. Definição. Validação. Universo XML. Apresentação. Processamento. Prof. Enzo Seraphim. Banco de Dados

Programação de Servidores CST Redes de Computadores

<!DOCTYPE html> <html lang = "pt-br"> <head> <meta charset = UTF-8"> <title> Exemplo de uso correto da semântica HTML </title> </ head >

Informática Parte 22 Prof. Márcio Hunecke

Transcrição:

extensible Markup Language <XML/> Lirisnei Gomes de Sousa lirisnei@hotmail.com Jair C Leite jair@dimap.ufrn.br XML Evolução O que é XML? Aplicações Sintaxe Linguagens auxiliares Conclusões O Futuro (proposto) 1

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 2

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. Toda a semântica vem de aplicações ou estilos 3

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 4

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> 5

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

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 7

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) 8

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/> 9

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: < = > = & = & Caracteres Unicode: &#8478 ou &#x211e 10

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 11

Documento bem-formado Uma linguagem estabelece regras as 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> <i> <b> OK </b> </i> 12

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 13

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 14

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> 15

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> 16

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. 17

Prática Desenvolver um arquivo (ex1.) XML com a seguinte estrutura sintática universidade departamento disciplina turma nome nome, codigo, creditos professor aluno Numero, horario nome, fone didático nome, media, fone, cor 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 18

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 > ]> 19

Ordem de ocorrência de filhos Filhos com ordem pré-definida <!ELEMEN T 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 20

Atributos <!ATTLIS 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 elemento 21

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 > ]> 22

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 23

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 24

Exemplo: O Poema <?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> <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> 25

<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"/> 26

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. 27

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. 28

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> </xs:element> <?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> <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> Instância Válida 29

Cardinalidade <xs:complextype name="tquadra"> <xs:sequence> <xs:element name="verso" type="tverso minoccurs="4" maxoccurs="4"/> </xs:sequence> </xs:complextype> A cardinalidade pode ser restringida recorrendo aos atributos: minoccurs e maxoccurs Valores para elementos <xs:element name= email" type= xs:string default= jcr@di.uminho.pt"/> Valor por omissão <xs:element name= supervisor" type= xs:string fixed= José Carlos Ramalho"/> Valor fixo 30

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> Restrição de domínio <xs:simpletype name= telefone base = xs:integer > <xs:pattern value= 253-\d{6} /> </xs:simpletype> Restrição de formato 31

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> 32

Elementos vazios <xs:element name="ref"> <xs:complextype> <xs:attribute name="destino" type="xs:string" use="required"/> </xs:complextype> </xs:element> <xs:element name="imagem"> <xs:complextype> <xs:attribute name="path" type="xs:string" use="required"/> <xs:attribute name="formato" type="xs:string" use="optional"/> </xs:complextype> </xs:element> Formato de arquivo Os arquivos contendo descrições XML Schema têm extensão xsd 33

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"> </xsd:schema> <! Corpo do documento--> 34

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> 35

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> 36

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> 37

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> 38

Fechando a fase de validação Salvar em um arquivo.xsd Validar o documento.xml XSL extensible StyLe Sheets 39

XML Como exibir o conteúdo XML Como enviar contéudo para diferentes clientes, extraído de um mesmo <?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> documento XML? <nome>joão Sousa</nome> <media>11.0</media> </aluno> </turma> A solução é traduzir o </escola> conteúdo para cada tipo de cliente. XSL Transforma XML to XML(HTML, ) Linguagem de programação declarativa Cria o formato de saída Filtra o dados 40

Alvos XSL PDF <XML-Document> XSLT-Stylesheet XSLT-Stylesheet XSLT-Stylesheet Catálogo Catalogue entry HTML Elementos que definem o alvo <xsl:output method="xml"> <xsl:output method="html> <xsl:output method="text"> fazer mudanças no arquivo ex1.xsl 41

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> 42

Exemplo value-of XML XSL <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> Exemplo value-of (continuação) HTML saída no browser <h1>xsl</h1> <h2>john Smith</h2> XSL John Smith 43

<source> Exemplo value-of (2) <bold>hello, world.</bold> <red>i am </red> <italic>fine.</italic> <xsl:stylesheet version = '1.0' xmlns:xsl='http:/...'> <xsl:template match="bold"> </source> <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> </xsl:template> </xsl:stylesheet> Exemplo value-of (2) <p> <b>hello, world.</b> </p> <p style="color:red">i am </p> <p> Hello, world. <i>fine.</i> </p> I am fine. 44

<source> Exemplo text <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> </h3> </xsl:template> 45

<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) 46

Exemplo com expressões <source> <car id="a234" checked="yes"/> <car id="a111" checked="yes"/> <car id="a005"/> </source> <p>car: a005</p> Car: a005 <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> </xsl:stylesheet> <source> Exemplo for-each <name>john</name> <name>josua</name> <name>charles</name> <name>alice</name> <name>martha</name> <xsl:template match="/"> <name>george</name> <TABLE> </source> <xsl:for-each select="//name"> <xsl:sort order="ascending" select="."/> <TR> <TH><xsl:value-of select="."/></th> </TR> </xsl:for-each> </TABLE> </xsl:template> 47

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 Uma linha para cada aluno com suas informações 48

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 turma trocar por /universidade/turma Colocar o elemento departamento como filho de universidade e pai de turma O Xpath é similar a estrutura de arquivos do UNIX 49

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}"> 50

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 template e utilizar o elemento applay-tampletes exercitar tópicos acima Processamento Condicional O valores colocados devem satisfazer a uma condição <xsl:value-of select="fone[@tipo='casa']"/> 51

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"/> 52

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 53

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. 54

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

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? 56

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 57

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 58

A transição <HTML> <HTML> <a href></a> <a href></a>... </HTML>... </HTML> <HTML> <a href></a>... </HTML> <HTML> <a href></a>... </HTML> <HTML> <HTML> <a href></a> <a href></a> <HTML> <a... href></a>... </HTML> </HTML>... </HTML> :HE6HPkQWLFD <XML> <nome> <desc>... <HTML> </XML> <a href></a>... </HTML> <RDF> <DAML> <inf> <nome> <doc>... <HTML> <HTML> <desc>... </RDF> <a href></a> <HTML> <a href></a> </DAML>... <a href></a>... </HTML> </HTML>... </HTML> <SHOE> <HTML> <inf> <HTML> <a href></a> <doc>... <a href></a> <HTML> </SHOE> <a... href></a>... </HTML> </HTML>... </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 59

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 60

OWL equivalência equivalentclass equivalentproperty sameindividualas differentfrom AllDifferent OWL carac. das propriedades InverseOf TransitiveProperty SymmetricProperty FunctionalProperty InverseFunctionalProperty MinCardinality maxcardinality cardinality hasvalue 61

relações de classes oneof disjointwith equivalentclass rdfs:subclassof unionof intersectionof ComplementOf Uma aplicação (BD) university universidade departament WS departamento 62

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 63

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 64

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) 65

Referências W3C www.w3.org ZVON www.zvon.org <Dúvidas/> 66

Obrigado! lirisnei@hotmail.com jair@dimap.ufrn.br 67