apostila xml, dtd, xsd e xslt

Post on 18-Jul-2015

565 Views

Category:

Education

10 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

XML: Utilização, validação e transformação

Ricardo Terra rterrabh [at] gmail.com

XML 1

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

CV

Nome: Ricardo Terra Email: rterrabh [at] gmail.com www: ricardoterra.com.br Twitter: rterrabh Lattes: lattes.cnpq.br/ 0162081093970868

Ph.D. (UFMG/UWaterloo), Post-Ph.D. (INRIA/Université Lille 1)

Background Acadêmico: UFLA (desde 2014), UFSJ (1 ano), FUMEC (3 anos), UNIPAC (1 ano), FAMINAS (3 anos)

Profissional: DBA Eng. (1 ano), Synos (2 anos), Stefanini (1 ano)

XML 2

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

Sumário

1.  Introdução à Linguagem XML

2.  Sintaxe XML

3.  Esquemas de validação (DTD e XML Schema)

4.  XSLT

3 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

1. INTRODUÇÃO À LINGUAGEM XML

4 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

1.1. W3C

§  World Wide Web Consortium (W3C) é um consórcio de várias empresas mundiais de tecnologia (aproximadamente 500 empresas) fundada por Tim Berners Lee no ano de 1994 com o objetivo de levar a Internet ao seu potencial máximo, através de desenvolvimento de protocolos comuns e fóruns abertos que promovem a sua evolução e garantem a sua interoperabilidade.

§  O W3C desenvolve tecnologias, ou melhor, padrões para a criação e a interpretação dos conteúdos para a Internet. Sites desenvolvidos segundo esses padrões, podem ser acessados e visualizados por qualquer pessoa ou tecnologia independente do hardware ou do software utilizados, por exemplo, PC com Linux, PDA com Windows CE, entre outros exemplos.

5 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009 XML

§  Apesar do W3C não ser muito conhecido no Brasil, seus padrões como Hyper Text Markup Language (HTML), Extensible Hypertext Markup Language (XHTML), Extensible Markup Language (XML) e Cascading Style Sheets (CSS), são muito populares, contudo em muitos casos são usados de forma errônea devido ao não conhecimento da especificação.

§  É da responsabilidade do desenvolvedor Web respeitar e seguir os padrões deste órgão, pois se assim não fizer, estará impondo barreiras tecnológicas a diversas pessoas e, com isto, desestimulando e até mesmo impedindo o acesso a suas páginas.

1.1. W3C

6

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

1.2. XML

§  1.2.1. Conceitos

§  1.2.2. Motivação

§  1.2.3. Características

§  1.2.4. Vantagens e Desvantagens

7 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

1.2.1. Conceitos

§  Extensible Markup Language (XML) se tornou uma recomendação da W3C no dia 10 de fevereiro de 1998 cujo objetivo seria a geração de linguagens de marcação para necessidades especiais.

§  O W3C começou a trabalhar em um projeto de uma linguagem de marcação que combinasse a flexibilidade do SGML (Standard Generalized Markup Language) com a simplicidade do HTML. O principio do projeto era criar uma linguagem que pudesse ser lida por software, e se integrar com as demais linguagens. Sua filosofia seria incorporada por vários princípios importantes:

8 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

1.2.1. Conceitos

§  separação do conteúdo e da formatação: é uma linguagem cujo aspecto importante é o conteúdo. A formatação poderia ser realizada por uma outra linguagem.

§  possibilidade de criação de tags sem limitação: o uso de tags pode ser altamente utilizado, sem nenhuma limitação, contudo a estrutura deve ser respeitada e seguida.

§  legibilidade tanto pelas pessoas quanto por máquinas: a estrutura do XML é bem completa e ilimitada e, ao mesmo tempo, simples tornando de fácil leitura por pessoas.

§  criação de arquivos para validação de estrutura: arquivos de validação, a serem visto posteriormente neste estudo, permitem verificar se um XML além de bem formado, é também válido de acordo com uma estrutura.

§  interligação: sua utilização permite interligar SGBDs (Sistema de Gerenciamento de Banco de Dados) distintos.

§  simplicidade

Existem linguagens baseadas em XML como RDF, SMIL, MathML, NCL, XSIL e SVG. O SVG, por exemplo, é um formato gráfico vetorial (graphics scalar vector) e o MathML é uma linguagem de marcação desenvolvida para o aspecto matemático.

9 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

1.2.2. Motivação

