A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Tópicos de Sistemas de Informação A Carlos Oberdan Rolim Ciência da Computação.

Apresentações semelhantes


Apresentação em tema: "Tópicos de Sistemas de Informação A Carlos Oberdan Rolim Ciência da Computação."— Transcrição da apresentação:

1 Tópicos de Sistemas de Informação A Carlos Oberdan Rolim Ciência da Computação

2 Namespaces

3 Extensibilidade do XML Dados XML são usados para intercâmbio entre organizações XML é extensível XML permite autores de documentos criarem suas próprias tags, definindo a origem dos elementos, atributos e tipos. Em um ambiente distribuído os documentos XML precisam ser gerenciados

4 Problemas da extensibilidade do XML Exemplo: Uma lista dos filmes que estão em cartaz

5 Estendendo um documento existente A lista de filmes pode ser estendida com um novo elemento que corresponde a avaliação da qualidade do filme

6 Estendendo um documento existente Documentos existentes são estendidos para acrescentar novas informações Se a extensão não for gerenciada corretamente podem surgir problemas!

7 Extensões incompátiveis Exemplo: A lista de filmes pode ser estendida com um novo elemento que corresponde a avaliação do filme do ponto de vista da censura

8 Extensões incompátiveis As duas extensões são incompatíveis! Ao combinar as duas avaliações em uma única listagem podem surgir problemas Combinando as duas listas

9 Extensões incompátiveis Qual o problema? Um software para filtrar apenas os filmes inofensivos ficaria perdido Como distinguir os dois tags de avaliação? Qual a solução? Renomear os elementos

10 Renomeando os elementos Renomeando os elementos relativos as avaliações (avaliação de qualidade e avaliação de censura)

11 Solução Não há como impedir que alguém estenda um documento sem que este fique incompatível com outros documentos Qual a solução? Namespaces Não limita a facilidade de extensão da XML, mas permite gerenciá-la. São uma solução para gerenciar a extensibilidade de XML Namespace pode ser definido como um mecanismo para identificar os elementos e atributos de XML

12 Usando namespaces

13 Solução do namespace Dois nomes diferentes são declarados para os elementos avaliação Um prefixo é incluído antes do nome de cada elemento 4 estrelas O prefixo identifica o tipo de avaliação A declaração associa um prefixo a uma URI

14 Declaração de namespaces É feita por meio de atributos utilizando-se o prefixo xmlns seguido pelo prefixo Exemplo: <filmes xmlns:qua = http://cinemas.com/1.0 xmlns:cen = http://filme.censura.com/1.0 xmlns = http://filmes.com/1.0 >

15 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

16 Nome do Namespace É o URI e não o prefixo! Dois elementos com prefixos diferentes, mas associados ao mesmo URI são considerados idênticos

17 Declaração de Namespace Associa um sistema de nomeação global (URIs) ao nome dos elementos URIs são usados para garantir a exclusividade dos nomes URIs devem ser criados com base no seu próprio nome e domínio O papel do URI é puramente identificar unicamente os elemento ou atributos Uma URI identifica o proprietário do namespace, por isso não é aconselhável usar o domínio de outras pessoas / organizações

18 Atributos podem ter Namespaces Tanto atributos quanto elementos podem ter namespaces

19 Escopo dos Namespaces O namespace é válido Para o elemento onde está declarado Em todos os elementos dentro de seu conteúdo

20 Default Namespace Se a maior parte dos elementos pertencem ao mesmo namespace, não precisa usar prefixo para cada elemento. Pode-se definir um namespace default que será aplicado para todos os elementos e atributos que não tiverem prefixo. A sintaxe é xmlns=namespace

21 Default namespace <employees xmlns="http://www.devxpert.com/schemas/hr/" xmlns:py="http://www.devxpert.com/schemas/payroll/"> 49982 Bart Simpson 2000-07-04 4000765.00 3980765.27 12345 Hugo Simpson 2000-05-29 82000.00 16567.87

22 Default namespace Default namespace é aplicado no elemento que é definido e em todos os seus descendentes. Se um desses descendentes usar outro default namespace a sua declaração sobrescreve o anterior tornando-se o default namespace para aquele elemento e todos os seus descendentes.

