Desenvolvimento de Aplicações XML. Wamberg Oliveira, Msc, PMP, COBIT-F Instrutor

Tamanho: px
Começar a partir da página:

Download "Desenvolvimento de Aplicações XML. Wamberg Oliveira, Msc, PMP, COBIT-F Instrutor"

Transcrição

1 Desenvolvimento de Aplicações XML Wamberg Oliveira, Msc, PMP, COBIT-F Instrutor o Bacharel em Ciência da Computação pela Universidade Estadual do Ceará- UECE; o Mestre em Ciência da Computação pela Universidade Federal do Ceará- UFC; o Instrutor de disciplinas e palestras nas áreas de Gestão de Projetos, Governança de TI e Desenvolvimento WEB em cursos de graduação e especialização da UFC e UECE; o Professor universitário da Faculdade 7 de setembro (Fa7): Banco de Dados, Gestão de Projetos e Auditoria de Sistemas nos cursos de Sistemas de Informação e Administração; o Trabalha no Banco do Nordeste do Brasil desde 2006; onde participa de projetos de Governança de TI e Implantação de Escritório de Projetos utilizando os frameworks PMBOK, COBIT, ITIL e BSC. 1

2 Informações gerais Objetivo O curso de desenvolvimento de aplicações XML tem por objetivo introduzir e consolidar os conceitos de XML e as tecnologias a ela relacionada, através de apresentação das metodologias padronizadas pelo W3C

3 Roteiro Introdução Documentos XML DTDs ( Documents Type Definition) Namespaces XML Schema Xpath XSLT XQuery APIs XML SQL/XML Banco de Dados nativo e habilitado Introdução (A Internet) Primordialmente um meio de acesso a imagens e textos Possui um formato de apresentação de hipertextos(html) Interfaces para recuperação de documentos Orientada a apresentação

4 Introdução (A Internet) O volume de dados é muito grande Consulta em geral são realizadas por busca de palavras-chaves ou através de navegação exaustiva Não há um esquema uniforme Dados na Web são caracterizados como dados semi-estruturados Introdução (A Internet) Dados semi-estruturados Não são estritamente tipados nem completamente não-estruturados Apresentam uma estrutura irregular Os esquemas para dados semiestruturados são definidos a posteriori

5 Introdução (Limitações da HTML) Documentos HTML foram criados para serem utilizados apenas por Browsers HTML não é extensível Um documento HTML corresponde a uma visão particular da informação HTML enfatiza a formatação e não o conteúdo Em um documento HTML não é fornecida nenhuma semântica além do formato SGML Necessidade de um mecanismo mais robusto para a especificação de hiperdocumentos O trabalho começa a partir da GML (Generalized Markup Language), a qual foi desenvolvida pela IBM

6 SGML GML tinha duas premissas básicas: A marcação devia descrever somente a estrutura do documento A marcação deveria ser entendida por programa ou por ser humano Em 1978 foi criado um comitê que criou o SGML, que se tornou padrão em SGML Padrão para a definição de métodos de representação de texto em formato eletrônico SGML é uma metalinguagem, ou seja, uma linguagem que pode ser usada para a criação de outras linguagens de marcadores

7 SGML Características de SGML: Estrutura Hierárquica Flexibilidade Especificação Formal Representação Legível SGML <livro id= a1 tipo= informática > <titulo>inside XML</titulo> <autores> <nome>steven</nome> <nome>holzner</nome> </autores> </livro>

8 SGML X HTML SGML supera todas as limitações de HTML SGML é um padrão muito poderoso e bastante geral, o que torna complicada a sua implementação Necessidade de uma proposta mais robusta que HTML e mais fácil que SGML Em 1996 o W3C começa a trabalhar em XML Em 1998 XML foi publicada como recomendação do W3C Visão Incial de XML XML (extensible Markup Language) Lingagem de marcação proposta pelo W3C como padrão para representação e troca de dados na Web. Desenvolvida para solucionar as limitações de HTML

9 O que é XML? É uma linguagem de marcação para descrever informações É estrutural e semântica, não uma linguagem de formatação Permite que um mesmo conteúdo seja usado de diferentes formas Oferece o contexto no qual os dados estão sendo usados Benefícios do XML XML é um padrão completamente aberto Documentos XML podem ser usados e reusados de diferentes formas e em diferentes formatos Os autores de documentos XML podem concentrar-se no conteúdo e não na formatação

10 Benefícios do XML Documentos XML são auto descritíveis Documentos XML são como banco de dados de informações O conteúdo dos documentos pode ser manipulado e reorganizado pelo browser Estrutura de um documento XML O importante é a estrutura A estrutura é a base em que a aparência é deduzida XML registra a estrutura dos documentos, a partir da qual a formatação é deduzida

11 XML A idéia é tornar explícita a separação entre os principais componentes de um documento eletrônico. Apresentação Conteúdo Estrutura Áreas de atuação do XML Publicação de conteúdo disponível a diversos sites Web Aplicações onde diferentes organizações colaboram para atender um cliente Dispositivos portáteis e telefones inteligentes com novas linguagens de marcação otimizadas para esses dispositivos Linguagens baseadas em XML, tais como: MathML, CML, etc

12 Linguagens Baseadas em XML Linguagens baseadas em XML consistem de um conjunto de tipos de elementos os quais possuem um nome e um significado O conjunto de tipos de elementos são usados para definir os tipos dos documentos e são definidos em um esquema XML Exemplo XML Definição de um documento XML: livraria.xml <?xml version= 1.0?> <!DOCTYPE livraria SYSTEM livraria.dtd > <livraria> <livro> <titulo>inside XML</titulo> <autor>steven Holzner</autor> <preco>r$ 150,00 </preco> </livro> </livraria>