§  Maioria dos formatos de troca de dados eram: §  proprietários (custo); §  necessidades específicas (solução específica); §  binários (diferentes aplicações e plataformas).

10 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

1.2.3. Características

§  Provê uma forma baseada em texto: §  caractere é sua unidade principal; §  aplica uma estrutura baseada em árvore para armazenar a informação; §  facilidade na edição e manutenção.

§  Foco na informação. §  Simplicidade e legibilidade. §  Criação de marcações sem limitação.

11 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

1.2.4. Vantagens e Desvantagens

§  Dentre as principais vantagens, destacam-se: §  Formato legível para pessoas e máquinas. §  Suporta UNICODE, permitindo que quase qualquer linguagem escrita possa ser

comunicada. §  Representa a maioria das estruturas de dados da computação: registros, listas e

árvores. §  Seu próprio formato descreve a estrutura e os nomes dos campos.

§  Dentre algumas desvantagens, destacam-se:

§  Sintaxe cheia e redundante. §  A redundância pode afetar a eficiência através do armazenamento alto e do

custo de transmissão. §  A interpretação não suporta diretamente tipos de dados. §  Mapear o XML em um paradigma relacional ou orientado a objetos é uma tarefa

custosa, entretanto o inverso é fácil. §  Algumas pessoas insistem em dizer que o XML pode ser utilizado para

armazenamento de dados somente se o arquivo é de baixo volume; Todavia, este informação não é verdadeira, grandes estruturas XML podem ser acessadas muito rapidamente.

12 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

1.3. XML x HTML

§  Tanto o XML quanto o HTML são linguagens derivadas do SGML. O que alguns pensam é que o XML foi criado com o propósito de substituir o HTML. Isto não é verdade e, antes de comentarmos o porquê, falaremos um pouco sobre o HTML.

§  O HTML é uma linguagem de marcação cujo objetivo é produzir páginas na internet. Suas tags consistem em uma marca de início e outra de término, suas marca de início é simbolizada por < e sua marca de término por />.

§  O XML funciona como o HTML, possui tags de início e término, utiliza os mesmos símbolos, todavia não possui a maior característica do HTML: tags pré-estabelecidas. O XML é amplo, as tags são ilimitadas e qualquer tag pode ser criada desde que a estrutura seja mantida.

§  Enquanto o HTML é mais flexível, permitindo que não se feche algumas das tags, o XML é altamente estruturado. Isto indica que no XML, ao criar uma tag deve-se obrigatoriamente fechá-la, caso contrário, sua estrutura não será validada e o arquivo estará inválido; problema que não ocorre com o HTML no quais algumas de suas tags geralmente não são fechadas ou possuem alguma flexibilidade de estruturação.

13 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

2. SINTAXE XML

14 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

2.1. Sintaxe HTML

15 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

2.2. Partes do documento

Um documento XML bem-formado compreende três partes: §  Prólogo: Opcional. §  Corpo: Contém um ou mais elementos, na forma de uma árvore hierárquica. §  Epílogo: Opcional.

16 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

2.2.1. Prólogo

Um documento XML começa com um prólogo. O prólogo é usado para sinalizar o começo dos dados XML, descrever seu método de codificação de caractere,e apresentar algumas outras dicas de configuração ao parser XML. O mais importante componente do prólogo é a declaração XML. Todos os documento XML podem (e devem) começar com uma única declaração XML. Apesar da declaração usar uma sintaxe similar a uma instrução de processamento, tecnicamento falando dentro dos termos da recomendação XML não se trata de uma instrução. Veja a sintaxe completa da declaração XML: <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>!

17 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

2.2.1. Prólogo

Os atributos definidos pela especificação XML 1.0: §  version à obrigatória; valor tem que ser "1.0"; este atributo permite o suporte de

futuras versões do XML. §  encoding à opcional. O valor tem que ser uma codificação de caractere legal,

como "UTF-8", "UTF-16" ou "ISO-8859-1" (a codificação de latin1). Todos os parses XML devem oferecer suporte a pelo menos UTF-8 e UTF-16.

§  standalone ! opcional. O valor tem que ser “yes” ou “no”; onde “yes“ significa que todas as declarações de entidade necessárias estão contidas no elemento, e “no” significa que um DTD externo é necessário.

18 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

2.3. Elementos