23 Default namespace <employees xmlns="http://www.devxpert.com/schemas/hr/" xmlns:py="http://www.devxpert.com/schemas/payroll/"> 49982 Bart Simpson 2000-07-04 4000765.00 3980765.27

24 Default namespace (Default namespace flows into the child - there is no prefix, so it uses the default namespace) (No Default namespace, but ns0 maps to uri:my- namespace)

25 Default namespace (No Default namespace, but ns0 and ns1 both map to uri:my-namespace and hence have identical meaning) (ns0 is defined on the parent, but we then set a default namespace for this node - and any children, if it had any)

26 XML Schema

27 Validação de documentos XML Recordando: para validar um documento XML Um documento é válido com relação a um dado esquema XML se obdece este esquema Documento XML Esquema XML Parser Documento XML válido Documento XML inválido

28 Linguagens de Esquemas XML DTD – Document Type Definition XML Schema

29 Problemas dos DTDs Sintaxe não XML documento XML usando uma sintaxe e o DTD usando outra sintaxe Não tem tipos de dados, em particular para o conteúdo dos elementos capacidade limitada de tipos de dados DTDs suportam um conjunto muito limitado de tipos de dados. Não podemos dizer o elemento deve ser entre 240 e 3000,00 Desejo de se ter um conjunto de tipos de dados compatíveis com aqueles encontrados nos banco de dados Só é marginalmente compatível com namespaces

30 XML Schema Da mesma forma que a DTD Utilizado para descrever a estrutura de um documento XML XML Schemas são mais poderosos que DTDs: Tipos de dados melhor especificado +41 tipos e a capacidade de se criar tipos de dados definidos pelo usuário Escritos em XML (mesma linguagem dos documentos) Podem expressar conjuntos (sets): um elemento filho pode estar em qualquer ordem Podem especificar unicidade (chaves) Uso de técnicas de orientação a objetos Número de elementos (cardinalidade) Se um elemento é vazio ou pode incluir texto

31 XML Schema como sucessor da DTD Algumas razões para isso: É extensível Estender/derivar tipos a partir já existentes É mais rico e mais útil do que DTD É escrita em XML Suporta tipos de dados Suporta namespaces Define valores default e fixos para atributos e elementos É uma W3C Recommendation XML Schema Part 0: Primer XML Schema Part 1: Structures XML Schema Part 2: Datatypes Também referida como XSDL: XML Schema Definition Language

32 Tipos Suporte a tipos facilita Descrever o que é ou não permitido no conteúdo de um elemento Validar se um dado está correto Trabalhar com dados vindos de um banco de dados Definir facetas (restrições) aos dados Definir padrões de dados (ou formatos) Converter dados de tipos diferentes Todos os elementos são associados a tipos!!

33 Sintaxe Facilita... Não é necessário aprender outra linguagem Mesmo editor de texto Mesmo parser DOM SAX O esquema pode ser alterado usando XSLT

34 Declaração Ao contrário de DTD Em XMLSchema Todas as declarações (elementos, atributos, etc.) são feitas externamente ao documento XML Não existe declaração interna (ou subconjunto interno) No documento.xsd

35 Declaração DTD XML Schema

36 Declaração de chamada............ Chamada da DTD <artigo xmlns="http://www.my.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=c:/artigo.xsd">............ Chamada do XML Schema

37 Estrutura de um arquivo XML Schema Elemento root: Extensao do arquivo:.xsd

38 Alguns atributos de <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema targetNamespace="http:// www.domain.com " elementFormDefault="qualified"> <!– definições de elementos e atributos Define o namespace do XML Schema

39 Alguns atributos de <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema targetNamespace="http://www.domain.com" elementFormDefault="qualified"> <!– definições de elementos e atributos Especifica o namespace dos nomes dados aos elementos e atributos do esquema sendo definido

40 Alguns atributos de <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema targetNamespace="http://www.domain.com " elementFormDefault="qualified"> <!– definições de elementos e atributos Quaisquer elementos usados em instancias XML (docs.xml) devem ser qualificados pelo namespace, ou seja, devem possuir o prefixo do namespace