13 Exemplo XML Definição da DTD : livraria.dtd <! --Definição de Tipo de Documento--> <!ELEMENT livraria (livro)+> <!ELEMENT livro (titulo,autor,preco)> <!ELEMENT titulo (#PCDATA)> <!ELEMENT autor (#PCDATA)> <!ELEMENT preco (#PCDATA)> SGBDs para XML Sistema Gerenciador de Banco de Dados XML Nativo(Native XML Database NXD) É um BD projetado especificamente para armazenar e manipular dados XML O acesso aos dados é através de XML e padrões relacionados, como XSLT, DOM e SAX Ex: Tamino, dbxml, X-Hive

14 SGBDs para XML Sistema Gerenciador de Banco de Dados compatível com XML( XML Enabled Database EXDB) É um BD que tem como funcionalidade adicional um nível de mapeamento para XML Esse nível de mapeamento gerencia o armazenamento e a recuperação de dados XML Ex: As soluções para XML propostas pela Oracle e Microsoft SGBDs para XML Sistema Gerenciador de Banco de Dados XML Híbrido( Hybrid XML Database HXD) É um banco de dados que pode ser tratado ou como banco de dados nativo ou como um banco de dados compatível com XML, dependendo dos requesitos da aplicação Ex: Excelon e Ozone

15 Padrões XML DTD (Document Type Definition) Permite se definir uma gramática para criar documentos específicos Namespaces Permite utilizar nomes repetidos para tags utilizando espaços de nomes diferentes XML Schema Estende o conceito de DTDs Padrões XML XLInks Links entre documentos Uma forma generalizada dos conceitos de âncoras e links de HML XPointer Permite um recurso ser identificado pela sua localização contextual. XPath É uma linguagem para referenciar partes de um documento XML

16 Padrões XML Xquery Permite a consulta dentro de documentos XSLT (extensible Style Language Transformation) Transformação de documentos XML CSS Linguagem de estilo. Foi definida primeiramente para HTML Manipulando conteúdo de documentos XML DOM( Document Object Model) Manipula documentos XML como sendo uma árvore de objetos SAX(Simple API for XML) Utiliza o conceito de eventos para a manipulação de documentos XML

17 Ferramentas para manipulação de documentos XML Parsers Validadores Validam a sintaxe do documento em relação à DTD ou esquema Não validadores Verifica apenas se o documento é bemformado Ferramentas para manipulação de documentos XML Editores XML Spy( XML Notepad ( Xeena( Browsers Outros softwares para XML

18 Referências O que já foi visto? A linguagem XML e o papel que ela desempenha na Web O relacionamento entre XML e HTML, os benefícios e objetivos do uso de XML Os padrões associados e ferramentas para XML

19 Desenvolvimento de Aplicações XML Sintaxe de Documentos XML Conceitos da sintaxe XML Conceitos da sintaxe de documento XML Erros e Perguntas freqüentes

20 Documento XML Um documento XML consiste de dados de caracteres e marcação(ambos representados por texto) Os dados de caracteres representam a informação A marcação registra a estrutura do documento A marcação é sempre delimitada pelos sinais < e > Documento XML - Elementos Os elementos são os blocos principais da estrutura hierárquica de XML O conteúdo de um elemento é delimitado por marcadores ( tags de início e fim) Cada marcador de início deve ter um marcador final correspondente

21 Documento XML - Elementos Veja o exemplo : <livro> <titulo>inside XML</titulo> <autor>steven Holzner</autor> <preco>r$ 150,00 </preco> </livro> Nomes em XML Os nomes em XML precisam começar com uma letra ou como o caractere sublinhado(_) O restante do nome é constituído de letras, dígitos, (_), o ponto (.) ou o hífen (-) Case sensitive Letras maiúsculas e minúsculas são diferenciadas em XML Os nomes não podem começar com a string xml Espaços não são permetidos nos nomes

22 Nomes em XML Exemplos Válidos Exemplos Inválidos <fone-cel> <m> <tarifa31> <789> <fone cel> <eu&ela> Nomes em XML - Convenções Os elementos XML devem ser escritos em minúsculo Quando um nome consiste de várias palavras: As palavras separadas por um hífen A primeira letra de cada palavra inicia com maiúscula Escolha a convenção que preferir, mas tente ser coerente

23 Elemento Vazio Um documento XML pode ter elementos com conteúdo vazio Não possui conteúdo É útil quando se deseja descrever um elemento apenas através de atributos ou para referenciar outros elementos Ex: <fone/> <nada></nada> Conteúdo do Elemento Os elementos podem conter: Caracteres Atributos Outros elementos ( elementos aninhados) <livraria> <livro isbn= 1 > <titulo>inside XML</titulo> <autor>steven Holzner</autor> </livro> </livraira>

24 Elementos Aninhados Livraria Livro Livro Título Autor Título Autor Elemento Raiz Para se criar um documento bem formado é necessário que exista somente um elemento raiz em um documento XML Todos os outros elementos do documento precisam ser filhos de um elemento Exemplo: <livraria> demais elementos </livraria>

25 Atributos Um elemento pode posssuir um ou mais atributos que definem as propriedades dos elementos e adicionam novas características a eles Os nome dos atributos seguem as mesmas regras dos nomes dos elementos Valores de atributos podem ser delimitados por ou Atributos Exemplo <livraria> <livro isbn= 1 editora= Addison Wesley > <titulo>inside XML</titulo> <autor>steven Holzner</autor> </livro> </livraira>

26 Declaração XML A declaração XML é a primeira linha do documento Identifica o documento como um documento XML Relaciona a versão XML usada no documento A delcaração XML é opcional, mas a recomendação XML sugere que ela seja incluída em todo documento XML <?xml version= 1.0?> Declaração XML Prólogo Corresponde a declaração XML e a declaração do tipo de documento (DTD) Document Type Definition A declaração XML deve ter um atributo encoding para informar a codificação utilizada <?xml version= 1.0 enconding= ISO ?>

27 Declaração XML É uma instrução de processamento especial <?xml version="1.0" encoding="utf-8" standalone="yes"?> Parâmetros version indica a versão do documento (atualmente, existe somente uma versão) encoding indica o código de caracteres utilizado no documento standalone indica se um conjunto de declarações definido externamente contém informação que afeta a interpretação do conteúdo do documento (default é yes) Comentários A definição de comentários é bastante útil e faz parte da maioria das linguagens Os comentários são delimitados por : <!-- e --> Os comentários não podem ser inseridos na marcação(devem aparecer antes ou após a marcação) <!-- exemplo comentário -->

28 Entidades XML organiza os documentos fisicamente em entidades As entidades são inseridas em um documento por meio de referências de entidade Ex: &NomedaEntidade A referência de entidade é substituída pelo conteúdo dessa entidade Entidades Entidades são úteis para: Possibiliar o reuso Dividir documentos complexos Representar caracteres especiais < sinal de < & símbolo de & > sinal de maior > &apos; o caracter " o caracter Exemplo: Inválido <emp>f&b</emp> Válido <emp> F & B </emp>

29 Entidades Quando usar uma entidade: A mesma informação é usada em muitos lugares A informação pode ser representada diferentemente por sistemas incompatíveis A informação é parte de um grande documento que por razões práticas deve ser dividido em unidades gerenciáveis A informação diz respeito a algum dado quenão seja padrão XML Instruções de Processamento São utilizadas para enviar comandos e informações à aplicação que está processando o documento XML A instrução de processamento(ip) é delimitada por <? e?> <?xml-stylesheet type="text/xsl href="c:\livraria\livraria1.1.xsl"?>

30 Seção CDATA Deve ser usada em documento XML que contém um grande números de caracteres especiais. São úteis porque quando um caractere especial se encontra dentro dos limites de uma seção CDATA, ele passa a ser interpretado como um simples caractere Ex: <Documento> <![CDATA[ se a<b<c entao a<c]]> </Documento> Perguntas frequentes Atributos ou Elementos? Não existe regras para determinar quando uma informação deve ser representada como um elemento ou como um atributo. Por que a o tag final é obrigatório? Porque XML não possui elementos prédefinidos Um processador XML não conhece a estrutura do documento, pois você define suas próprias tags

31 Atributo ou elemento? O valor deve ser obtido a partir de uma lista de valores? Valores enumerados podem ser representados por atributos Não existe esta restrição no conceito de elementos <!ATTLIST produto qualidade ( BOA RUIM INDIFERENTE)> Atributo ou elemento? O valor deverá ser manipulado por uma aplicação ou por um usuário? Atributos são geralmente usados para representar valores manipulados por aplicações

32 Atributo ou Elemento? A informação deve seguir alguma ordem pré-definida? Múltiplos valores de atributos em um único tag não têm uma ordem pré-definida Os subelementos de um elemento devem ser definidos na ordem estabelecida na declaração do elemento. A informação possui alguma estrutura? Atributos não têm hierarquia Elementos podem ter hierarquia Atributo ou elemento? Um atributo pode aparecer uma única vez dentro de uma tag de início Subelementos com mesmo tag podem ser repetidos na definição do elemento

33 Erros Comuns Esquecer os tag finais <livraria> <livro isbn= 1 editora= Addison Wesley > <titulo>inside XML</titulo> <autor>steven Holzner</autor> </livraria> Erros Comuns Esquecer que XML diferencia maiúsculas de minúsculas <livraria> <livro isbn= 1 editora= Addison Wesley > <titulo>inside XML</titulo> <autor>steven Holzner</autor> </Livro> </livraria>

34 Erros Comuns Incluir espaços no nome do elemento <catálogo de livros> <livro isbn= 1 editora= Addison Wesley > <titulo>inside XML</titulo> <autor>steven Holzner</autor> </livro> </catálogo de livros > Erros Comuns Esquecer as aspas no valor do atributo <livraria> <livro isbn= 1 editora=addison Wesley> <titulo>inside XML</titulo> <autor>steven Holzner</autor> </livro> </livraria>

35 Erros Comuns Não alinhar corretamente os elementos <livraria> <livro isbn= 1 editora= Addison Wesley > <titulo>inside XML</titulo> <autor>steven Holzner</autor> </livraria> </livro> Erros Comuns Esquecer que deve existir apenas um elemento raiz <livro isbn= 1 editora= Addison Wesley > <titulo>inside XML</titulo> <autor>steven Holzner</autor> </livro> <livro isbn= 2 editora= Addison Wesley > <titulo>fundamental..</titulo> <autor>navathe</autor> </livro>

36 Exercício(1) Suponha uma livraria: Construa um documento, de maneira que nesta livraria existam diversos livros e para cada livro preciso ter: Título Autores Editora Ano de publicação (definido como atributo) Teste se o seu documento é bem formado Exercício(2) Suponha um catálogo de CDs: Construa um documento XML, onde cada CD do catálogo tenha os seguinte itens : Título Artista Gravadora Ano (definido como atributo) Faixas faixa(*) Preço Teste se o seu documento é bem formado

37 Exercício(3) Suponha um formato de uma Agenda: Construa um documento XML capaz de representar este formato; Sabe-se que uma agenda é geralmente composta dos seguintes tópicos Um elmento raiz agenda Um elemento entrada, o qual possui um atributo Id e tipo(pessoa ou empresa), e os seguintes elementos: nome telefone Endereco Rua, numero, cidade, cep Teste se o seu documento é bem formado Exercício(4) Construa um documento XML capaz de representar o domínio de grupos de pesquisa; No nosso documento um grupo de pesquisa é composto dos seguintes tópicos Um elmento raiz grupos(grupo)* Um elemento grupo, o qual possui um atributo ano_inicio, e os seguintes elementos: titulo Area_pesquisa chefe Alunos(aluno*) aluno matricula, nome, curso Teste se o seu documento é bem formado

38 Exercício(5) Construa um documento XML capaz de representar o domínio de catálogo de produtos No nosso documento um catálogo de produtos é composto dos seguintes tópicos Um elmento raiz catalogo(produto)* Um elemento produto, o qual possui um atributo ano_fabricação, e os seguintes elementos: código descrição valor estoque marca Teste se o seu documento é bem formado Perguntas? Perguntas: Como garantir que os elementos que constituem os documentos estão aninhados da forma correta? Coma saber se os atributos desses elementos estão definidos corretamente? Como saber se os elementos aparecem na seqüência correta?

39 Resposta: Verificando as definições contidas na sua DTD E o que é mesmo DTD? Desenvolvimento de aplicações XML Construindo DTDs (Document Type Definition)

40 DTDs DTD define uma gramática para validar documentos, isto é, conjunto de regras que definem a estrutura do documento Em uma DTD são definidos: os elementos que formarão os documentos que seguirão a gramática os atributos desses elementos as entidades a hierarquia e a ordem desses elementos Onde os elementos podem ser usados DTDs Uma DTD descreve os elementos e atributos que podem aparecer em um documento Uma DTD está contida dentro de uma tag <!DOCTYPE> dentro do próprio documento, ou em um arquivo externo. A validação compara um documento em particular com a DTD correspondente É necessário que um documento seja bemformado para ser validado

41 DTD Garante que os dados estão corretos antes de serem utilizados por outras aplicações Garante que o formato foi seguido O papel do DTD é especificar quais elementos são permetidos em que local do documento A DTD descreve a árvore que pode ser aceita para o documento DTD O DTD armazena : Declarações dos tipos de elementos Declarações de listas de atributos Declarações de entidade Declarações de notação

42 DTD Exemplo de aplicações de DTD: registros médicos enciclopédias catálogos de produto jornais dicionários contratos políticas e procedimentos artigos científicos ordens de compra normas/regulamentos manuais de usuário Exemplo Definição da DTD : livraria.dtd <! --Definição de Tipo de Documento--> <!ELEMENT livraria (livro)+> <!ELEMENT livro (titulo,autor,preco)> <!ELEMENT titulo (#PCDATA)> <!ELEMENT autor (#PCDATA)> <!ELEMENT preco (#PCDATA)>

43 Declaração de Elementos Mais comum forma de marcação Permite restringir os elementos que ocorrem no documento XML Após a marcação <!ELEMENT aparece o nome do elemento seguido pelo seu modelo de conteúdo e, por final, o sinal >. Ex: <!ELEMENT livro(título, autor)> Declaração de Elemento O modelo de conteúdo de um elemento pode ser: Sub-elementos Quando o elemento possui apenas elementos <!ELEMENT livro(título, autor)> Caracteres de dados Geralmente usado para elementos terminais <!ELEMENT autor(#pcdata)> Conteúdo misto Quando o conteúdo do elemento possui #PCDATA e outros elementos

44 Declaração de Elemento O modelo de conteúdo de um elemento pode ser: EMPTY Significa que o elemento é um elemento vazio Sempre indica um elemento terminal Ex: <!ELEMENT editora EMPTY> ANY Significa que o elemento pode conter qualquer outro elemento declarado na DTD É utilizado muito pouco Ex: <!ELEMENT livraria ANY> Declaração de Elementos Grupos de elementos podem ser uma seqüência bem como um subconjunto de escolha Seqüência <!ELEMENT A (B,C,D)> Escolha <!ELEMENT A (B C D)> Pode-se também definir a quantidade de vezes que um sub-elemento aparece em um elemento Opcional (?) Uma ou mais vezes (+) Zero ou mais vezes (*)

45 Declaração de Elementos Os caracteres +, * e? são indicadores de ocorrência Os caracteres, e são conectores, que separam os filhos no modelo de conteúdo e indicam a ordem em que os filhos podem aparecer. O modelo do conteúdo deve ser não ambíguo Declaração de Elementos (Exemplo1) Seqüência de Elementos Especifica que um elemento consiste de outros elementos exatamente na ordem em que for especificada a seqüência. <!ELEMENT livro(titulo, autor,preco)> <livro> <titulo> <autor> <preco> </livro> <livro> <titulo> <precor> <autor> </livro> <livro> <titulo> <preco> </livro> Ex: Válido Inválido Inválido

46 Declaração de Elementos (Exemplo2) Escolha de subelemento Especifica que apenas um dos elementos especificados na declaração pode fazer parte do conteúdo do elemento que está sendo declarado <!ELEMENT livro(titulo autor preco)> <livro> <titulo> <preco> </livro> Inválido Declaração de Elementos (Exemplo3) A ocorrência de um elemento é opcional(?) O elemento pode não aparecer ou aparecer uma única vez. <!ELEMENT livro(titulo, autor?,preco)> <livro> <titulo> <preco> </livro> Válido <livro> <titulo> <autor> <autor> <preco> </livro> Inválido

47 Declaração de Elementos (Exemplo4) Um elemento ocorre uma ou mais vezes(+) <!ELEMENT livro(titulo, autor+, preco)> <livro> <titulo> <preco> </livro> Inválido <livro> <titulo> <autor> <autor> <preco> </livro> Válido Declaração de Elementos (Exemplo5) Um elemento ocorre zero ou mais vezes(*) <!ELEMENT livro(titulo, autor*, preco)> <livro> <titulo> <preco> </livro> Válido <livro> <titulo> <autor> <autor> <preco> </livro> Válido

48 Declaração de Elementos Exemplos: <!ELEMENT A (B,C?,D+)> Um elemento A consiste de ume elemento B, opcionalmente seguido por um elemento C seguido de um ou mais elementos D <!ELEMENT A (B,C,(D E)*)> Um elemento A consiste de um elemento B seguido de um elemento C. Este elemento é seguido por zero ou mais elementos D ou zero ou mais elementos E Declaração de Elementos Exemplos: <!ELEMENT A (B,C*,D?)> Um elemento A consiste de ume elemento B, seguido por zero ou mais elementos C, opcionalmente seguido por um elemento D. <!ELEMENT A (B,(C D)+,E)> Um elemento A consiste de um elemento B seguido por um ou mais elementos C ou um ou mais elementos D. Este elemento é seguido de um elemento E

49 Declaração de Atributos Cada elemento pode ter zero ou mais atributos Todos atributos possuem um tipo Atributos podem ser opcionais, obrigatórios ou ter valores fixos Uma declaração de atributos especifica o nome do elemento, o nome do atributo, o tipo do atributo e um valor padrão. Os nomes não podem ser repetidos no mesmo elemento A declaração de um atributo pode aparecer em qualquer lugar da DTD, mas geralmente aparece logo após a declaração do elemento ao qual pertence Declaração de Atributos ( Exemplo) Formato padrão para definição de lista de atributos <!ATTLIST livro ISBN CDATA #REQUIRED editora CDATA #IMPLIED id ID #REQUIRED>

50 Declaração de Atributos Tipos de Atributos String ( CDATA) Enumerado ID IDREF/ IDREFS ENTITY/ENTITIES NMTOKEN/NMTOKENS Declaração de Atributos Atributo String Cadeia de caracteres de qualquer tamanho <!ATTLIST livro titulo CDATA> Definição do atributo título Ex : <livro titulo= Inside XML /> Exemplo válido Atributo Enumerado O atributo pode assumir apenas um dos valores especificados na sua declaração <!ATTLIST livro gênero(ficção romance técnico)> Definição do atributo gênero Exemplo válido: <livro gênero= romance /> Exemplo inválido: <livro gênero= terror />

51 Declaração de Atributos Atributo ID Os IDs identificam unicamente elementos individuais em um documento. O valor deste atributo tem que ser único por todo o documento. <!ATTLIST livro id ID/> Ex: <livro id= 243 /> Atributo IDREF O seu valor deve ser o valor de um único atributo ID em algum elemento no documento <!ATTLIST livro bib IDREF/> Ex: <livro bib= 243 /> Declaração de Atributos Atributo IDREFS Seu valor pode conter valores IDREF múltiplos separados por espaço em branco <!ATTLIST livro bib IDREFS> Ex: <livro bib= /> Atributo ENTITY Seu valor deve ser o nome de uma única entidade <!ENTITY g1 SYSTEM genero.txt > <!ATTLIST livro genero ENTITY> Ex: <livro genero= g1 /> Atributo ENTITIES Seu valor pode conter valores de entidades múltiplas separados por espaço em branco

52 Declaração de Atributos Atributo NMNTOKEN Deve conter uma única palavra(sem espaços em branco) <!ATTLIST livro ISBN NMTOKEN/> Ex: <livro ISBN= 1234 /> - Válido Ex: <livro ISBN= /> - Inválido Atributo NMTOKENS Seu valor pode conter valores NMTOKEN múltiplos separados por espaços em branco Declaração de Atributos Valores Default #REQUIRED O atributo deve ter um valor explicitamente especificado em cada ocorrência do elemento no documento #IMPLIED O valor do atributo não é requerido, e nenhum valor padrão é fornecido #FIXED Um valor é fornecido na declaração Nenhum valor precisa ser fornecido no documento Caso um valor seja fornecido no documento, então ele deve corresponder ao valor fornecido na declaração

53 Declaração de Atributos (Required) <!DOCTYPE livro [ <!ELEMENT livro EMPTY> <!ATTLIST livro titulo CDATA #REQUIRED]> <livro titulo= Inside XML /> Documento Válido <!DOCTYPE livro [ <!ELEMENT livro EMPTY> <!ATTLIST livro titulo CDATA #REQUIRED]> <livro/> Documento Inválido Declaração de Atributos (Implied) <!DOCTYPE livro [ <!ELEMENT livro EMPTY> <!ATTLIST livro titulo CDATA #IMPLIED]> <livro titulo= Inside XML /> Documento Válido <!DOCTYPE livro [ <!ELEMENT livro EMPTY> <!ATTLIST livro titulo CDATA #IMPLIED]> <livro/> Documento Válido

54 Declaração de Atributos (Fixed) <!DOCTYPE livro [ <!ELEMENT livro EMPTY> <!ATTLIST livro isbn CDATA #FIXED 123 ]> <livro isbn= 123 /> Documento Válido <!DOCTYPE livro [ <!ELEMENT livro EMPTY> <!ATTLIST livro isbn CDATA #FIXED 123 ]> <livro isbn= 345 /> Documento Inválido Declaração da DTD A DTD pode ser definida de duas formas: Declarada dentro do documento XML Utilizando a tag <!DOCTYPE> para apontar para um entidade externa

55 Declaração da DTD Internamente Documento livraria.xml <!DOCTYPE livraria[ <!ELEMENT livraria (livro*)> <!ELEMENT livro(titulo,autor,preço)> <!ELEMENT título (#PCDATA)> <!ELEMENT autor (#PCDATA)> <!ELEMENT preço (#PCDATA)> ]> Início do documento XML Declaração da DTD Documento livraria.xml <!DOCTYPE livraria SYSTEM livraria.dtd > Referencia uma entidade externa

56 Declaração da DTD DTDs externas Públicas Quando a DTD é direcionada para uso público, usa-se a palavra chave PUBLIC. Deve-se criar um formal public identifier(fpi). Privadas DTDs privadas são direcionadas para serem usadas por uma pessoa ou grupo de usuários, não para distribuição pública. Especifica-se uma DTTD privada com a palavra chave SYSTEM no elemento <!DOCTYPE> Declaração da DTD DTD Pública <!DOCTYPE livraria PUBLIC.//starpowder//Custom XML Version 1.0//EN >

57 Declaração da DTD DTD Privada <!DOCTYPE livraria SYSTEM livraria.dtd > Declaração DTD O atributo standalone Quando a DTD está definida internamente seu valor é yes Quando a DTD está definida externamente seu valor é no Ex:<?xml version = 1.0 standalone= no?> <!DOCTYPE livraria SYSTEM livraria.dtd >

58 Declaração da DTD Documento XML com DTD interna e externa Declarações internas sobrepõem declarações externas livro.dtd <!ELEMENT livro(#pcdata)> livraria.xml <!DOCTYPE livraria SYSTEM livro.dtd [ <!ELEMENT livraria(livro)*> <!ATTLIST livro ISBN CDATA #REQUIRED >]> Classes de documentos XML Documento bem formado Documento que está de acordo com o padrão XML Documento válido Documento XML bem formado que está de acordo com a DTD ou XML Schema associado

59 Classes de documentos XML Documento XML Documento XML válido Parser DTD Documento XML inválido Entidades Existem três tipos de classificação para entidade : Entidades gerais ou de parâmetro Entidades internas ou externas Entidades desmembradas ou não desmembradas

60 Entidades Entidades Gerais Referências de entidade gerais podem aparecer em qualquer lugar no texto ou na marcação Geralmente são usadas com abreviação para um texto A entidades gerais externas podem referenciar imagens, som e outros documentos em formato que não seja XML Entidades Gerais <!DOCTYPE categoria[ <!ENTITY Descreve Proibido para menores de 14 anos > <!ENTITY tipo terror > <!ELEMENT categoria (aviso)> <!ELEMENT aviso (#PCDATA)>]> <categoria> <aviso>este filme é de &tipo;, Ele é &Descreve; </aviso> </categoria>

61 Entidades de Parâmetro Referências de entidade de parâmetro só podem aparecer na DTD Existe um caractere extra na declaração antes do nome da entidade As referências de entidade de parâmetro também substituem o símbolo & pelo sinal % Entidades de Parâmetro Arquivo DTD <!ENTITY % registro "(nome,data,item)"> <!ELEMENT documento (consumidor, comprador)*> <!ELEMENT consumidor %registro;> <!ELEMENT comprador %registro;> <!ELEMENT nome (#PCDATA)> <!ELEMENT data (#PCDATA)> <!ELEMENT item (#PCDATA)> Arquivo XML <!DOCTYPE documento SYSTEM "ordem.dtd"> <documento> <consumidor> <nome>wamberg</nome> <data>10/01/2002</data> <item>cerveja</item> </consumidor> <comprador> <nome>loja virtual S.A</nome> <data>08/01/2002</data> <item>softwares legais</item> </comprador> </documento>

62 Entidades Internas e Externas Entidades Internas São armazenadas no documento Permitem definir atalhos para textos a serem alterados Entidades Externas Apontam para um identificador Referenciam um conteúdo que não faz parte do documento atual Entidades Externas Entidades externas desmembradas A entidade deverá conter texto e marcação XML válidos São usadas para compartilhar texto entre vários documentos Entidades externas não desmembradas São usadas para conteúdo não XML como imagens, sons, etc. As entidades não desmembradas permitem carregar dados que não sejam XML em um documento

63 Entidades Gerais Externas <!DOCTYPE agenda[ <!ENTITY wamberg SYSTEM wamberg.txt > <!ELEMENT agenda (item)+>]> <!ELEMENT item (nome,fone)> <!ELEMENT nome (#PCDATA)> <!ELEMENT fone (#PCDATA)> <agenda> &wamberg; </agenda> wamberg.txt <item> <nome>wamberg Oliveira</nome> <fone> </fone> </item> Entidade de Parâmetro Externa Documento XML <!DOCTYPE livraria[ <!ELEMENT livraria (livros)+> <!ELEMENT livros (título, autor)> <!ELEMENT título (#PCDATA)> <!ENTITY % autor SYSTEM 'autor.dtd'> %autor; ]> <livraria> <livros><título>insidexml </título> <autor><nome>steven</nome><sobrenome>holzner</sobrenome> </autor></livros> </livraria> DTD (autor.dtd) <!ELEMENT autor(nome, sobrenome)> <!ELEMENT nome (#PCDATA)> <!ELEMENT sobrenome (#PCDATA)>

64 Notação Uma notação está associada com entidades As notações identificam o tipo de um documento, como GIF ou JPEG A notação é introduzida pela palavra chave NDATA <!ENTITY logo SYSTEM logo.gif NDATA GIF> <!NOTATION GIF SYSTEM image/gif > Seções condicionais Porções da DTD podem ser consideradas opcionais: Seções condicionais As seções que serão consideradas pelo processador XML devem ser marcadas como uma seção incluída. Por exemplo <![ INCLUDE [ ]]> Para não ser processada pelo processador XML, a palavra INCLUDE deve ser trocada por IGNORE, marcando uma seção ignorada: <![ IGNORE [ ]]> O objetivo é predefinir regiões para construir modelos dedocumento alternativos, alterando apenas a declaração

65 DTDs (Exercício1) Crie uma DTD que valide este documento: <?xml version= 1.0?> <hierarquia> <empregado id= Pedro subordinado= Ilo Bel > <nome> Pedro Nogueira </nome> </empregado> <empregado id= Ilo chefe= Pedro > <nome> Ilo Bandeira </nome> </empregado> <empregado id= Bel chefe= Pedro > <nome> Bel Chaves</nome> </empregado> </hierarquia> DTDs (Exercício 2) Crie uma DTD interna e externa que valide este documento: <?xml version= 1.0?> <livro autor= Steven > <titulo>inside XML</titulo> <capítulo id= a1 >Sobre o Cap. 1</capítulo> <capítulo id= a2 >Sobre 0 Cap. 2</capítulo> <preço> R$ 150,00 </preço> </livro>

66 DTDs (Exercício 3) Construir um documento válido com relação a essa DTD <?xml version="1.0" encoding="utf-8"?> <!ELEMENT Livraria (Livro*)> <!ELEMENT Livro (Titulo, Autor+, Editora, Preço)> <!ATTLIST Livro ano CDATA #REQUIRED > <!ELEMENT Autor (#PCDATA)> <!ELEMENT Titulo (#PCDATA)> <!ELEMENT Editora (#PCDATA)> <!ELEMENT Preço (#PCDATA)> DTDs (Exercício 4) Crie uma DTD externa que valide o documento XML que está relacionado com o catálogo de Cds <catalogo> <cd ano="2002"> <titulo>dança</titulo> <artista>rei do sucesso</artista> <gravadora>emi</gravadora> <faixas><faixa>boa</faixa><faixa>melhor</faixa> </faixas> <preco>10.00</preco> </cd> </catalogo>

67 DTDs (Exercício 5) Escrever uma DTD para validar documentos XML com informações de uma universidade Utilizar, por exemplo, os elementos e atributos Universidade(nome,local,...) Departamento(nome, tel,...) Curso(nome,dt_reconhecimento,...) Professor(nome, área de pesquisa, titulação, nível (titular, adjunto ou assistente) O que já foi visto? Sintaxe XML para poder ler ou escrever documentos XML Sintaxe para a criação das DTDs que descrevem a estrutura dos documentos XML

68 Desenvolvimento de Aplicações XML Namespaces Introdução aos Namespaces XML é extensível Em um ambiente distribuído os documentos XML precisam ser gerenciados Namespaces são uma solução para gerenciar a extensibilidade de XML Namespaces pode ser definido como um mecanismo para identificar os elementos e atributos de XML

69 Exemplo de Documento XML <?xml version= 1.0 encoding= UTF-8?> <livraria> <livro> <titulo>insede XML </titulo> <autor>steven</autor> </livro> </livraria> Documento XML estendido Estendendo o documento XML inserindo o elemento pre_requesito <?xml version= 1.0 encoding= UTF-8?> <livraria> <livro> <titulo>insede XML </titulo> <autor>steven</autor> <pre_requisito>inglês</pre_requisito> </livro> </livraria>

70 Documento XML estendido Estendendo o documento XML inserindo outro elemento pre_requesito <?xml version= 1.0 encoding= UTF-8?> <livraria> <livro> <titulo>insede XML </titulo> <autor>steven</autor> <pre_requisito>banco de dados</pre_requisito> </livro> </livraria> Documento XML estendido Documentos existentes são estendidos para acrescentar novas informações Vemos que as duas extensões são incompatíveis Ao combinar os dois tipos de pre_requisitos em uma única listagem, se naõ houver um gerenciamento correto, podem surgir problemas

71 Combinando os documentos XML Exemplo combinando as duas extensões: <?xml version= 1.0 encoding= UTF-8?> <livraria> <livro> <titulo>insede XML </titulo> <autor>steven</autor> <pre_requisito>inglês</pre_requisito> <pre_requisito>banco de dados</pre_requisito> </livro> </livraria> Extensões incompatíveis Problema: Caso desejasse consultar os livros que fossem relacionados com apenas um determinado tipo de pre_requesito A solução seria renomear os elementos

72 Renomeando os elementos Renomear os elementos pre_requisito : <?xml version= 1.0 encoding= UTF-8?> <livraria> <livro> <titulo>insede XML </titulo> <autor>steven</autor> <idi:pre_requisito>inglês</pre_requisito> <ass:pre_requisito>banco de dados</pre_requisito> </livro> </livraria> Utilizando namespaces Os namespaces não limitam a facilidade de extensão da XML, mas insere mecanismos para gerenciá-la Os namespaces XML são um mecanismo para identificar de modo não ambíguo quem desenvolveu determinado elemento São importantes em situações onde existem elementos com mesmo nome representando diferentes conceitos

73 Utilizando namespaces É necessário declarar o namespace dentro do documento XML xmlns:prefixo= url Onde: xmlns é a declaração de namespaces Prefixo da namespace A URL onde são definidos os elementos e atributos da namespace Utilizando Namespaces Exemplo: <?xml version= 1.0 encoding= UTF-8?> <livraria xmlns:idi= xmlns:ass= htttp://assunto.com/1.0 xmlns= > <livro> <titulo>insede XML </titulo> <autor>steven</autor> <idi:pre_requisito>inglês</pre_requisito> <ass:pre_requisito>banco de dados</pre_requisito> </livro> </livraria>

74 Utilizando namespaces Uma namespace pode ser declarada como default <?xml version= 1.0 encoding= UTF-8?> <livraria xmlns:idi= xmlns:ass= htttp://assunto.com/1.0 xmlns= > <livro> <titulo>insede XML </titulo> <autor>steven</autor> <idi:pre_requisito>inglês</pre_requisito> <ass:pre_requisito>banco de dados</pre_requisito> </livro> </livraria> Utilizando namespaces Atributos podem ter namespaces <?xml version= 1.0 encoding= UTF-8?> <liv:livraria xmlns= > <liv:livro> <liv:titulo liv:ano= 2001 >Insede XML </titulo> <liv:autor>steven</autor> </livro> </livraria>

75 Utilizando namespaces O name da namespace é o URL e não o prefixo Dois elementos com prefixos diferentes, mas associados ao mesmo URL são considerados idênticos O papel da URL é puramente identificar unicamente os elementos ou atributos Utilizando Namespaces O namespace sempre deve ser declarado no documento O namespace é válido para o elemento onde está declarado e em todos os elementos dentro de seu conteúdo DTDs não conhecem namespaces Com o uso de namespaces é possível desenvolver elementos que podem ser reutilizados em diferentes documentos Ex: Em uma empresa, um mesmo documento base pode ser utilizado por diversos departamentos

76 Resumindo Os namespaces XML são um mecanismo para identificar de modo não ambíguo quem desenvolveu determinado elemento São importantes em situações onde existem elementos com mesmo nome representando diferentes conceitos Desenvolvendo Aplicações XML XML Schema

77 XML Schema Proposta da W3C para descrever a estrutura de um documento XML Possui um conjunto de construtores para: Especificar a estrutura das instâncias de documentos esse elemento contém esses elementos, que contém esses outros elementos, etc Os tipos de dados de cada elemento/atributo esse elemento deve ser do tipo inteiro de 0 a 200 XML Schema pode seu usado para definir, descrever e catalogar vocabulários para classes de documentos XML Schema - Motivação DTDs possuem diversos problemas: Diferentes sintaxes Os documentos XML são escritos em uma sintaxe e a DTD em outra sintaxe Tipos de dados limitados Pouquíssimos tipos de dados Não suportam namespaces

78 XML Schema - Vantagens Tipos de dados XML Schema suportam mais de 44 tipos de dados Criação de tipos pelo próprio usuário Mesma Sintaxe Gramática e documentos usando a mesma sintaxe Estilo orientado a objetos Pode se estender ou restringir um tipo Pode expressar conjuntos Pode se definir elementos filhos ocorrendo em qualquer ordem Pode se definir vários elementos com mesmo nome, mas com contextos diferentes XML Schema - Sintaxe Uma especificação em XML Schema sempre inicia com a tag <schema> e termina com a tag </schema> Todas as declarações de elementos, atributos e tipos devem ser inseridas entre estas duas tags

79 XML Schema - Sintaxe Tipos podem ser: Simples ( simpletype) São tipos básicos como string, date, float Complexos ( complextype) Definem a estrutura dos elementos, ou seja, definem características como: Subelementos Atributos Cardinalidades dos subelementos Obrigatoriedade dos atributos XML Schema - Sintaxe Cardinalidade XML Schema permite a definição de cardinalidade para um elemento Atributo minoccurs Determina o número mínimo de ocorrências de um elemento Atributo maxoccurs Determina o número máximo de ocorrências de um elemento

80 XML Schema Declarando Elementos A declaração de um elemento tem como subelemento a definição de um tipo complexo Ex: <xs:element name="livro"> <xs:complextype> <xs:sequence> <xs:element name="titulo" type="xs:string"/> <xs:element name="autor" type="xs:string" maxoccurs="unbounded"/> </xs:sequence> </xs:complextype> </xs:element> XML Schema Declarando Elementos A declaração de um elemento faz referência a definição do seu tipo Ex: <xs:element name="livro"> <xs:complextype> <xs:sequence> <xs:element ref="titulo maxoccurs= 1"/> <xs:element ref="autor" maxoccurs="unbounded"/> </xs:sequence> </xs:complextype> </xs:element> <xs:element name="titulo" type="xs:string"/> <xs:element name="autor" type="xs:string"/>

81 XML Schema Declarando Elementos A declaração de um elemento faz referência a um tipo complexo já definido Ex: <xs:element name="livro type= TipoLivro > <xs:complextype name= TipoLIvro > <xs:sequence> <xs:element name="titulo" type="xs:string"/> <xs:element name="autor" type="xs:string" maxoccurs="unbounded"/> </xs:sequence> </xs:complextype> XML Schema Declarando Elementos A declaração de um elemento tem como subelemento a definição de um tipo simples Ex: <xsd:element name= Idade > <simpletype> <restriction base= integer > <mininclusive= 11 > <maxinclusive= 21 > </restriction> </simpletype> </xsd: element>

82 XML Schema Declarando Elementos Globais Declaração de elementos e tipos são ditas globais quando são filhas imediatas do elemento <schema> Podem ser reusados Locais Declaração de elementos e tipos são considerados locais quando estão aninhados dentro de outros elementos ou tipos Não podem ser reusados XML Schema Declarando Elementos Elementos podem ter um valor fixo (fixed) ou um valor default (default). <element name="zero" fixed="0"/> <zero>0</zero> ou : <zero/> <element name="color" default= azul"/> <color>azul</color> ou : <color/>

83 XML Schema Declarando Elementos Fixed e Default Pode somente usar um ou outro atributo, mas não ambos juntos. Caso eu sete um valor fixo para um elemento, o valor desse elemento sempre será o valor definido no atributo fixed Se eu colocar um valor default para um elemento, garanto que o valor do elemento é o valor default. Porém, caso o elemento apareça no documento, o seu valor atual será o valor que foi colocado no documento XML Schema Declarando Elementos Elemento EMPTY DTD: <!ELEMENT image EMPTY> <!ATTLIST image href CDATA #REQUIRED>

84 XML Schema Declarando Elementos Elemento EMPTY <?xml version="1.0"?> <xsd:schema xmlns:xsd=" targetnamespace=" xmlns=" <xsd:element name= galeria"> <xsd:complextype> <xsd:sequence> <xsd:element name="imagem" maxoccurs="unbounded"> <xsd:complextype> <xsd:attribute name="href" type="xsd:qualquerurl" use="required"/> </xsd:complextype> </xsd:element> </xsd:sequence> </xsd:complextype> </xsd:element> </xsd:schema> Instância : <image href = XML Schema Declarando Elementos Elementos do tipo Any Permite que um documento(instância) seja estendido com elementos não especificados no Schema Ex: <xsd:element name= livraria"> <xsd:complextype> <xsd:sequence> <xsd:element name= titulo" type="xsd:string"/> <xsd:element name= autor" type="xsd:string"/> <xsd:element name= data" type="xsd:string"/> <xsd:element name="isbn" type="xsd:string"/> <xsd:element name= editora" type="xsd:string"/> <xsd:any minoccurs="0"/> </xsd:sequence> </xsd:complextype> </xsd:element>

85 XML Schema Declarando Elementos Definindo elementos com conteúdo misto Pode-se criar elementos que suportam conteúdo misto, ambos texto e outros elementos. Dados de caracteres podem aparecer no mesmo nível dos elementos filho. É definido através do uso do atributo content, cujo valor deve ser mixed XML Schema Declarando Elementos Exemplo: <xsd:element name= NomeEelemento > <xsd:complextype content= mixed >.... </xsd:complextype> </xsd:element>

86 XML Schema Declarando Elementos Outros valores para o atributo content elementonly O modelo default para tipos complexos é chamado elementonly, o que significa que o tipo pode incluir somente elementos textonly O modelo de conteúdo textonly especifica que o conteúdo dos elementos deste tipo é texto XML Schema - Anotações Em DTDs, pode-se usar comentário para sadicionar anotações e provê documentação Em XML Schema, você pode esperar uma situação que deverá ser um pouco mais complexa. XML Schemas definem três novos elementos que é usado para adicionar anotações para o esquema <xsd:annotation> <xsd:documentation> <xsd:appinfo>

87 XML Schema - Anotações O elemento <xsd:annotation> contêm os elementos <xsd:documentation> e <xsd:appinfo> O elemento <xsd:documentation> contempla texto do tipo que você esperava ver em um comentário normal O elemento <xsd:appinfo>, por outro lado, mantêm informações que são utilizadas por outras aplicações que lêem o documento XML Schema - Anotações Exemplo do <xsd:documentation> : <xs:annotation> <xs:documentation> Comentário... </xs:documentation> </xs:annotation>

88 XML Schema - Anotações Exemplo do <xsd:appinfo> <xs:annotation> <xs:appinfo>... <has-facet name="lenght"/>... </xs:appinfo> </xs:annotation> XML Schema e Namespaces O atributo targetnamespace especifica o namespace para qual o esquema é direcionado A idéia de targetnamespace é que você possa indicar que namespace um esquema é direcionado para que um processador XML determine qual esquema(s) é usado para validar o documento

89 XML Schema e Namespaces Pode-se especificar se os elementos a atributos que foram declarados localmente no esquema precisam ser qualificados quando usados na namespace. XML Schema permite indicar se locais necessitam ser qualificados quando usados em um documento XML Schema e Namespaces <?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:xs=" xmlns=" targetnamespace=" elementformdefault= unqualified" > No documento XML, somente os elementos declarados globalmente precisam utilizar o prefixo t, conforme vemos abaixo: <?xml version="1.0" encoding="utf-8"?> <t:livraria xmlns:t=" "

90 Complex Type ou Simple Type Complex Type Usa quando se quer definir elementos filhos ou atributos em um elemento Simple Type Usa quando se quer criar um novo tipo que é um refinamento de um tipo básico Documento XML usando XML Schema <?xml version="1.0" encoding="utf-8"?> <Livraria xmlns:xsi=" xsi:nonamespaceschemalocation="c:\arquivos de programas\altova\xml Spy Suite\Examples\Livraria\Livraria1.xsd"> <Livro ano="2001"> <Titulo>Inside XML</Titulo> <Autor>Steven Holzner</Autor> <Editora>McMilin</Editora> <Preço>R$150,00</Preço> </Livro> </Livraria>

91 Derivação de Tipos XML Schema possui um mecanismo de derivação de tipos, permitindo a criação de novos tipos a partir de outros existentes A derivação pode ser feita de duas formas: Restrição Extensão Derivação de Tipos Tipo Simples (simpletype) Só podem ser derivados por restrição, aplicando-se facetas a um tipo básico Tipo Completo (complextype) Podem ser derivados por restrição ou extensão Restrição Ex: Permite restringir a cardinalidade de um subelemento Extensão Ex: Adiciona características a um tipo(herança)

92 Derivação de Tipos -Tipos Simples Facetas do tipo String length minlength maxlength pattern Enumeration mininclusive maxinclusive Derivação de Tipos -Tipos Simples Exemplo 1: <xsd:simpletype name= NumeroTelefone"> <xsd:restriction base="xsd:string"> <xsd:length value="8"/> <xsd:pattern value="\d{3}-\d{4}"/> </xsd:restriction> </xsd:simpletype>

93 Derivação de Tipos -Tipos Simples Exemplo 2: <xsd:simpletype name= BandeiraBR"> <xsd:restriction base="xsd:string"> <xsd:enumeration value= verde"/> <xsd:enumeration value= amarelo"/> <xsd:enumeration value= azul"/> <xsd:enumeration value= branco"/> </xsd:restriction> </xsd:simpletype> Derivação de Tipos -Tipos Simples Facetas do tipo Integer pattern enumeration maxinclusive mininclusive

94 Derivação de Tipos -Tipos Simples Exemplo 3: <xsd:simpletype name= temperatura"> <xsd:restriction base="xsd:integer"> <xsd:mininclusive value="-30"/> <xsd:maxinclusive value= 40"/> </xsd:restriction> </xsd:simpletype> Utilizando o novo tipo <xsd:element name= temp type= temperatura /> Derivação de Tipos -Tipos Complexos Derivados por extensão <xsd:complextype name= Artigo"> <xsd:sequence> <xsd:element name="titulo" type="xsd:string" maxoccurs="unbounded"/> <xsd:element name="autor" type="xsd:string" maxoccurs="unbounded"/> <xsd:element name="data" type="xsd:gyear"/> </xsd:sequence> </xsd:complextype > <xsd:complextype name= LivroArtigo"> <xsd:complexcontent> <xsd:extension base= Artigo"> <xsd:sequence> <xsd:element name="isbn" type="xsd:string"/> <xsd:element name= Editora" type="xsd:string"/> </xsd:sequence> </xsd:extension> </xsd:complexcontent> </xsd:complextype >

95 Derivação de Tipos -Tipos Complexos Derivados por restrição <xsd:complextype name= Artigo"> <xsd:sequence> <xsd:element name="titulo" type="xsd:string" maxoccurs="unbounded"/> <xsd:element name="autor" type="xsd:string" maxoccurs="unbounded"/> <xsd:element name="data" type="xsd:gyear"/> </xsd:sequence> </xsd:complextype> <xsd:complextype name= UmAutorArtigo"> <xsd:complexcontent> <xsd:restriction base= Artigo"> <xsd:sequence> <xsd:element name="titulo" type="xsd:string" maxoccurs="unbounded"/> <xsd:element name="autor" type="xsd:string"/> <xsd:element name="data" type="xsd:gyear"/> </xsd:sequence> </xsd:restriction> </xsd:complexcontent> </xsd:complextype> Derivação de Tipos -Tipos Complexos Proibindo: Derivação <xsd:complextype name= artigo final= #all > Restrição <xsd:complextype name= artigo final= restriction > Extensão <xsd:complextype name= artigo final= extension >

96 XML Schemas - Grupos Grupos especificam restrições sobre um conjunto fixo de subelementos, podem ser de três tipos: Sequence Todos os elementos pertencentes a ele devem aparecer na ordem em que foram definidos e nenhum pode ser omitido Choice Apenas um dos elementos pertencentes ao grupo deverá aparecer em uma instância XML All Os elementos podem aparecer em qualquer ordem e podem ser repetidos ou omitidos XML Schema usando choice e sequence <?xml version="1.0"?> <xsd:schema xmlns:xsd=" <xsd:element name= vida"> <xsd:complextype> <xsd:sequence minoccur="0" maxoccur="unbounded"> <xsd:sequence minoccurs="0" maxoccurs="unbounded"> <xsd:element name= trabalhar" type="xsd:string"/> <xsd:element name= comer" type="xsd:string"/> </xsd: sequence> <xsd:choice minoccurs="0" maxoccurs="unbounded"> <xsd:element name= estudar" type="xsd:string"/> <xsd:element name= passear" type="xsd:string"/> </xsd:choice> <xsd:element name= dormir" type="xsd:string"/> </xsd:sequence> </xsd:complextype> </xsd:element> </xsd:schema>

97 XML Schema- Usando ALL <?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:xs=" <xs:element name="livraria"> <xs:complextype> <xs:sequence> <xs:element name="livro" minoccurs="0" maxoccurs="unbounded"> <xs:complextype> <xs:all> <xs:element name="titulo" type="xs:string"/> <xs:element name="autor" type="xs:string" /> <xs:element name="editora" type="xs:string"/> </xs:all> </xs:complextype> </xs:element> </xs:sequence> </xs:complextype> </xs:element></xs:schema> XML Schema Declarando Atributos Os atributos de um ComplexType são declarados através da tag <attribute> e devem ser do tipo simpletype Um atributo pode ser declarado como opcional através da cláusula use. Os valores permitidos por esse cláusula são: Required(obrigatório) Optional(opcional) Fixed(fixo) Neste caso deve-se dizer o valor default do atributo utilizando a cláusula value

98 XML Schema Declarando Atributos Exemplo 1: <xsd:complextype> <xsd:sequence> <xsd:element name= titulo type= xsd:string /> </xsd:sequence> <xsd:attribute name= isbn type= xsd:string /> <xsd:complextype> XML Schema Declarando Atributos Exemplo 2: <xsd:element name= Livraria"> <xsd:complextype> <xsd:sequence> <xsd:element name= Livro" maxoccurs="unbounded"> <xsd:complextype> <xsd:sequence> <xsd:element name="titulo" type="xsd:string"/> <xsd:element name="autor" type="xsd:string" maxoccurs="unbounded"/> </xsd:sequence> <xsd:attributegroup ref= AtributosLivro"/> </xsd:complextype> </xsd:element> </xsd:sequence> </xsd:complextype> </xsd:element> (Continua)

99 XML Schema Declarando Atributos Continua (Exemplo 2) <xsd:attributegroup name=" AtributosLivro "> <xsd:attribute name="category" use="required"> <xsd:simpletype> <xsd:restriction base="xsd:string"> <xsd:enumeration value= não-ficção"/> <xsd:enumeration value="ficção"/> </xsd:restriction> </xsd:simpletype> </xsd:attribute> <xsd:attribute name= EmEstoque" type="xsd:boolean" default="false"/> </xsd:attributegroup> XML Schema Declarando Atributos O elemento <anyattribute> permite que documentos sejam estendidos como novos atributos não especificados no Schema. <xsd:element name= livro"> <xsd:complextype> <xsd:sequence> <xsd:element name= titulo" type="xsd:string"/> <xsd:element name= autor" type="xsd:string"/> <xsd:element name= data" type="xsd:string"/> <xsd:element name="isbn" type="xsd:string"/> <xsd:element name= editora" type="xsd:string"/> <xsd:any minoccurs="0"/> </xsd:sequence> <xsd:anyattribute/> </xsd:complextype> </xsd:element>

100 XML Schema Declarando Atributos Observações sobre atributos: A declaração de atributos deve vir depois da declaração de elementos Os atributos definidos internos a um elemento sempre dizem respeito à apenas esse elemento XML Schema Definição de grupos XML Schema permite que o usuário defina grupos de elementos e atributos ou apenas de atributos, e posteriormente, referencie o grupo definido

101 XML Schema Definição de grupos Exemplo <complextype name= tendereço >... <group ref= gendereço />... </complextype> <group name= gendereço > <element name= rua type= string /> <element name= número type= string /> <element name= bairro type= string /> </group> Restrições de Integridade XML tem se tornado um formato universal para representação e troca de informações na WEB Em muitas aplicações, os dados XML são gerados de fontes já existentes ( isto é, relacional, orientada a objeto, sistemas de arquivos, etc)

102 Restrições de Integridade XML deve especificar certas restrições de integridade sobre os dados coerentes com as restrições especificadas nas fontes de origem Restrições de integridade são muito importantes para a especificação da semântica, controle de consistência, preservação da informação e integração de fontes de informação São, portanto, elementos fundamentais nas modernas linguagens de definição de esquema Restrições de Integridade Em DTDs As restrições de integridade são definidas pelos atributos ID(identificadores),IDREF e IDREFS(referenciais). Os valores de todos os atributos identificadores têm que ser distintos em todo o documento, etodas as referências devem conter identificadores existentes, porém, nenhuma restrição ao tipo do elemento referenciado é imposta. Portanto, este mecanismo de restrição é muito fraco

103 Restrições de Integridade Em DTDs Exemplo: Um elemento estudante com atributo cpf do tipo ID foi declarado, um elemento professor não poderá ter o cpf como um atributo do tipo ID, pois pode existir um estudante que também é professor e assim, existiriam dois atributos do tipo ID com o mesmo valor Restrições de Integridade XML Schema oferece, além do mecanismo de restrição da DTD, dois outros mecanismos de restrições de integridade Unique Key- keyref

104 Restrições de Integridade Essas restrições de integridade oferecem vantagens em relação à restrição da DTD: Podem ser aplicadas tanto em elementos como em atributos Podem ser aplicadas a mais de um elemento ou atributo Permitem limitar o escopo, no qual o valor do elemento ou do atributo deve ser único, ou deve referenciar Restrições de Integridade Restrição Unique e Key XML Schema permite indicar que o valor de qualquer elemento ou atributo deve ser único dentro de um determinado escopo (restrição de unicidade), além de único, pode ser referenciado (restrição de chave) Por declarar que o valor de um elemento ou atributo deve ser único, utiliza-se o elemento unique. Para declarar que o valor de um elemento ou atributo, além de ser único, pode ser referenciado, utiliza-se o elemento key

105 Restrições de Integridade Modelo de como as restrições de chave e unicidade podem ser usadas: <unique key name= nome > <selector xpath= caminho escopo > <field xpath= campo1 >... <field xpath= campon > </unique key> Restrições de Integridade Como podemos observar, os elementos unique e key contêm: Um atributo name, que identifica unicamente a restrição Um elemento selector, que especifica uma expressão de caminho que identifica um elemento multi ocorrência para o qual a restrição é declarada Um ou mais elementos field, que especifica expressões de caminho relativas a cada elemento selecionado pele selector. Cada expressão deve identificar um elemento mono ocorrência ou atributo monovalorado, cujo conteúdo ou valor, que deve ser do tipo simples, é utilizado na restrição

106 Restrições de Integridade Exemplo : key <key name= chave_livro > <selector xpath= livaria/livro /> <field xpath= titulo /> </key> Restrições de Integridade Restrição referencial XML Schema permite declarar, através do elemento keyref, que o valor de um determinado elemento ou atributo é uma referência ao valor de um outro elemento ou atributo

107 Restrições de Integridade Modelo de como a restrição de integridade é especificada: <keyref name= nome refer= referencia > <selector xpath= caminho > <field xpath= campo1 >... <field xpath= campon > </keyref> Restrições de Integridade O elemento keyref contém: Um atributo name, que identifica unicamente a restrição Um atributo refer, que identifica o nome restrição de chave associada a referência Um elemento selector, que especifica uma expressão de caminho que identifica um elemento multi ocorrência para qual a restrição é declarada Um ou mais elementos field, que especifica expressões de caminho relativas a cada elemento selecionado pelo selector. Cada expressão deve identificar um elemento mono ocorrência ou atributo monovalorado, cujo conteúdo ou valor, que deve ser do tipo simples, é utilizado na restrição

108 Restrições de Integridade Exemplo : keyref <keyref name= autor refer= chave_livro > <selector xpath= livaria/autor /> <field xpath= nome /> </keyref> XML Schema Exercício(1) Construir um XML Schema para o seguinte DTD <!ELEMENT Livraria (Livro*)> <!ELEMENT Livro (Titulo, Autor+, Editora, Preço)> <!ATTLIST Livro ano CDATA #REQUIRED > <!ELEMENT Autor (#PCDATA)> <!ELEMENT Titulo (#PCDATA)> <!ELEMENT Editora (#PCDATA)> <!ELEMENT Preço (#PCDATA)>

109 XML Schema Exercício(2) Crie uma XML Schema que valide este documento: <?xml version= 1.0?> <livro autor= Steven > <titulo>inside XML</titulo> <capítulo id= a1 >Sobre o Cap. 1</capítulo> <capítulo id= a2 >Sobre 0 Cap. 2</capítulo> <preço> R$ 150,00 </preço> </livro> XML Schema Exercício(3) Construir um XML Schema para o seguinte DTD: <?xml version="1.0" encoding="utf-8"?> <!ELEMENT hierarquia (empregado)*> <!ELEMENT empregado (nome)> <!ELEMENT nome (#PCDATA)> <!ATTLIST empregado id ID #REQUIRED chefe IDREF #IMPLIED subordinado IDREFS #IMPLIED >

110 XML Schema Exercício(4) Construir um XML Schema que valide este documento: <?xml version="1.0"?> <catalogo> <cd ano="2002"> <titulo>dança</titulo> <artista>rei do sucesso</artista> <gravadora>emi</gravadora> <faixas> <faixa>boa</faixa> <faixa>melhor</faixa> </faixas> <preco>10.00</preco> </cd> </catalogo> XML Schema Exercício(5) Construir um XML Schema para o seguinte DTD de inoformações da universidade <?xml version="1.0" encoding="utf-8"?> <!ELEMENT universidade (nome,endereco,departamentos)> <!ELEMENT departamentos (departamento+)> <!ELEMENT departamento (nome,telefone,professores+,cursos+)> <!ELEMENT professores (professor+)> <!ELEMENT professor (nome, area,titulacao,nivel)> <!ELEMENT cursos (curso+)> <!ELEMENT curso (nome, dt_reconhecimento)> <!ELEMENT nome (#PCDATA)> <!ELEMENT dt_reconhecimento (#PCDATA)> <!ELEMENT area (#PCDATA)> <!ELEMENT titulacao (#PCDATA)> <!ELEMENT nivel (titular adjunto assistente)> <!ELEMENT titular (#PCDATA)> <!ELEMENT adjunto (#PCDATA)> <!ELEMENT assistente (#PCDATA)> <!ELEMENT telefone (#PCDATA)> <!ELEMENT endereco (rua,cidade,cep)> <!ELEMENT rua (#PCDATA)> <!ELEMENT cidade (#PCDATA)> <!ELEMENT cep (#PCDATA)>

111 O que já foi visto? Introdução a XML Documentos XML DTDs Namespaces XML Schema Desenvolvendo Aplicações XML XPath

112 Introdução É uma linguagem para referenciar partes de um documento XML Projetada para ser usada por XSLT e XPointer Também fornece facilidades básicas para manipulação de strings, números e booleanos XPath modela um documento XML como uma árvore de nodos: nodos elementos, nodos atributos, nodos texto, etc Introdução XPath: explora o contexto hierárquico e seqüencial de elementos em um documento XML para localizar um elemento de interesse. Ex: selecionar o primeiro parágrafo em cada capítulo de um livro, a fim de dar um estilo diferente (usando XSLT), criar um link hipertexto para o parágrafo que é separado do parágrafo corrente por cinco objetos intermediários (usando Xpointer), e recuperar uma lista de todos os nomes de autores que aparecem na bibliografia de um livro (usando XQL)

113 Introdução Expressões podem ser usadas para selecionar elementos, atributos, comentários, instruções de processamento, seqüência de texto entre elementos, etc XPath usa expressões: strings com símbolos significativos; instruções para selecionar um elemento, atributo, seqüência de texto, etc. Ex: identifica o elemento Title que é filho direto de um elemento book book/title Operadores e caracteres especiais / // Operador de filho; seleciona os filhos imediatos da coleção do lado esquerdo. Quando este caminho aparece no início de uma expressão ele indica que os filhos devem ser selecionados a partir do nó raiz. Pesquisa pelo elemento especificado em qualquer profundidade. Quando este operador aparece no início da expressão, ele indica descendência recursiva relativa ao nó raiz

114 Operadores e caracteres especiais. Indica o contexto corrente Curinga; seleciona todos os elementos independentemente do nome Atributo; prefixo para nome de um atributo Operadores e caracteres especiais : () [] + Separador de namespaces; separa o prefixo do namespace do nome do elemento ou atributo Operações de grupo; para explicitamente estabelecer precedência de operadores Aplica uma expressão de filtro Executa adição

115 Operadores e caracteres especiais - Executa subtração Div Executa divisão (floating-point division according to IEEE 754) * Executa multiplicação Mod Retorna o resto da divisão Ordem de precedência Da maior precedência para a menor: Agrupamentos Ex: () Filtros Ex: [] Operações de caminho Ex: // Obs:Note que os operadores de padrão de filtro (os colchetes) tem uma precedência maior que os operadores de caminho (as barras)

116 Operadores de caminho A coleção de elementos de um certo tipo pode ser determinada usando os operadores de caminho (/ e //) Estes operadores recebem como argumentos uma coleção do "lado esquerdo" na qual será feita a seleção e uma coleção do "lado direito", indicando quais elementos selecionar Operadores de caminho O operador filho (/) seleciona do filho imediato da coleção do lado esquerdo, enquanto o operador // seleciona dos descendentes arbitrários da coleção do lado esquerdo. // pode ser considerado como um substituto de um ou mais níveis de hierarquia

117 Operadores de caminho Exemplo(1) Encontrar todos os elementos Autor dentro de um elemento Livro. Note que o filho Livro do contexto corrente é encontrado, e então o filho Autor é encontrado, relativo ao contexto do elemento Livro. //Livro[@ano='2001']//Autor Operadores de caminho Exemplo(2) Encontrar todos os elementos título em um ou mais níveis de profundidade na livraria (descendentes arbitrários): Livraria//Titulo

118 Operadores de caminho Exemplo(3) Este exemplo é diferente do anterior,pois aqui é procurado todos os elementos título que são netos do elemento livraria Livraria/*/Titulo Operadores de caminho Exemplo(4) Encontra todos os elementos título em um ou mais níveis de profundidade no contexto corrente. Note que esta situação é essencialmente a única onde o ponto final é necessário..//titulo

119 Caracter coringa (Wildcards) Quando os nomes de elementos entre o elemento contexto e o descendente requerido não é conhecido. * qualquer nome de elemento Ex: selecionar títulos de capítulos e da introdução livro/introdução/título livro /capítulo/ título livro /*/ título Caracter coringa (Wildcards) Essa abordagem pode ser perigosa: o exemplo anterior pode selecionar títulos em outras estruturas, tal como um elemento apêndice que segue os elementos capítulo. Pode-se usar vários * para indicar diferentes níveis (mas é necessário saber em qual nível de profundidade está o elemento requerido)

120 Caracter coringa (Wildcards) Mas e se o elemento requerido existe em diferentes níveis na estrutura do documento?? Para isso, facilidade mais poderosa: // seleciona todos os descendentes capítulo //para <capítulo> <para>...</para> <nota> <para>...</para> </nota> <capítulo> Seleciona todos os para que ocorrem em qualquer lugar dentro de capítulo Atributos XPath denota nomes de atributos com o Atributos não podem conter elementos filhos, então erros de sintaxe ocorrem quando operadores de caminho são aplicados à atributos Além disso, você não pode aplicar um índice a atributos pois, por definição, nenhuma ordem é definida para atributos

121 Atributos Exemplo(1) Encontra o atributo ano do elemento Livro dentro do contexto atual: Livro/@ano Atributos Exemplo(2) O seguinte exemplo não é válido: Livro/@ano/mes

122 Atributos Exemplo(3) Procurando múltiplos atributos Todos os atributos de um elemento podem ser retornados usando Encontra todos os atributos no contexto do elemento Xpath Pode-se selecionar pai, filhos e irmãos, usando as expressões: parent::, child::, preceding-sibling:: e followingsibling:: Irmãos que aparecem antes do elemento contexto Seleciona o parágrafo imediatamente anterior ao parágrafo corrente: preceding-sibling::para[1] <para>parágrafo Alvo</para> <--SELECIONA <note>a note</note> <para>parágrafo Pesquisado</para> <--CORRENTE

123 XPath Irmãos que aparecem depois do elemento contexto Seleciona o próximo elemento parágrafo: following-sibling::para[1] <para>parágrafo Alvo</para> <--CORRENTE <note>a note</note> <para>parágrafo Pesquisado</para> <--SELECIONA XPath Pode-se pesquisar ancestrais e descendentes, usando as funções: ancestor:: e descendant:: O nodo corrente pode ser selecionado usando self:: Os atributos do nodo contexto podem ser selecionados usando attribute::. Ex: attribute::*

124 Filtro de Predicado Usados para remover itens indesejados de uma lista para criar uma nova lista ] Seleciona todos os Livro da Livraria, mas pode ser necessário selecionar somente os Livros publicados no ano 2001: um filtro pode ser usado para remover itens não desejados nesta lista. Usa "[" e "]" para manipular o predicado. Os resultados do teste são um valor booleano, e a seleção só ocorre quando o valor é true Teste de Posição Função position() retorna a localização sequencial do elemento testado Exemplo: Selecione o segundo livro da livraria Livraria/Livro[position()=2]

125 Funções de conjunto de nós Last() Para localizar o último irmão, quando o número de elementos na lista é desconhecido Livraria/Livro[last()] Aplica ao último livro Funções de conjunto de nós Count() função count() descobre quantas ocorrências de um elemento particular há no documento Ex:Livraria/Livro[count(Autor)=1] Seleciona livros que contém só um autor

126 Funções de conjunto de nós ID() função id() seleciona um elemento pelo seu identificador Ex: Livraria/Livro[id( a123 )] Teste de elementos contidos O nome de um elemento pode aparecer representando um elemento que deve estar presente como um filho Ex: Livraria/Livro[Autor] Um elemento Livraria/Livro só é selecionado se ele contém diretamente um elemento autor Não confundir com //Livro/Autor", o qual seleciona os elementos Autor"que são filhos de Livro"

127 Testando o valor do elemento O valor de um elemento pode ser testado: Ex:Livraria/Livro[Titulo='Inside XML'] Seleciona o livro cujo título é Inside XML Testando o valor de um atributo Seleciona todo Livro cujo o valor do atributo ano é maior ou igual a 2000 Ex://Livro[@ano>= 2000 ]

128 Testes boleanos Função not() para reverter o resultado do teste //Livro[not(position() = 3)] //Livro[not(@ano='2001')] Resultados: Todos os Livros, exceto o terceiro Todos os Livros publicados em um ano diferente de Comparações seleciona todos Livros, mas não o último Ex: //Livro[position()!= last()] Outras comparações: //Livro[position()>2] //Livro[position()>=3] //Livro[position()>2 and position() < last()] //Livro[position()=2 or position() = 4]

129 Funções de String Função contains() retorna true se a primeira string contém a segunda Teste o elemento Titulo para ver se ele contém a palavra XML' Ex: //Livro/Titulo[contains(., 'XML')] Resultado <Titulo>Inside XML</ Titulo > <Titulo>Modeling XML Applications with UML </ Titulo > Funções de String Função starts-with() O texto precisa aparecer no começo da string Ex: //Livro/Titulo[starts-with(., 'Inside')] Resultado <Titulo> Inside XML</ Titulo >

130 Funções de String Função substring-before() retorna a substring (do prim. arg.) que precede a prim. ocorrência do seg. arg. Parâmetros: a string de onde será extraído o texto, os caracteres que terminam o prefixo a serem extraídos Para recuperar "1999": Ex: substring-before("1999/04/01","/") Funções de String Função substring-after() retorna a substring (do prim. arg.) que segue a prim. ocorrência do seg. arg. Para recuperar 04/01": Ex: substring-after("1999/04/01","/")

131 Funções de String Função substring() extrai qualquer fragmento de uma string Parâmetros: a string fonte, posição de deslocamento, número de caracteres a extrair Ex://Livro/Titulo[substring(.,8,3)='XML'] <Titulo>Inside XML</Titulo > <--SELECIONA! <Título>O melhor de XML</ Título > Funções de String Função normalize() remove espaços no início e final, e reduz vários white spaces para um único caractere espaço Ex:note[starts-with(normalize(.), "Hello there")]

132 Funções de String Função concat() concatena strings. Pode ter um ou mais parâmetros strings Ex:concat (., Isso", e isto") Funções de String Função string-length() determina o número de caracteres em uma string Ex://Titulo[string-length(.)=10] Elementos válidos <Titulo>Inside XML</Titulo>

133 Funções numéricas Função round() Converte reais para o inteiro mais próximo equivalente //Titulo[string-length(.)=round(10.4)] <Titulo>Inside XML</Titulo> Função floor() Converte reais para o inteiro inferior mais próximo equivalente //Titulo[string-length(.)=floor(12.4)] <Titulo>UMLEssencial</Titulo> Função ceiling() Converte reais para o inteiro superior mais próximo equivalente //Titulo[string-length(.)=ceiling(11.4)] <Titulo>UMLEssencial</Titulo> Funções numéricas Operadores + e - podem ser usados: Ex:Livro[3] é equivalente a Livro[1 + 2] Função mod() Fornece o resto de uma divisão Seleciona parágrafos pares: Ex://Livro[position()mod(2)='0']

134 Exercícios Realize as seguintes consultas utilizando os operadores XPath ( Teste os resultados no consultor interativo de expressões XPath) Encontre todos livros da editora Addison- Wesley Mostre os títulos dos livros que foram publicados no ano 2000 Utilizando *, //, caminho completo Exercício Realize as seguintes consultas utilizando os operadores XPath ( Teste os resultados no consultor interativo de expressões XPath) Selecione os livros que contém mais de um autor Selecione todos os livros que tem o atributo ano Utilizando a função not, selecione todos os livros, menos o segundo

135 Exercício Realize as seguintes consultas utilizando os operadores XPath ( Teste os resultados no consultor interativo de expressões XPath) Selecione o livro que está na posição 3 ou 5 Selecione todos os livros menos o último e o primeiro Selecione os livros cujo o título tenho a palavra UML Exercício Realize as seguintes consultas utilizando os operadores XPath ( Teste os resultados no consultor interativo de expressões XPath) Selecione o livro cujo título comece com a a palavra Moderns Faça uma seleção utilizando a função substring, tal que retorne o livro cujo título é UML Essencial

136 Exercício Realize as seguintes consultas utilizando os operadores XPath ( Teste os resultados no consultor interativo de expressões XPath) Selecione livros, utilizando a função stringlength, tal que o tamanho do nome da editora seja maior que 8. Realize alguma seleção, tal que seja necessário utilizar alguma função numérica O que já foi visto? Introdução a XML Documentos XML DTDs Namespaces XML Schema XPath

137 Desenvolvendo Aplicações XML XSLT (XML Style Language Transformation) Folhas de estilo O W3C publicou duas recomendações para folhas de estilo CSS Cascade Style Sheet XSL XML Style Language As instruções de estilo são derivadas diretamente da estrutura do documento Para visualizar documentos XML precisamos formatá-los ou estilizá-los

138 CSS Foi desenvolvido originalmente para HTML Não pode mudar a ordem ou omitir informações de um documento XML, apenas transforma. Basicamente é um conjunto de regras que diz ao navegador qual fonte, estilo e margem devem ser usados para exibir o documento CSS Propriedades de formatação foram copiadas pela XSL Uma vez conhecendo CSS o entendimento de XSL é mais fácil

139 CSS Formato ASCII - Utilização de qualquer editor de texto (extensão.css) Contrariamente ao XSL não utiliza construtores XML, e sim formatos próprios Um arquivo CSS é composto de no mínimo uma regra de estilo Uma regra é uma especificação de estilo para um elemento ou grupo de elementos Uma regra inicia com um seletor, que no caso mais simples é o nome de um elemento. Exemplo: title {...} CSS Estilos podem ser aplicados a parte do conteúdo do elemento. Exemplo: title: first- line{...} A definição de estilo consiste de no mínimo uma declaração, tal como um tamanho de fonte, nome. Uma declaração é composta pelo nome e o valor, sendo separados por um ":". Exemplo : title{ font- size: 32pt}

140 CSS Múltiplas declarações são separadas por ";". Exemplo:title{ font- size: 32pt; color: blue} Comentários: title{ font- size: 32pt; color: blue} /* Texto formatado em azul */ Valores RGB podem ser usados: title{ font- size: 32pt; color:# 8000FF}/* Texto formatado com RGB */ CSS Propiedades de estilo Estilos de fonte Exemplo: Arial, sans- serif... Cores de fontes e fundo; Imagens de fundo Estilos de texto. Identação da primeira linha, espaçamento entre palavras e letras,etc. Bordas

141 CSS -Exemplo <?xml version="1.0"?> <!DOCTYPE concessionaria SYSTEM "carros.dtd"> <?xml-stylesheet type="text/css" href="carros.css"?> <concessionaria> <carro tipo="popular"> <modelo>palio ED</modelo> <fabricante>fiat</fabricante> <preco>10.000</preco> <cor>vermelho</cor> <ano>1997</ano> </carro> <carro tipo="popular"> <modelo>palio EX</modelo> <fabricante>fiat </fabricante> <preco>12.000</preco> <cor>verde</cor> <ano>1999</ano> </carro> </concessionaria> carros.xml CSS -Exemplo modelo{ COLOR: red; DISPLAY: block; FONT-FAMILY: 'Arial Black', Arial; WHITE-SPACE: pre} fabricante{ COLOR: blue; DISPLAY: block; FONT-FAMILY: Arial; FONT-SIZE: 10pt; FONT-WEIGHT: bold;} cor{ COLOR: blue; DISPLAY: block; FONT-FAMILY: Arial; FONT-SIZE: 10pt; FONT-WEIGHT: bold;} ano{ COLOR: blue; DISPLAY: block; FONT-FAMILY: Arial; FONT-SIZE: 10pt; FONT-WEIGHT: bold; MARGIN-BOTTOM: 10px} preco{ COLOR: black; FONT-FAMILY: Arial; FONT-SIZE: 10pt} carros.css

142 CSS-Exemplo Resultado: HTML formatando XML <html> <head> <title>concessionária</title> </head> <body> <xml src="carros.xml" id="xmldso" async="false"></xml> <table datasrc="#xmldso" border="1"> <thead> <th>modelo</th> <th>fabricante</th> <th>preco</th> <th>cor</th> <th>ano</th> </thead> <tr align="left"> <td><div datafld="modelo"></div></td> <td><div datafld="fabricante"></div></td> <td><div datafld="preco"></div></td> <td><div datafld="cor"></div></td> <td><div datafld="ano"></div></td> </tr> </table>

143 HTML formatando XML Resultado: XSL XSL consiste de duas partes: XSLT XSL Transformation ( método para transformar documentos XML) XSLFO XSL Formatting Objects ( método para formatar documentos XML)

144 XSLFO A W3C definiu objetos de formatação como root, block e character que suportam diferentes propriedades tais como font-weidth, line-height e border. Usando estes objetos predefinidos, pode-se especificar a exata formatação para o documento XSLFO Existem 56 objetos de formatação e 177 propriedades que se aplicam a esses objetos. Cada um destes objetos tem sua própria tag XML, e as propriedades que suportam são atributos destas tags

145 XSLT É uma linguagem para especificar a transformação de documentos XML Documento XML Processador XSL Documento resultante Folha de estilo XSLT XSLT Com XLST, ente outras coisas, podemos: Transformar dados que poderão então ser utilizados por sistemas muito diferentes. XSL Transformations são insuperáveis ao transformar uma representação baseada na XML em outra. Por exemplo, um vendedor de livros deve visualizar um pedido de um cliente em um determinado esquema enquanto o fornecedor deve representar esta mesma informação em outro esquema. Com XSLT, um pedido de um cliente feito pelo vendedor pode ser transformado em outra representação que se adapta ao esquema usado pelo fornecedor. Continua

146 XSLT Transformar dinamicamente documentos XML em formatos da Web. São indispensáveis para transformar dados que podem ser representados nos novos dispositivos do mercado, incluindo HandHelds, Celulares e aparelhos de TV devidamente configurados. Transformar dinamicamente dados XML em uma variedade de mídias. Incluindo documentos HTML, Imagens e o formato PDF para impressão. Filtrar dinamicamente informações. Com a XSLT é possível apresentar apenas dados específicos a um determinado usuário ou grupo de usuários. Por exemplo, os usuários especiais tem acesso a conjuntos restritos de dados e todos os outros, acessam apenas parte dos dados XSLT (Exemplo) <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl=" xmlns=" <xsl:template match="/"> <html> <title> Exemplo 1 - Utilizando Repetções </title> <body> <p><font color="#000080" face="arial" size="5">exemplo 1 - XSLT Repetição</font></p> <table border="2" bgcolor="white"> <tr bgcolor="blue"> <th>titulo</th> <th>preço</th> </tr> (Continua )

147 XSLT (Exemplo) (Continua ) <xsl:for-each select="livraria/livro" order-by="+titulo"> <tr> <td><xsl:value-of select="titulo"/></td> <td><xsl:value-of select="preço"/></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet> Elemento da folha de estilo A folha de estilo é um documento XML bemformado O elemento de nível superior de uma folha de estilo é: <xsl:stylesheet version="1.0" xmlns:xsl=" xmlns=" xsl:stylesheet é o elemento raiz de um documento XSLT. version é o atributo que identifica a versão da XSLT a ser usada, 1.0 atualmente. E, é neste elemento que colocamos o Namespace para atribuir o vocabulário da XSLT ao o prefixo xsl

148 Elemento da folha de estilo Como a folha de estilo contém elementos de documentos diferentes, os namespaces são usados para organizar esses documentos xsl é o namespace usado para o vocabulário xsl Seu URL deve ser= O documento resultante possui outro namespace( neste caso está ligado a HTML 4.0) Elemento da folha de estilo <xsl:output method="html" omit-xmldeclaration="yes" indent="yes"/> Este elemento opcional define o formato do documento resultante. O Atributo method indica qual formato deve ser adotado na hora de exibir o documento de saída. omit-xml-declaration não insere a Processing Instruction da XML no resultado, é usada principalmente para formatos diferentes da própria XML. indent grava a estrutura do resultante com as quebras de linha utilizadas no documento XSLT

149 Elementos do Modelo O núcleo da folha de estilos é uma lista de modelos <xsl:template match= / >. </xsl:template> Em xsl:template montamos o molde e estrutura do nosso documento resultante, pois é o que vamos visualizar posteriormente no nosso browser. O atributo match indica o ponto de partida dentro do documento XML, uma expressão XPath é utilizada. Indicamos aqui a leitura do documento a partir de sua raiz e para isso utilizamos / de acordo com a XPath Elementos do Modelo Um modelo possui duas partes O parâmetro match é um caminho para o elemento na árvore de origem ao qual o modelo se aplica O conteúdo do elemento relaciona os elementos a serem inseridos na árvore resultante

150 Elementos do Modelo O parâmetro match é um caminho <xsl: template> <xsl: apply-templates/> </xsl: template> <xsl: template match= /livraria/*/titulo > <result> <xsl: value-of> </result> <xsl: template> Caminhos A sintaxe para os caminhos XML é semelhante aos caminhos de arquivo Os caminhos começam a partir da raiz do documento e relacionam os elementos encontrados Os elementos são separados por / A raiz do documento é / Representa o documento como um todo

151 Caminhos Exemplos: * qualquer elemento / elemento raiz XSL tem noção de nó atual Os caminhos no atributo match podem ser relativos ao nó atual Combinando caminhos com atributos Os caminhos também podem combinar com atributos <xsl:template match=url[@protocolo=mailto]> <A> <xsl:attribute name= HREF > mailto: <xsl: apply- templates/> </xsl:attribute> </A> </xsl:template>

152 O Processador XSL Um processador XSL começa com uma folha de estilo e uma árvore fonte A árvore corresponde a representação de um documento XML que já foi processado O Processador XSL 1. Depois de carregar a folha de estilo, o processador XSL abre o documento de origem 2. O processador acompanha o documento de origem da raiz até os nós de folha 3. A cada etapa ele tenta comparar o nó atual com um modelo 4. Se houver uma combinação, o processador gera os nós na árvore resultante

153 O Processador XSL 5. Quando encontrar xsl:applytemplates o processador passará para os filhos do nó atual e repetirá todo o processo, ou seja, tentará combiná-los com o modelo xsl-apply template é uma chamada recursiva para a folha de estilo XSLT (Sintaxe) xsl:value-of Com o elemento xsl:value-of o processador XSLT insere no documento o valor solicitado. A XPath é usada para localizar o elemento dentro do documento XML. Quando o valor solicitado é texto dentro de node, selecionamos o nome do próprio node para reter seu valor. Quando atributo, para indicar que estamos solicitando valor de um atributo

154 XSLT (Sintaxe) xsl:value-of <h3> <xsl:value-of select="//livro/editora"> </h3> XSLT (Sintaxe) xsl:for-each Com o elemento xsl:for-each selecionamos um conjunto de nodes que gera um loop para cada ocorrência do elemento selecionado. O exemplo a seguir seleciona todos os livros que estão dentro do escopo do elemento raiz livraria

155 XSLT (Sintaxe) xsl:for-each <xsl:for-each select="/livraria/livro"> <tr> <td><xsl:value-of select= titulo"/></td> <td><xsl:value-of select= editora"/></td> <td><xsl:value-of select= preço"/></td> </tr> </xsl:for-each> XSLT (Sintaxe) xsl:if O elemento xsl:if é usado para criar condições simples, ele testa se a expressão que retorna um valor positivo ou negativo, se positivo ele processa o seu contexto

156 XSLT (Sintaxe) xsl:if <td> <xsl:if test= //livro/titulo = Inside XML'"> Pode ler </xsl:if> </td> XSLT (Sintaxe) xsl:choose, xsl:when, xsl:otherwise O elemento xsl:choose é similar ao xsl:if mas além de testar os resultados positivos ele define um contexto padrão se as condições xsl:when retornarem negativo, o elemento xsl:otherwise. Similar ao formato de condição usado em muitas linguagens de programação, esse comando pode ser comparado à uma mistura de IF, THEN, ELSE com CASES

157 XSLT (Sintaxe) xsl:choose, xsl:when, xsl:otherwise td> <xsl:choose> <when test= //livro/titulo = ' Inside XML">Bom livro </xsl:when> <otherwise>bom também </xsl:otherwise> </xsl:choose> </td> XSLT (Sintaxe) Order-by O atributo order-by define a ordem em que são exibidos os resultados. Sem este elemento, a ordem padrão é a própria disposição dos elementos dentro do documento. <xsl:for-each select="livraria/livro" order-by="+titulo">

158 XSLT Avançado Exemplos de : XSLT repetição XSLT seleção XSLT condicional XSLT escolha Documento XML <?xml version="1.0" encoding="utf-8"?> <Livraria xmlns:xsi=" xsi:nonamespaceschemalocation="c:\arquivos de programas\altova\xml Spy Suite\Examples\Livraria\Livraria1.xsd"> <Livro ano="2001"> <Titulo>Inside XML</Titulo> <Autor>Steven Holzner</Autor> <Editora>McMilin</Editora> <Preço>R$150,00</Preço> </Livro>... </Livraria>

159 XSLT Repetição <xsl:template match="/"> <html> <title> Exemplo 1 - Utilizando Repetições </title> <body> <p><font color="#000080" face="arial" size="5">exemplo 1 - XSLT Repetição</font></p> <table border="2" bgcolor="white"> <tr bgcolor="blue"> <th>título</th> <th>preço</th> </tr> <xsl:for-each select="livraria/livro" order-by="+titulo"> <tr> <td><xsl:value-of select="titulo"/></td> <td><xsl:value-of select="preco"/></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> XSLT Repetição

160 XSLT Seleção <xsl:template match="/"> <html> <title> Exemplo 2 - Utilizando Seleção </title> <body> <p><font color="#000080" face="arial" size="5">exemplo 2 - XSLT Seleção </font></p> <table border="2" bgcolor="white"> <tr bgcolor="blue"> <th>título</th> <th>preço</th> </tr> <xsl:for-each select="livraria/livro[editora='addison-wesley']"> <tr> <td><xsl:value-of select="titulo"/></td> <td><xsl:value-of select="preco"/></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> XSLT Seleção

161 XSLT Expressão Condicional <xsl:template match="/"> <html> <title> Exemplo 3 - Expressão Condicional </title> <body> <p><font color="#000080" face="arial" size="5">exemplo 3 - XSLT Expressão Condicional</font></p> <table border="2" bgcolor="white"> <tr bgcolor="blue"> <th>título</th> <th>editora</th> <th>preço</th> </tr> <xsl:for-each select="livraria/livro"> <xsl:if match=".[autor='elsmari']"> <tr> <td><xsl:value-of select="titulo"/></td> <td><xsl:value-of select="editora"/></td> <td><xsl:value-of select="preco"/></td> </tr> </xsl:if> </xsl:for-each> </table> </body> </html> </xsl:template> XSLT Expressão Condicional

162 XSLT Escolha. <xsl:for-each select="livraria/livro" order-by="+editora"> <tr> <td><xsl:value-of select="titulo"/></td> <xsl:choose> <xsl:when test=".[editora= 'Bookman']"> <td bgcolor="#ff0000"> <xsl:value-of select="editora"/> </td> </xsl:when> <xsl:otherwise> <td bgcolor="yellow"> <xsl:value-of select="editora"/> </td> </xsl:otherwise> </xsl:choose> </tr> </xsl:for-each> XSLT Escolha

163 Imagens <!NOTATION GIF SYSTEM "CompuServe Graphics Interchange Format 87a"> <!ENTITY bd SYSTEM "bd.gif" NDATA GIF> <!ATTLIST Livro ano CDATA #REQUIRED imagem ENTITY #IMPLIED > Imagens. <xsl:for-each select="livraria/livro"> <xsl:if match=".[autor='elsmari']"> <tr> <td><img><xsl:attribute name="src"><xsl:value-of </xsl:attribute></img></td> <td><xsl:value-of select="titulo"/></td> <td><xsl:value-of select="editora"/></td> <td><xsl:value-of select="preco"/></td> </tr> </xsl:if> </xsl:for-each>

164 Imagens Link com XSL Como fazer um link em XSL? Usaremos o elemento <xsl: attribute> Veremos o seu uso através de um exemplo

165 Link com XSL Links.xml <?xml version="1.0" encoding="utf-8"?> <?xml-stylesheet type="text/xsl" href="links.xsl"?> <lista> <cadastro> <link> <texto>xmlbr</texto> <id>1</id> </cadastro> <cadastro> <link> <texto>e-hosting</texto> <id>2</id> </cadastro> </lista> Link com XSL Links.xsl <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet xmlns:xsl=" xmlns=" <xsl:template match="/"> <html><body> <table border="1"> <tr><td><b>site</b></td></tr> <xsl:for-each select="lista/cadastro" order-by="id"> <tr> <td><a><xsl:attribute name="href"><xsl:value-of select="link"/> </xsl:attribute><xsl:value-of select="texto" /></a></td> </tr> </xsl:for-each> </table></body></html> </xsl:template> </xsl:stylesheet>

166 Link com XSL Resultado Exemplos do uso de XSL <?xml version="1.0" encoding="utf-8"?> <?xml-stylesheet type="text/xsl" href="exemplo1.xsl"?> <Livros> <Livro isbn="234" disponivel="sim"/> <Livro isbn="111" disponivel="nao"/> <Livro isbn="005"/> </Livros>

XML. Prof. Júlio Machado

XML. Prof. Júlio Machado XML Prof. Júlio Machado julio.machado@pucrs.br ESQUEMAS Modelo de Esquemas Dois diferentes meios permitem descrever a estrutura de documentos XML e definir novos tipos de dados para elementos e atributos:

Leia mais

Estrutura Lógica DTD

Estrutura Lógica DTD Estrutura Lógica DTD Carina Dorneles dorneles@inf.ufrgs.br http://www.inf.ufrgs.br/ dorneles DTD Introdução DTD - Document Type Definition Conjunto de regras que definem a estrutura do documento Hierarquia

Leia mais

Sumário. XML (extensible Markup Language)

Sumário. XML (extensible Markup Language) Sumário 1 Introdução Aplicações Não-Convencionais 2 BD Orientado a Objetos e Objeto-Relacional 3 BD Temporal 4 BD Geográfico 5 XML e Bancos de Dados XML (extensible Markup Language) Tecnologia desenvolvida

Leia mais

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

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 Dados na Web Gerenciamento de Dados e Informação Dados Semiestruturados & XML O objetivo é integrar todos os tipos de informação, incluindo informação não estruturada Informação irregular ou ausente Informação

Leia mais

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

Dados na Web integrar irregular ausente não conhecida completamente evoluem Fernando Fonseca Ana Carolina Robson Fidalgo Dados na Web Gerenciamento de Dados e Informação Dados Semiestruturados & XML O objetivo é integrar todos os tipos de informação, incluindo informação não estruturada Informação irregular ou ausente Informação

Leia mais

introdução principais componentes

introdução principais componentes X170 introdução principais componentes 2002, 2005, 2008 Helder da Rocha (helder.darocha@gmail.com) 1 O Que é um XML Schema? Esquema = plano, projeto, estrutura, diagrama, especificação Em XML é um documento

Leia mais

Esquemas para Dados XML

Esquemas para Dados XML Esquemas para Dados XML Definição da Organização hierárquica do documento XML Conteúdo de elementos simples e atributos Cardinalidade de sub-elementos Documento XML válido Respeita as regras de um esquema

Leia mais

DTD. Vanessa Braganholo.

DTD. Vanessa Braganholo. DTD Vanessa Braganholo braganholo@dcc.ufrj.br Curso baseado em mini-cursos apresentados no SBBD. Autores: Carlos Heuser, Carina Dorneles e Vanessa Braganholo Esquema XML Como em banco de dados relacionais

Leia mais

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

XML: uma introdução prática X100. Helder da Rocha XML: uma introdução prática X100 Helder da Rocha (helder@argonavis.com.br) Atualizado em setembro de 2001 1 Como criar um documento XML XML não tem comandos, nem operadores, nem funções, nem tipos Não

Leia mais

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

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 Capítulo 9: XML 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 documentos XML: XSLT Mapeamento entre documentos

Leia mais

5a. Aula - XML 2013.2

5a. Aula - XML 2013.2 5a. Aula -XML 2013.2 Introdução Criando Documentos XML Validando Documentos XML DTD ( Documents Type Definition) XML Schema ConsultandoXML com Xpath com XQuery Modularizando XML Namespaces Entities TransformandoXML

Leia mais

XML. Prof. Júlio Machado

XML. Prof. Júlio Machado XML Prof. Júlio Machado julio.machado@pucrs.br INTRODUÇÃO O que é XML? É a sigla de Extensible Markup Language Linguagem de especificação para descrever dados Padrão aberto e largamente usado Definido

Leia mais

Módulo III Introdução a XML

Módulo III Introdução a XML Módulo III Introdução a XML Prof. Ismael H F Santos April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Ementa Modulo III XML SGML - Standard Generalized Markup Language XML - Extensible Markup

Leia mais

XML (extensible Markup Language)

XML (extensible Markup Language) Sumário 1 Aplicações Não-Convencionais 2 Revisão e Dicas de Modelagem Conceitual 3 BD Orientado a Objetos e Objeto- Relacional 4 BD Temporal 5 BD Geográfico 6 BD XML XML (extensible Markup Language) Tecnologia

Leia mais

Banco de Dados. Gerenciamento de Dados e Informação Fernando Fonseca, Ana Carolina Salgado & Robson Fidalgo

Banco de Dados. Gerenciamento de Dados e Informação Fernando Fonseca, Ana Carolina Salgado & Robson Fidalgo Dados na Web Gerenciamento de Dados e Informação Fernando Fonseca, Ana Carolina Salgado & Robson Fidalgo 1 O objetivo é integrar todos os tipos de informação, incluindo informação não estruturada Informação

Leia mais

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

XML XML. Motivação. Mário Meireles Teixeira DEINF-UFMA XML Mário Meireles Teixeira DEINF-UFMA XML Motivação XML extensible Markup Language W3C: World Wide Web Consortium http://www.w3.org XML 1.0 W3C Recommendation, 10/Fev/1998 (inicial) W3C Recommendation,

Leia mais

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

XML Schema. Vanessa Braganholo. Curso baseado em mini-cursos apresentados no SBBD. Autores: Carlos Heuser, Carina Dorneles e Vanessa Braganholo XML Schema Vanessa Braganholo Curso baseado em mini-cursos apresentados no SBBD. Autores: Carlos Heuser, Carina Dorneles e Vanessa Braganholo XML Schema Utilizado para descrever a estrutura de um documento

Leia mais

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

TECNOLOGIA WEB INTRODUÇÃO CONSTRUÇÃO DE PÁGINAS ESTÁTICAS HTML / XHTML INTRODUÇÃO CONSTRUÇÃO DE PÁGINAS ESTÁTICAS HTML / XHTML 1 INTRODUÇÃO TECNOLOGIA WEB Começaremos desvendando o poder do desenvolvimento de aplicações baseadas na Web com a XHTML (Extensible HyperText Markup

Leia mais

XML: uma introdução prática X100. Helder da Rocha (helder@argonavis.com.br)

XML: uma introdução prática X100. Helder da Rocha (helder@argonavis.com.br) XML: uma introdução prática X100 Helder da Rocha (helder@argonavis.com.br) Atualizado em Jan 2003 O que é um Esquema XML? Documentos que aderem à especificação (válidos) O esquema representa uma classe

Leia mais

Linguagem XML. Linguagem XML

Linguagem XML. Linguagem XML O que é XML? extensible Markup Language Linguagem de representação usando marcas como o HTML Marcas não pré-definidas. Precisam de ser definidas XML usa DTD ou esquemas para definir os dados Não FAZ NADA!

Leia mais

Formas de Gerência de Dados XML

Formas de Gerência de Dados XML Bancos de Dados XML Formas de Gerência de Dados XML SGBDRs estendidos com suporte à XML adequados a dados XML fortemente estruturados ( documentos orientados a registros ) beira-mar104apto

Leia mais

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

Noções de XML. Henrique Silva Direção-Geral do Território FCUL, 12 e 19 de Outubro de 2017 Noções de XML Henrique Silva Direção-Geral do Território FCUL, 12 e 19 de Outubro de 2017 O que é o XML? Características XML significa Extensible Markup Language XML é uma linguagem de marcadores (tags)

Leia mais

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

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 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 XML (extensible Markup Language) Tecnologia desenvolvida pela W3C W3C: World

Leia mais

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

Programação para Internet I 4. XML. Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt Programação para Internet I 4. XML Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt Standard do W3C (www.w3c.org) Formato de ficheiros de texto derivado de SGML (Standard Generalized Markup Language)

Leia mais

Guia de Bolso HTML e XHTML

Guia de Bolso HTML e XHTML Guia de Bolso HTML e XHTML Este guia de bolso oferece uma listagem concisa, porém abrangente, dos elementos e atributos especificados nas Recomendações HTML 4.01 e XHTML 1.0. O texto utiliza a abreviação

Leia mais

Programação para Internet I Aulas 10 e 11

Programação para Internet I Aulas 10 e 11 Programação para Internet I Aulas 10 e 11 Fernando F. Costa nando@fimes.edu.br XML Definição e origem extensible Markup Language (XML) é linguagem de marcação de dados que provê um formato para descrever

Leia mais

GERÊNCIA DE DADOS SEMIESTRUTURADOS -DTD. Prof. Angelo Augusto Frozza, M.Sc. http://www.about.me/tilfrozza

GERÊNCIA DE DADOS SEMIESTRUTURADOS -DTD. Prof. Angelo Augusto Frozza, M.Sc. http://www.about.me/tilfrozza GERÊNCIA DE DADOS SEMIESTRUTURADOS -DTD Prof. Angelo Augusto Frozza, M.Sc. http://www.about.me/tilfrozza ROTEIRO Introdução ao DTD Elementos Atributos Entidades Validando um documento XML DTD (DOCUMENT

Leia mais

Introdução XML. Vanessa Braganholo

Introdução XML. Vanessa Braganholo Introdução XML Vanessa Braganholo {vanessa@ic.uff.br} Curso baseado em mini-cursos apresentados no SBBD. Autores: Carlos Heuser, Carina Dorneles e Vanessa Braganholo O que é XML? } XML = extensible Markup

Leia mais

GERÊNCIA DE DADOS SEMI ESTRUTURADOS -XML. Prof. Angelo Augusto Frozza, M.Sc.

GERÊNCIA DE DADOS SEMI ESTRUTURADOS -XML. Prof. Angelo Augusto Frozza, M.Sc. GERÊNCIA DE DADOS SEMI ESTRUTURADOS -XML Prof. Angelo Augusto Frozza, M.Sc. O QUE É XML? Tecnologia desenvolvida pelo W3C http://www.w3c.org W3C: World Wide Web Consortium consórcio formado por acadêmicos

Leia mais

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:

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: Dados da Web Introdução de XML Banco de Dados II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM

Leia mais

INE BDNC. Bancos de Dados XML

INE BDNC. Bancos de Dados XML INE 661300 - BDNC Bancos de Dados XML Formas de Gerência de Dados XML SGBDRs estendidos com suporte à XML adequados a dados XML fortemente estruturados ( documentos orientados a registros )

Leia mais

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

Extensible Markup Language (XML) Júnio César de Lima Cedric Luiz de Carvalho. Instituto de Informática Universidade Federal de Goiás www.inf.ufg. Extensible Markup Language (XML) Júnio César de Lima Cedric Luiz de Carvalho Technical Report - RT-INF_002-05 - Relatório Técnico June - 2005 - Junho The contents of this document are the sole responsibility

Leia mais

Um documento XML possui Unidade lógica - os elementos Usuário "inventa" as marcas através de DTDs

Um documento XML possui Unidade lógica - os elementos Usuário inventa as marcas através de DTDs XML Um documento XML possui Unidade lógica - os elementos Usuário "inventa" as marcas através de DTDs Unidade física - as entidades Armazenamento separado dos dados Como toda linguagem de marcação: XML

Leia mais

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

XSL - extemsible Stylesheet Language. Prof. Antonio Almeida de Barros Jr. XSL - extemsible Stylesheet Language Prof. Antonio Almeida de Barros Jr. Agenda Conceitos XSLT - XSL Transformations Iteração e Classificação Processamento Condicional Copiando Nodos Variáveis Estude de

Leia mais

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

Tópicos. Apresentando a família XML HTML HTML. XML extesible Markup Language. Problemas com o HTML Tópicos Apresentando a família XML Prof.Tiago Lopes Telecken telecken@gmail.com IFRS Rio Grande HTML XML A família de tecnologias XML (DTD, XML Schemas, XHTML, SVG, MathML, MusicML, XMI, CSS, XSLT, XLINK,

Leia mais

XMLs E INTEGRAÇÃO COM BANCOS DE DADOS

XMLs E INTEGRAÇÃO COM BANCOS DE DADOS Faculdade de Tecnologia de Guaratinguetá. 07, novembro de 2011. XMLs E INTEGRAÇÃO COM BANCOS DE DADOS Abel Vieira, Cleber Lopes, Pedro Lemes saitovieira@gmail.com, cleber.campomori@gmail.com, pedro.lemes@gmail.com

Leia mais

XML Schema (Parte. Vanessa de Paula Braganholo

XML Schema (Parte. Vanessa de Paula Braganholo XML Schema (Parte 2) Vanessa de Paula Braganholo {braganholo@dcc.ufrj.br} Curso baseado em mini-cursos apresentados no SBBD. Autores: Carlos Heuser, Carina Dorneles e Vanessa Braganholo Conteúdo Misto

Leia mais

CONTEÚDO PROGRAMÁTICO

CONTEÚDO PROGRAMÁTICO CONTEÚDO PROGRAMÁTICO XML e XSLT Completo Carga horária: 40 horas TreinaWeb Tecnologia LTDA CNPJ: 06.156.637/0001-58 Av. Paulista, 1765 - Conj 71 e 72 São Paulo - SP CONTEÚDO PROGRAMÁTICO Ementa do curso

Leia mais

XML - Extensible Markup Language

XML - Extensible Markup Language Por Sergio Crespo XML - Extensible Markup Language Extensible Markup Language (XML) é linguagem de marcação de dados (meta-markup language) que provê um formato para descrever dados estruturados. Isso

Leia mais

XML Schema. Vanessa de Paula Braganholo vanessa@inf.ufrgs.br ftp://metropole/pub/curso/xml/index.html. Janeiro de 2001. XML Schema

XML Schema. Vanessa de Paula Braganholo vanessa@inf.ufrgs.br ftp://metropole/pub/curso/xml/index.html. Janeiro de 2001. XML Schema XML Schema Vanessa de Paula Braganholo vanessa@inf.ufrgs.br ftp://metropole/pub/curso/xml/index.html Janeiro de 2001 XML Schema XML Schema Utilizado para descrever a estrutura de um documento XML, assim

Leia mais

GERÊNCIA DE DADOS SEMIESTRUTURADOS -XML. Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza

GERÊNCIA DE DADOS SEMIESTRUTURADOS -XML. Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza GERÊNCIA DE DADOS SEMIESTRUTURADOS -XML Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza O QUE É XML? Tecnologia desenvolvida pelo W3C http://www.w3c.org W3C: World Wide Web Consortium consórcio

Leia mais

Introdução. descrever os tipos de interfaces e linguagens oferecidas por um SGBD. mostrar o ambiente de programas dos SGBD s

Introdução. descrever os tipos de interfaces e linguagens oferecidas por um SGBD. mostrar o ambiente de programas dos SGBD s Introdução Contribuição do Capítulo 2: discutir modelos de dados definir conceitos de esquemas e instâncias descrever os tipos de interfaces e linguagens oferecidas por um SGBD mostrar o ambiente de programas

Leia mais

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos Introdução Laboratório de Computação para Ciências Módulo II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Mestrado Profissional

Leia mais

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

INTRODUÇÃO AO DESENVOLVIMENTO WEB. PROFª. M.Sc. JULIANA H Q BENACCHIO INTRODUÇÃO AO DESENVOLVIMENTO WEB PROFª. M.Sc. JULIANA H Q BENACCHIO Declaração DOCTYPE em documentos HTML O W3C (World Wide Web Consortium: www.w3.org), encarregado da criação dos Standard webs, define

Leia mais

Informática Parte 22 Prof. Márcio Hunecke

Informática Parte 22 Prof. Márcio Hunecke Escriturário Informática Parte 22 Prof. Márcio Hunecke Informática XML 1.1 XML (Extensible Markup Language) é uma recomendação da W3C para gerar linguagens de marcação para necessidades especiais, capaz

Leia mais

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

XML XML. XML extensible Markup Language HTML. Motivação. W3C: World Wide Web Consortium XML 1.0. Mário Meireles Teixeira DEINF-UFMA Mário Meireles Teixeira DEINF-UFMA Motivação extensible Markup Language W3C: World Wide Web Consortium http://www.w3.org 1.0 W3C Recommendation, 10/Fev/1998 (inicial) W3C Recommendation, 04/Fev/2004, 3

Leia mais

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

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) XML Origens. HTML Problemas Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) (extensible( Markup Language ) Origens (extensible Markup Language linguagem de marcação extensível) Criada em 1996 pelo W3C (World

Leia mais

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

XML e Banco de Dados. Prof. Daniela Barreiro Claro DCC/IM/UFBA XML e Banco de Dados DCC/IM/UFBA Banco de Dados na Web Armazenamento de dados na Web HTML muito utilizada para formatar e estruturar documentos na Web Não é adequada para especificar dados estruturados

Leia mais

Namespaces. Resumo Descrição de um padrão para construir documentos que incluem componentes de domínios diferentes, definidos em diferentes DTDs.

Namespaces. Resumo Descrição de um padrão para construir documentos que incluem componentes de domínios diferentes, definidos em diferentes DTDs. Namespaces Resumo Descrição de um padrão para construir documentos que incluem componentes de domínios diferentes, definidos em diferentes DTDs. Namespace É possível que um único documento XML contenha

Leia mais

L A C Laboratory for Advanced Collaboration

L A C Laboratory for Advanced Collaboration Publicação de Dados Governamentais no Padrão Linked Data 2.1 Conceitos Básicos Karin Breitman José Viterbo Edgard Marx Percy Salas L A C Laboratory for Advanced Collaboration Objetivo deste módulo 1.Discutir

Leia mais

O TESTE DE DOCUMENTOS MUTANTES PARA REALIZAR UTILIZANDO ANÁLISE DE. Orientadora: Silvia Regina Vergilio XML SCHEMA. Ledyvânia Franzotte

O TESTE DE DOCUMENTOS MUTANTES PARA REALIZAR UTILIZANDO ANÁLISE DE. Orientadora: Silvia Regina Vergilio XML SCHEMA. Ledyvânia Franzotte UTILIZANDO ANÁLISE DE MUTANTES PARA REALIZAR O TESTE DE DOCUMENTOS XML SCHEMA Ledyvânia Franzotte Orientadora: Silvia Regina Vergilio Roteiro Introdução XML e Tecnologias XML, DTD, XML Schema e JDOM Testes

Leia mais

Um Tradutor de Esquemas Relacionais em XML para Esquemas SQL

Um Tradutor de Esquemas Relacionais em XML para Esquemas SQL UNIVERSIDADE FEDERAL DE SANTA CATARINA CENTRO TECNOLÓGICO DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA SISTEMAS DE INFORMAÇÃO Resumo do Trabalho de Conclusão de Curso Entitulado Um Tradutor de Esquemas Relacionais

Leia mais

XML e Banco de Dados de Internet. Tópicos Especiais em Tecnologia da Informação Profa. Késsia R. C. Marchi

XML e Banco de Dados de Internet. Tópicos Especiais em Tecnologia da Informação Profa. Késsia R. C. Marchi XML e Banco de Dados de Internet Tópicos Especiais em Tecnologia da Informação Profa. Késsia R. C. Marchi Motivação Diversas aplicações Web utilizam Fontes de Dados (BD); Arquitetura Cliente-Servidor (2

Leia mais

Sintaxe XML. César Vittori cvittori@inf.ufrgs.br. Outubro de 2000. Resumo Introdução à sintaxe XML. Marcação tradicional x marcação de documentos

Sintaxe XML. César Vittori cvittori@inf.ufrgs.br. Outubro de 2000. Resumo Introdução à sintaxe XML. Marcação tradicional x marcação de documentos Sintaxe XML César Vittori cvittori@inf.ufrgs.br Outubro de 2000 Resumo Introdução à sintaxe XML. Marcação tradicional x marcação de documentos XML. Sintaxe XML Marcação de documentos eletrônicos XML é

Leia mais

XML Schema (Parte 2) Vanessa Braganholo

XML Schema (Parte 2) Vanessa Braganholo XML Schema (Parte 2) Vanessa Braganholo Curso baseado em mini-cursos apresentados no SBBD. Autores: Carlos Heuser, Carina Dorneles e Vanessa Braganholo Conteúdo Misto

Leia mais

GERÊNCIA DE DADOS SEMIESTRUTURADOS -XML. Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza

GERÊNCIA DE DADOS SEMIESTRUTURADOS -XML. Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza GERÊNCIA DE DADOS SEMIESTRUTURADOS -XML Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza O QUE É XML? Tecnologia desenvolvida pelo W3C http://www.w3c.org W3C: World Wide Web Consortium consórcio

Leia mais

Definição da Sintaxe Abstrata de Potigol em XML

Definição da Sintaxe Abstrata de Potigol em XML Definição da Sintaxe Abstrata de Potigol em XML Alessandro O. Anjos¹, Leonardo Lucena² 1 Graduando em Tec em Análise e Desenvolvimento de Sistemas IFRN. Bolsista do CNPq. E-mail: alessandro.anjos@academico.ifrn.edu.br

Leia mais

Transformação de documentos XML

Transformação de documentos XML Transformação de documentos XML César Vittori cvittori@inf.ufrgs.br Outubro de 2000 Resumo XSLT: Transformações XSL. Transformação de documentos XML. XSLT Introdução XSLT: transformações XSL (inglês: XSL

Leia mais

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos Conceitos Básicos Introdução Tópicos Especiais Modelagem de Dados Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Mestrado Profissional

Leia mais

Aula 01 Revisão Geral Banco de Dados I Conceito de Banco de Dados e SGBD

Aula 01 Revisão Geral Banco de Dados I Conceito de Banco de Dados e SGBD Aula 01 Revisão Geral Banco de Dados I Conceito de Banco de Dados e SGBD Banco de Dados (BD) é o arquivo físico, em dispositivos periféricos, onde estão armazenados os dados de diversos sistemas, para

Leia mais

Especificação de Integração Linx Microvix WebApi v1.2

Especificação de Integração Linx Microvix WebApi v1.2 X Especificação de Integração Linx Microvix WebApi v1.2 Sumário 1 TECNOLOGIA... 3 2 ESPECIFICAÇÃO... 3 3 ACESSO... 8 4 TIPOS DE DADOS... 9 2/ 11 1 Tecnologia A integração com o Linx Microvix ERP está disponível

Leia mais

Dados Semi-Estruturados e XML Vanessa Braganholo. Lista de Exercícios 3 XML Schema

Dados Semi-Estruturados e XML Vanessa Braganholo. Lista de Exercícios 3 XML Schema Autor: Marcio Antelio Neves da Silva Dados Semi-Estruturados e XML Vanessa Braganholo Lista de Exercícios 3 XML Schema 1. Dado o documento XML abaixo, crie um esquema que o valide.

Leia mais

< > a m l. b x. helder.da.rocha. inding. argonavis.com.br

< > a m l. b x. helder.da.rocha. inding. argonavis.com.br < > v b j a x a m l helder.da.rocha helder@ 2004 inding 1 Objetivos Explorar JAXB: uma arquitetura que permite a integração transparente de Java e XML Tópicos abordados Introdução Arquitetura JAXB XML

Leia mais

Documentos XML 1/20. Exemplo de documento XML:

Documentos XML 1/20. Exemplo de documento XML: 1/20 Documentos XML XML é a abreviatura de extensible Markup Language. É uma linguagem de marcas ou anotações como HTML. Mas a linguagem XML foi concebida para descrever informação enquanto que a linguagem

Leia mais

Manual para Integração XML

Manual para Integração XML Manual para Integração XML Acessar o sistema pelo site: http://www.sindaspcg.org.br/ Informar seu login e senha. Selecionar a opção Importação GRH (Formato XML). Essa é a tela transmissão de arquivo GRH

Leia mais

Linguagens e Programação XML / XShema. Paulo Proença

Linguagens e Programação XML / XShema. Paulo Proença Linguagens e Programação XML / XShema Estrutura XML Elementos 1965 conteúdo Um elemento pode: conter apenas texto ser vazio (tem apenas atributos) conter

Leia mais

Namespaces e Esquemas XML. Namespaces - Motivação

Namespaces e Esquemas XML. Namespaces - Motivação Namespaces e Esquemas XML Namespaces - Motivação Problema 1: Cada usuário ou grupo pode criar suas próprias etiquetas (tags): mesmas tags podem ter sîgnificados diferentes Problema 2: quando se juntam

Leia mais

Ricardo Couto Antunes da Rocha 2005 Ricardo Couto Antunes da Rocha

Ricardo Couto Antunes da Rocha 2005 Ricardo Couto Antunes da Rocha Programação com Sockets Ricardo Couto Antunes da Rocha rcarocha@inf.ufg.br 2005 Ricardo Couto Antunes da Rocha Parâmetros de protocolos Objetivo do protocolo Protocolo de transporte: TCP ou UDP Porta (servidora!):

Leia mais

INFORMÁTICA. Instruções: Para responder às questões de números 71 e 72, considere o texto a seguir:

INFORMÁTICA. Instruções: Para responder às questões de números 71 e 72, considere o texto a seguir: INFORMÁTICA Prova de Agente Fiscal de Rendas do ICMS-SP/2013 - FCC. Por Ana Lucia Castilho* Instruções: Para responder às questões de números 71 e 72, considere o texto a seguir: A equipe de TI da empresa

Leia mais

Análise Estruturada. Modelagem de Software Prof. Flávio de Oliveira Silva, Ph.D.

Análise Estruturada. Modelagem de Software Prof. Flávio de Oliveira Silva, Ph.D. Análise Estruturada Análise estruturada Proposta a partir de 1975 por vários autores (Constantine, Tom DeMarco, Yourdon, Gane & Sarson) Caiu em desuso com os modelos orientados a objetos Entretanto...

Leia mais

Um esquema de nomes para localização de fontes de informação na Web, esse esquema chama-se URI.

Um esquema de nomes para localização de fontes de informação na Web, esse esquema chama-se URI. Aula 01 - Visão geral do HTML5 Professor Bruno Kiedis De acordo com o W3C a Web é baseada em 3 pilares: Um esquema de nomes para localização de fontes de informação na Web, esse esquema chama-se URI. Um

Leia mais

Universidade Estadual de Maringá Centro de Tecnologia Departamento de Informática

Universidade Estadual de Maringá Centro de Tecnologia Departamento de Informática Universidade Estadual de Maringá Centro de Tecnologia Departamento de Informática A Aplicação de XML no Desenvolvimento de Aplicações Distribuídas Beatriz do Carmo Langiano Daniele Fernanda Fávero Débora

Leia mais

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

Introdução. Definição. Validação. Universo XML. Apresentação. Processamento. Prof. Enzo Seraphim. Banco de Dados Introdução Definição Validação Apresentação Processamento Banco de Dados Universo XML Prof. Enzo Seraphim Popularidade do HTML Extremamente simples Estilo próprio para formatação de documentos Ligações

Leia mais

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

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 Capítulo 9: XML 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 documentos XML: XSLT Mapeamento entre documentos

Leia mais

Programação Web - HTML

Programação Web - HTML Instituto Federal de Minas Gerais Campus Ponte Nova Programação Web - HTML Professor: Saulo Henrique Cabral Silva HTML Início em 1980, Tim Bernes-Lee Implementado Pascal. 1989, o CERN investiu esforços

Leia mais

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

Escola de Ciência da Informação ECI/UFMG. Eduardo Ribeiro Felipe Escola de Ciência da Informação ECI/UFMG Eduardo Ribeiro Felipe erfelipe@yahoo.com.br HIPERLINKS Elemento de hipermídia formado por um trecho de texto em destaque ou por um elemento gráfico que, ao ser

Leia mais

Uma Abordagem Alternativa para o Armazenamento Electrónico de Dados: O Papel da Norma XML

Uma Abordagem Alternativa para o Armazenamento Electrónico de Dados: O Papel da Norma XML Uma Abordagem Alternativa para o Armazenamento Electrónico de Dados: O Papel da Norma XML Semana da Ciência e da Tecnologia 2002 FOR $l IN document( wwwestvipvpt/biblioteca/bdbiblioxml ) //livro WHERE

Leia mais

5 Tecnologias estudadas

5 Tecnologias estudadas 5 Tecnologias estudadas Esse capítulo descreve as principais linguagens existentes para o desenvolvimento de ontologias para uso na Web. Essas linguagens são vistas como a infra-estrutura básica para o

Leia mais

ara entender os Sistemas Gerenciadores de Banco de Dados é importante conhecer

ara entender os Sistemas Gerenciadores de Banco de Dados é importante conhecer Parte 2 ara entender os Sistemas Gerenciadores de Banco de Dados é importante conhecer P alguns conceitos básicos. A primeira definição é relativa aos conceitos de dados e informação. Dados são fatos em

Leia mais

José Carlos Ramalho Alda Reis Lopes Pedro Rangel Henriques

José Carlos Ramalho Alda Reis Lopes Pedro Rangel Henriques de Editores Estruturados baseados em SGML José Carlos Ramalho Alda Reis Lopes Grupo de Especificação e Processamento de Linguagens Departamento de Informática Universidade do Minho Braga - Portugal Objectivos

Leia mais

Arquitetura de um Ambiente de Data Warehousing

Arquitetura de um Ambiente de Data Warehousing Arquitetura de um Ambiente de Data Warehousing Processamento Analítico de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri Prof. Dr. Ricardo Rodrigues Ciferri Arquitetura Típica usuário usuário... usuário

Leia mais

Banco de dados. Objetivo: Reter os dados de forma que possam ser utilizados em outros momentos

Banco de dados. Objetivo: Reter os dados de forma que possam ser utilizados em outros momentos Banco de dados BD Dados x Informações Banco de dados Objetivo: Armazenar dados Consultar dados (dentro de um determinado contexto) gerando informações úteis Reter os dados de forma que possam ser utilizados

Leia mais

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

PROCESSAMENTO ESTRUTURADO DE DOCUMENTOS. Departamento de Documentação Curso de Arquivologia PROCESSAMENTO ESTRUTURADO DE DOCUMENTOS Departamento de Documentação Curso de Arquivologia - extensible Markup Language Definida pela W3C - World Wide Web Consortium Activity Grupos de trabalho que desenvolvem,

Leia mais

Banco de dados. Objetivo: Reter os dados de forma que possam ser utilizados em outros momentos

Banco de dados. Objetivo: Reter os dados de forma que possam ser utilizados em outros momentos Banco de dados BD Banco de dados Objetivo: Armazenar dados Consultar dados (dentro de um determinado contexto) gerando informações úteis Reter os dados de forma que possam ser utilizados em outros momentos

Leia mais

Modelo para a representação de informações, utilizado por aplicações Web que trabalham com a tecnologia AJAX.

Modelo para a representação de informações, utilizado por aplicações Web que trabalham com a tecnologia AJAX. JSON Modelo para a representação de informações, utilizado por aplicações Web que trabalham com a tecnologia AJAX. 1. Introdução JSON (JavaScript Object Notation) é um modelo para armazenamento e transmissão

Leia mais

4 Uma Linguagem para Workflows de Sistemas de Gerência de Análises em Biossequências 4.1 Introdução

4 Uma Linguagem para Workflows de Sistemas de Gerência de Análises em Biossequências 4.1 Introdução 4 Uma Linguagem para Workflows de Sistemas de Gerência de Análises em Biossequências 4.1 Introdução Este capítulo apresenta a linguagem utilizada pelo SGWBio para descrever workflows de Bioinformática.

Leia mais

3. Linguagem de Programação C

3. Linguagem de Programação C Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3.2. Estrutura de Programas e Representação

Leia mais

XML. 1. XML: Conceitos Básicos. 2. Aplicação XML: XHTML 3. Folhas de Estilo em Cascata XML

XML. 1. XML: Conceitos Básicos. 2. Aplicação XML: XHTML 3. Folhas de Estilo em Cascata XML 1 1. : Conceitos Básicos 2. Aplicação : XHTML 3. Folhas de Estilo em Cascata 2 é um acrônimo para EXtensible Markup Language é uma linguagem de marcação muito parecida com HTML foi designada para descrever

Leia mais

Universidade Federal da Paraíba CCEN Departamento de Informática Disciplina: Banco de Dados. Aula 1 Introdução a Banco de Dados

Universidade Federal da Paraíba CCEN Departamento de Informática Disciplina: Banco de Dados. Aula 1 Introdução a Banco de Dados Universidade Federal da Paraíba CCEN Departamento de Informática Disciplina: Banco de Dados Aula 1 Introdução a Banco de Dados 1. Introdução Um Sistema Gerenciador de Banco de Dados (SGBD) é constituído

Leia mais

DOM (Document Object Model)

DOM (Document Object Model) DOM (Document Object Model) Modelo de dados para XML estrutura hierárquica (árvore) métodos de acesso (API DOM) principais classes de objetos document, node, nodelist e element execução de consultas e

Leia mais

XML (extensible Markup Language)

XML (extensible Markup Language) Sumário 1. Introdução a Aplicações Não-Convencionais 2. Revisão de Modelagem Conceitual 3. BD Orientado a Objetos (BDOO) 4. BD Objeto-Relacional (BDOR) 5. BD Temporal (BDT) 6. BD Geográfico (BDG) 7. BD

Leia mais

Banco de Dados 30/04/2012 1

Banco de Dados 30/04/2012 1 Banco de Dados Representa o arquivo físico de dados, armazenado em dispositivos periféricos, para consulta e atualização pelo usuário. Possui uma série de informações relacionadas a um determinado assunto.

Leia mais

Conceitos de HTML 5 Aula 1

Conceitos de HTML 5 Aula 1 Prof. João Augusto da Silva Bueno (joao.augusto@ifsc.edu.br) Conceitos de HTML 5 Aula 1 World Wide Web É um serviço da Internet que reúne vários documentos de todas as partes do mundo e esses documentos

Leia mais

3. Construção de páginas web Introdução ao HTML

3. Construção de páginas web Introdução ao HTML 3. Construção de páginas web 3.1. Introdução ao HTML 1 Introdução ao HTML O HTML, HyperText Markup Language, foi desenvolvido para especificar a organização lógica de um documento com extensões de hipertexto,

Leia mais

Aula 2 BD Introdução. Profa. Elaine Faria UFU

Aula 2 BD Introdução. Profa. Elaine Faria UFU Aula 2 BD Introdução Profa. Elaine Faria UFU - 2017 Motivação A quantidade de informação disponível está crescendo exponencialmente Os dados e as informações tem um papel importante para as organizações

Leia mais

Requisitos de Software e UML Básico. Janaína Horácio

Requisitos de Software e UML Básico. Janaína Horácio Requisitos de Software e UML Básico Janaína Horácio janaina@les.inf.puc-rio.br Agenda Requisitos O que é? Objetivos? Atividades?... UML O que é? Modelos... Casos de Uso O que é? Componentes 2 Requisitos

Leia mais