Os elementos são blocos de construção básicos de uma marcação XML. Eles podem conter outros elementos, dados de caractere, referência de caractere, referências de entidade, instruções de processamento, comentários e/ou seções de CDATA. Todos estes termos serão abordados. Os elementos são delimitados usando tags que consistem em nome de tipo de elemento fechada por um par de parênteses angulares (“< >”). Todo elemento deve conter uma tag inicial e outra tag final (que não pode ser esquecida como no HTML): <h1>Olá</h1> à válido. <br> à inválido. Deve ser: <br></br> Exceção única quando é um elemento sem conteúdo, onde o elemento é representado por um par de tags inicial/final, ou usando-se uma forma híbrida abreviada, a tag de elemento vazia. Ex: <br> à inválido. <br /> à válido. Uma vez que representam objetos discretos, os elementos podem ser considerados como “substantivos”.

19 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

2.4. Elementos do documento

20 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

2.5. Aninhamento de elementos

21 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

2.6. Atributos

22 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

2.7. Referências de caractere e entidade

23 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

2.7.1. Referências de caractere

24 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

2.7.2. Referências de entidade

25 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

2.8. Instruções de processamento

26 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

2.9. Comentário

27 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

2.10. Seções CDATA

28 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3. ESQUEMAS DE VALIDAÇÃO

29 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.1. Modelagem de dados

30 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.2. XML bem formado e válido

31 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.3. Esquemas de validação

32 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.3. Esquemas de validação

33 XML

Nós pensamos que tão logo XML Schemas serão utilizados na maioria das aplicações Web como uma substituição aos DTDs. Estas são algumas razões: ! XML Schemas são extensíveis para adições futuras. ! XML Schemas são mais ricos e mais úteis que os DTDs. ! XML Schemas são escritos em XML ! XML Schemas suportam tipos de dados ! XML Schemas suportam namespaces (INTRODUCTION TO XML SCHEMA, W3C, 2006. Tradução nossa).

O mais interessante do XML Schema é o suporte aos tipos de dados. O DTD

somente consegue validar se é um tipo binário (PCDATA) ou tipo alfanumérico (CDATA) enquanto o XML Schema possui vários tipos de dados o que o torna mais ricos e com validações mais úteis. Por ser escrito em formato XML pode ser transformado em outro XML Schema utilizando o XSLT conferindo a ele a extensibilidade citada pelo W3C. Observando a quantidade de novos recursos que o XML Schema oferece, conclui-se que o XML Schema sucederá o DTD em pouco tempo. Veremos na Figura 3, um exemplo demonstrando um XML vinculado a uma validação DTD e uma validação pelo XML Schema.

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.3. Esquemas de validação

34 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.3. Esquemas de validação

35 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.4. DTD

36 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.4.1. Declaração Interna

37 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.4.2. Declaração Externa

38 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.4.3. Blocos de Construção de Documento XML

39 XML

No ponto de vista do DTD, todos os documentos XML são formados pela os seguintes simples blocos de construção:

! Elementos Elementos são os principais blocos de construção de documentos. Como já foi visto, elementos pode conter texto, outros elementos ou, simplesmente, ser vazios. Exemplos: <body>body text in between</body> <message>some message in between</message>

! Atributos Atributos provêm informações extras sobre os elementos. Atributos são sempre inseridos dentro na tag inicial do elemento. Atributos sempre vem na forma de pares de nome/valor. O elemento “img” tem informação adicional, observe: <img src="computer.gif" /> O nome do elemento é “img”. O nome do atributo é “src”. O valor do atributo é "computer.gif". Partindo do pressuposto que o elemento é vazio, ele é fechado utilizando uma marcação híbrida de abertura/fechamento.

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.4.3. Blocos de Construção de Documento XML

40 XML

! Entidades

Como já visto, entidades são variáveis usadas para definir texto comum.

! PCDATA PCDATA significa dados de caracteres a ser feito o parser. O texto sera examinado pelo parser para entidades e marcações. As marcações e entidades serão reconhecidas pelo parser.

! CDATA CDATA significa também dados de caractere. CDATA é um texto que NÃO será tratado pelo parser. Elementos e

entidades não serão tratados como elementos e entidades, respectivamente.

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.4.4. Elementos

41 XML

Em DTD, a declaração de elementos possui uma sintaxe própria: <!ELEMENT element-name category>

ou <!ELEMENT element-name (element-content)>

! Elementos Vazios: são declarados utilizando a palavra-chave de

categoria EMPTY: <!ELEMENT element-name EMPTY> example: <!ELEMENT br EMPTY> XML example: <br />

Obs: Vale observar que a sintaxe <br></br> também é válida, mas a sintaxe de marcação híbrida é muito mais elegante.

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.4.4. Elementos

42 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.4.4. Elementos