41 Definição de Elemento Uso da tag Cria um elemento Através do atributo name Associa o elemento a um tipo Através do atributo type

42 Definição de Atributo Uso da tag Cria um elemento Através do atributo name Associa o elemento a um tipo Através do atributo type

43 Exemplo XML: joaozinho@san.uri.br undisclosed-recipients@... reuniao Não esquecam da reuniao de amanha

44 Exemplo XML Schema: Faltou o elemento email!!!!

45 Tipos Complexos Descreve estruturas complexas, com subelementos e atributos

46 Definição de Elemento complexo Definição de elemento complexo: Uso de Sintaxe 1:

47 Definição de Elemento Definição de elemento complexo: Uso de Sintaxe 2:

48 Definição de atributo de um tipo complexo O atributo deve ser colocado DEPOIS do sequence

49 Declarações locais vs. globais Pode-se declarar tipos, elementos e atributos globais ou locais Declarações globais: Declarados como filhos do elemento Declarações podem ser reusadas Declarações locais Não são declarados como filhos de

50 Exemplo de declaração local Tipo pode ser usado apenas para o elemento endereço Tipo e elementos podem ser usados apenas para o elemento funcionário

51 Exemplo de declaração global Tipo pode ser usado apenas para o elemento endereço Tipo pode ser usado como tipo de outros elementos Elemento pode usado como conteúdo de outros elementos

52 Referência Pode-se referenciar um elemento, ou atributo, que tenha sido declarado anteriormente Elemento, ou atributo, referenciado deve ser global declarado no nível logo abaixo de schema …

53 Referência …

54 complexType Define restrições para o modelo de conteúdo de um determinado elemento Especificação de cardinalidade xs:minOccurs xs:maxOccurs Delimitadores de grupos de elementos

55 Cardinalidade xs:minOccurs número mínimo de vezes que um subelemento pode aparecer. Default = 1 xs:maxOccurs número máximo de vezes que um subelemento pode aparecer. Default = 1. Max = unbounded

56 Cardinalidade <xs:element name=quantidade" type=xs:integer minOccurs="0 maxOccurs=unbounded/> <xs:element name=classificacao" type=tClassific minOccurs="0 />

57 Elementos mistos Uso do atributo mixed No XML: esta é uma secao com texto e elementos este eh um paragrafo destro da secao e esta eh uma referencia dentro da secao

58 Exercício Construa um XMLSchema, de tal forma que o seguinte documento XML possa ser validado: JOAQUIM 00.000.000/0001-00 esta observação é sobre clientes especiais caneta azul 100 2

59 Valores para elementos <xs:element name=email" type=xs:string default=jcr@di.uminho.pt"/> Valor por omissão <xs:element name=supervisor" type=xs:string fixed=José Carlos Ramalho"/> Valor fixo

60 Delimitadores de grupo subelementos devem aparecer na instância XML na mesma ordem em que foram declarados no esquema somente um dos elementos declarados no grupo pode aparecer na instância os elementos do grupo podem aparecer uma vez JUNTOS ou nenhuma vez e podem aparecer em qualquer ordem

61 Sequence - exemplo No XML Schema: Na instancia XML: Osvaldo da Silva 1212121 OdaS@abc.def.br

62 Sequence – comparando com DTD No XML Schema: Na DTD:

63 Choice - exemplo No XML Schema: Na instancia XML: Projeto de Banco de dados 989898989 SQL Magazine 9

64 Choice – comparando com a DTD No XML Schema: Na DTD:

65 All - exemplo No XML Schema: Na instancia XML: Ana Clara ana@server.domain Universidade XYZ Todos juntos ou nada Sem restrição de ordem

66 All – comparando com a DTD No XML Schema: Na DTD:

67 Elementos vazios Declarar elemento somente com atributo: Instancia XML:

68 Derivação de Tipos Simples Tipos simples Derivados de tipos simples através de restrição. Processo: Um tipo simples é usado com base sobre ele são aplicadas facetas ou expressões regulares.