43 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.4.4. Elementos

44 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.4.4. Elementos

45 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.4.4. Elementos

46 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.4.4. Elementos

47 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.4.5. Atributos

48 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.4.5. Atributos

49 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.4.5. Atributos

50 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.4.5. Atributos

51 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.4.5. Atributos

52 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.4.5. Atributos

53 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.4.5. Atributos

54 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.4.6. Entidades

55 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.5. XML Schema

56 XML

Existem algumas características do XML Schema que devem ser lembradas e nunca esquecidas:

! XML Schema também é um padrão W3C; ! XML Schema é um alternativa baseada em XML para o DTD; ! Um XML Schema, como o DTD, descreve a estrutura de um documento

XML; ! XML Schema também é conhecido como XML Schema Definition, o que é

faz com que sua extensão seja (XSD). ! XML Schema vem como sucessor do DTD, principalmente por:

o ser extensível; o ser mais rico e mais poderoso; o ser escrito em XML; o suportar tipos de dados; o suportar espaço de nomes (namespaces)

O nosso interesse não é dominar todo o XML Schema, pois o mesmo é muito

amplo. Nosso intuito é aprender a utilizá-lo visando os mais utilizados recursos da linguagem.

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.5.1. Declaração

57 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.5.2. O elemento Schema

58 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.5.2. O elemento Schema

59 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.5.3. Referenciando um Schema em um XML

60 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.5.3. Referenciando um Schema em um XML

61 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.5.4. Elementos XSD Simples

62 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.5.4. Elementos XSD Simples

63 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.5.4. Elementos XSD Simples

64 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.5.4. Elementos XSD Simples

65 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.5.4. Elementos XSD Simples

66 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.5.4. Elementos XSD Simples

67 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.5.4. Elementos XSD Simples

68 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.5.4. Elementos XSD Simples

69 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.5.4. Elementos XSD Simples

70 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.5.4. Elementos XSD Simples

71 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.5.4. Elementos XSD Simples

72 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.5.4. Elementos XSD Simples

73 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.5.4. Elementos XSD Simples

74 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.5.4. Elementos XSD Simples

75 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.5.4. Elementos XSD Simples

76 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.5.4. Elementos XSD Simples

77 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.5.4. Elementos XSD Simples

78 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.5.5. Elementos XSD Complexos

79 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.5.5. Elementos XSD Complexos

80 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.5.5. Elementos XSD Complexos

81 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.5.5. Elementos XSD Complexos

82 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.5.5. Elementos XSD Complexos

83 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.5.5. Elementos XSD Complexos

84 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.5.5. Elementos XSD Complexos

85 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.5.5. Elementos XSD Complexos

86 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.5.5. Elementos XSD Complexos

87 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.5.5. Elementos XSD Complexos

88 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.5.5. Elementos XSD Complexos

89 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.5.5. Elementos XSD Complexos

90 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.5.5. Elementos XSD Complexos

91 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.5.5. Elementos XSD Complexos

92 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.5.5. Elementos XSD Complexos

93 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.5.5. Elementos XSD Complexos

94 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.5.5. Elementos XSD Complexos

95 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.5.5. Elementos XSD Complexos

96 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.5.5. Elementos XSD Complexos

97 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.5.5. Elementos XSD Complexos

98 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.5.5. Elementos XSD Complexos

99 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.5.5. Elementos XSD Complexos

100 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

3.5.5. Elementos XSD Complexos

101 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

4. XSLT

102 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

4. XSLT

103 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

4. XSLT

104 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

4.1. XSLT e CSS

105 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

4.2. Características, objetivos e cenários aplicáveis

106 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

4.2. Características, objetivos e cenários aplicáveis

107 XML

! XSLT deve ser desenvolvida para ser livre de efeitos colaterais. Em outras palavras, XSLT é desenvolvida para que várias diferentes regras de estilo possam ser aplicadas simultaneamente. O maior impacto disto é que as variáveis não podem ser modificadas (static binding). Uma vez iniciada a variável, você não poderá alterar seu valor; se as variáveis pudessem ser alteradas, então o processamento de uma regra de estilo poderia gerar efeitos laterais, que impactaria outras regras de estilo.

XSLT é altamente influenciada pelo projeto de linguagens de programação funcional, tal como Lisp, Scheme e Haskell. Estas linguagens também possuem variáveis imutáveis como característica. Ao invés de definir regras como o XSLT, linguagens de programação funcional definem programas como uma série de funções, cada uma delas gera uma saída bem definida (livre de efeitos colaterais, com certeza) em resposta a uma entrada bem definida. O objetivo é executar as instruções de uma dada regra XSLT sem afetar a execução de qualquer outra regra. (TIDWELL, 2001, p. 03. Tradução nossa).

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

4.2. Características, objetivos e cenários aplicáveis

108 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

4.2. Características, objetivos e cenários aplicáveis

109 XML

Acima observamos várias características e objetivos do XSLT. Estas informações são altamente relevantes, pois nos faz pensar na seguinte questão: Onde poderemos utilizar esta tecnologia? E, ainda a partir das idéias do Tidwell, cito:

! Seu website necessita entregar informações para uma variedade de dispositivos, isto é, computadores, celulares, notebooks, palmtops, entre outros dispositivos. Seria excelente disponibilizar estas informações em documentos estruturados e, então transformá-los em qualquer formato que necessite.

! Você necessita trocar informações de uma de suas empresas com outras, mas você utiliza diferentes sistemas de banco de dados. Seria excelente se pudesse definir um XML comum de formato de dado e, então transformá-lo no arquivo de importação que necessita (SQLs, comma-separated values , entre outros formatos de importação de dados existentes).

! Informação XML de um outro sistema deve ter sua estrutura modificada para que seja armazenada no sistema local.

! Sistemas como J2EE, .NET, Natural Web pode responder a uma requisição de um usuário com uma página XML e, este XML ser convertido em HTML na máquina-cliente.

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

4.2. Características, objetivos e cenários aplicáveis

110 XML

Como pôde ser visto, existem vários cenários no qual a aplicação do XSLT é altamente apropriada. Estes vários cenários, na visão de Kay (2004) podem ser descritos simplesmente em dois cenários principais:

! Conversão de dados; ! Apresentação (publicação) de dados.

Em uma visão altamente superficial cujo propósito é expor o que será visto a

frente podemos definir como conversão de dados, toda situação em que você necessita de converter um XML em um outro XML, com as mesmas ou a grande maioria das informações em uma estrutura igual ou diferente para uma outra aplicação. Em contrapartida, podemos definir como apresentação de dados, toda situação em que você, a partir de um documento XML, necessite publicar seu conteúdo de uma forma mais apresentável, seja HTML, PDF ou até gráficos, músicas (MIDI), etc.

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

4.3. Prática do XSLT

111 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

4.3. Prática do XSLT

112 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

4.3. Prática do XSLT

113 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

4.3. Prática do XSLT

114 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

4.3. Prática do XSLT

115 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

4.3.1. Regras (Templates)

116 XML

Uma folha de estilos XSLT consiste em 1 ou mais grupo de regras chamados templates.

Cada template contém regras para serem aplicadas quando um nodo específico é encontrado.

! O elemento <xsl:template>

O elemento <xsl:template> é utilizado para construir templates.

• O atributo match é utilizado para associar um template com um elemento

XML. Este atributo também pode ser utilizado para definir um template para o documento XML inteiro. O valor deste atributo é uma expressão XPath (que não será abordada a fundo na disciplina), isto é, quando você disser match=”/”, indica o elemento raiz do documento.

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

4.3.1. Regras (Templates)

117 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

4.3.2. O elemento <xsl:value-of>

118 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

4.3.2. O elemento <xsl:value-of>

119 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

4.3.3. O elemento <xsl:for-each>

120 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

4.3.3. O elemento <xsl:for-each>

121 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

4.3.3. O elemento <xsl:for-each>

122 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

4.3.3. O elemento <xsl:for-each>

123 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

4.3.4. O elemento <xsl:sort>

124 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

4.3.4. O elemento <xsl:sort>

125 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

4.3.5. O elemento <xsl:if>

126 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

4.3.5. O elemento <xsl:if>

127 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

4.3.5. O elemento <xsl:if>

128 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

4.3.6. O elemento <xsl:choose>

129 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

4.3.6. O elemento <xsl:choose>

130 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

4.3.6. O elemento <xsl:choose>

131 XML

A saída do campo departamento será de acordo com o seu valor, caso nenhum bata, será o valor do próprio documento XML, observe a saída:

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

4.3.7. O elemento <xsl:apply-templates>

132 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

4.3.7. O elemento <xsl:apply-templates>

133 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

4.3.7. O elemento <xsl:apply-templates>

134 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

4.3.8. O elemento <xsl:output>

135 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

4.3.9. O elemento <xsl:variable>

136 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

4.3.9. O elemento <xsl:variable>

137 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

Bibliografia