69 Restrições ou facetas length: define o comprimento de um tipo de dados minLength: define o comprimento mínimo de um tipo de dados maxLength: define o comprimento máximo de um tipo de dados pattern: define a expressão regular (Regular Expressions) a ser utilizada na validação do tipo enumaration: limita os valores possíveis de um tipo de dados a um conjunto previamente especificado whiteSpace: define como devem ser tratados os espaços em branco.

70 Restrições ou facetas minInclusive: limite mínimo considerando o valor especificado minExclusive: limite mínimo desconsiderando o valor especificado maxInclusive: limite máximo considerando o valor especificado maxExclusive: limite máximo desconsiderando o valor especificado totalDigits: número máximo de dígitos considerando a parte inteira e a parte decimal fractionDigits: número máximo de casas decimais

71 Facetas Faceta exclusive Limita um tipo simples a valores mínimo e máximo

72 Facetas A faceta enumeration Limita um tipo simples a um conjunto de valores distintos

73 Facetas Comparando o enumeration no XMLSchema com a DTD: ** XMLSchema ** DTD (só é possível delimitar valores para atributos) <!ATTLIST figura tipo NOTATION (jpeg|gif|bmp|tiff|wmf)>

74 Facetas Faceta pattern Possibilita a criação de máscaras para os valores....

75 Facetas Facetas fractionDigits, minInclusive e maxInclusive Possibilita definir como manipular tipos de dados como decimal ou float por exemplo Exemplo: Construção de um tipo número de filhos Nesse caso precisamos utilizar como tipo de dados base o tipo decimal, eliminar a quantidade de casas decimais, permitir apenas números positivos (incluindo o zero) e opcionalmente determinar um valor máximo (se seguirmos o Guinness Book esse valor é 900). O fragmento XML abaixo define uma das possibilidades de como esse tipo pode ser criado:

76 Facetas Facetas minLength, maxLength e whiteSpace Possibilita definir como manipular tipos de dados como string por exemplo Exemplo: Construção de um tipo de dados Nome Admitindo-se que o tipo de dados nome seja um texto com comprimento mínimo de 4 caractéres e máximo de 100 caractéres e que os espaços em branco duplicados devam ser substituídos por um único espaço em branco (André do Nascimento por André do Nascimento), pode-se construir o tipo de dados nome da seguinte forma:

77 Construção através de extensão por união Construir tipo por união significa dizer que o tipo construído assumirá todos os valores possíveis de seus tipos base. Esse tipo de construção não é muito comum na construção de documentos XSD, mas ainda assim representa uma possibilidade. A construção de tipos através de extensão por união necessita do atributo union e do elemento memberTypes para representar que o tipo de dados será construído através de extensão por união e quais tipos servirão como tipos base Exemplo:

78 Os tipos de dados primitivos xs:string xs:boolean xs:decimal xs:float xs:double xs:duration xs:dateTime xs:time xs:date xs:gYearMonth xs:gYear xs:gMonthDay xs:gDay xs:gMonth xs:hexBinary xs:base64Binary xs:anyURI xs:QName xs:NOTATION

79 Exercício Construir o XMLSchema para validar um documento XML com o cadastro de acesso de vários usuários de um site com as seguintes restricoes: O nome de um cliente com tamanho mínimo de 10 caractéres e tamanho máximo de 90 caractéres Um nick name com no mínimo dois caractéres e no máximo 20 caractéres Um e-mail válido Uma senha numérica com no mínimo seis e no máximo oito números O ano de nascimento (superior a 1950 e menor ou igual a 1992) O estado de origem (opcional) Uma opção (sim ou não) para controlar se seus dados (nome, e-mail, ano de nascimento e UF) podem ser visualizados por outros usuários

80 Exercicios XML para ser utilizado no exercicio Carlos Oberdan Rolim Ober oberdan@gmail.com minhasenha 1992 RS S


Carregar ppt "Tópicos de Sistemas de Informação A Carlos Oberdan Rolim Ciência da Computação."

Apresentações semelhantes


Anúncios Google