§  ABOUT the World Wide Web Consortium, W3C. Disponível em: <http://www.w3.org/Consortium/>. Acesso em: 16 abr. 2006.

§  BOOLEAN, Wikipédia. Disponível em: <http://en.wikipedia.org/wiki/Boolean>. Acesso em: 11 jun. 2006.

§  BRAGANHOLO, Vanessa de Paula; HEUSER, Carlos A. XML Schema, RDF(S) e UML: uma comparação. Disponível em: <http://www.dcc.ufrj.br/~braganholo/ artigos/ideas2001.pdf >. Acesso em: 04 jun. 2006.

§  DUCHARME, Bob. XSLT. Rio de Janeiro: Ciência Moderna, 2002. §  EXTENSIBLE Markup Language (XML), W3C. Disponível em: <http://

www.w3.org/XML/>. Acesso em: 21 fev. 2006. §  FLAG: computing, Wikipédia. Disponível em: <http://en.wikipedia.org/ wiki/

Flag_(computing)>. Acesso em: 11 jun. 2006. §  HTML, Wikipédia. Disponível em: <http://pt.wikipedia.org/wiki/HTML/>. Acesso

em: 16 abr. 2006. §  HYPERTEXT Markup Language (HTML) Home Page, W3C. Disponível em:

<http://www.w3.org/MarkUp/>. Acesso em: 16 abr. 2006. §  INTRODUCTION TO DTD, W3C. Disponível em: <http://www.w3schools.com/

dtd/dtd_intro.asp>. Acesso em: 27 maio 2006.

138 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

Bibliografia

§  INTRODUCTION TO XML SCHEMA, W3C. Disponível em: <http://www.w3schools.com/schema/schema_intro.asp>. Acesso em: 21 maio 2006.

§  KAY, Michael. XSLT programmer’s reference. Birmingham: Wrox Press, 2000. §  KAY, Michael. XSLT 2.0 programmer’s reference. 3 ed. Indianapolis: Wiley

Publishing, 2004. §  MACORATTI, José Carlos. Conceitos básicos de modelagem de dados.

Disponível em: <http://www.macoratti.net/cbmd1.htm>. Acesso em: 27 maio 2006.

§  MYER, Tom. A really, really, really good introduction to XML. Disponível em: <http://www.sitepoint.com/article/really-good-introduction-xml>. Acesso em: 21 maio 2006.

§  NAMESP ACE: Computer science. Wikipédia. Disponível em: <http://en.wikipedia.org/wiki/Namespace_(computer_science)#XML>. Acesso em: 27 maio 2006.

§  REFSNES, Jan Egil. XML DTD: an introduction to XML document type definitions. Disponível em: <http://www.xmlfiles.com/dtd/default.asp>. Acesso em: 21 maio 2006.

§  SERIALIZATION, Wikipédia. Disponível em: <http://en.wikipedia.org/wiki/ Serialization>. Acesso em: 10 jun. 2006.

139 XML

Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009

Bibliografia

§  SISTEMA DE GERENCIAMENTO de banco de dados, Wikipédia. Disponível em: <http://pt.wikipedia.org/wiki/SGBD>. Acesso em: 11 jun. 2006.

§  TIDWELL, Doug. XSLT. Sebastopol: O'Reilly Media, 2001. §  W3C, Wikipédia. Disponível em: <http://pt.wikipedia.org/wiki/W3C/>. Acesso em:

16 abr. 2006. §  XML, Wikipédia. Disponível em: <http://pt.wikipedia.org/wiki/XML/>. Acesso em:

16 abr. 2006. §  XML Path Language (XPath) 2.0, W3C, 03 nov. 2005. Disponível em: <http://

www.w3.org/TR/xpath20/>. Acesso em: 05 mar. 2006. §  XML Schema Part 0: Primer Second Edition, W3C, 28 out. 2004. Disponível em:

<http://www.w3.org/TR/xmlschema-0/>. Acesso em: 21 fev. 2006. §  XML TO XML WITH XSLT. Disponível em: <http://www.topxml.com/xslt

Stylesheets/xslt_XML_to_XML.asp>. Acesso em: 04 jun. 2006. §  XPATH Tutorial, W3Schools. Disponível em: <http://www.macoratti.net/

vb_xpath.htm>. Acesso em: 14 mar. 2006. §  XSL Transformations (XSLT) Version 2.0, W3C, 03 nov. 2005. Disponível em:

<http://www.w3.org/TR/xslt20/>. Acesso em: 21 fev. 2006.

140 XML

top related