0% acharam este documento útil (0 voto)
3 visualizações55 páginas

JavaWebXML XML

O documento apresenta uma introdução ao XML, abordando conceitos fundamentais como SGML, validação de XML, DTD e XML/Schema, além de processamento XML com XSLT. Também discute a estrutura de documentos XML, incluindo elementos, atributos, e a importância da validação. A bibliografia inclui referências sobre programação em Java e recursos online para aprofundamento no tema.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
3 visualizações55 páginas

JavaWebXML XML

O documento apresenta uma introdução ao XML, abordando conceitos fundamentais como SGML, validação de XML, DTD e XML/Schema, além de processamento XML com XSLT. Também discute a estrutura de documentos XML, incluindo elementos, atributos, e a importância da validação. A bibliografia inclui referências sobre programação em Java e recursos online para aprofundamento no tema.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 55

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 Language
„ XML Validação
„ DTD x XML/Schema
„ XML Processing - XSLT

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 2

1
Bibliografia
„ Linguagem de Programação JAVA
„ Ismael H. F. Santos, Apostila UniverCidade, 2002
„ The Java Tutorial: A practical guide for programmers
„ Tutorial on-line: http://java.sun.com/docs/books/tutorial
„ Java in a Nutshell
„ David Flanagan, O´Reilly & Associates
„ Just Java 2
„ Mark C. Chan, Steven W. Griffith e Anthony F. Iasi, Makron
Books.
„ Java 1.2
„ Laura Lemay & Rogers Cadenhead, Editora Campos

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 3

Livros
„ Core Java 2, Cay S. Horstmann, Gary Cornell
Volume 1 (Fundamentos)
„
„ Volume 2 (Características Avançadas)
„ Java: Como Programar, Deitel & Deitel
„ Thinking in Patterns with JAVA, Bruce Eckel
„ Gratuito. http://www.mindview.net/Books/TIJ/

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 4

2
POO-Java SGML

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 5

SGML - Standard Generalized Markup


Language
„ ISO 8879 definido em 1986
„ Conceitos básicos:
„ separação entre conteúdo e apresentação de
documentos
„ conteúdo estruturado logicamente
„ informação específica à apresentação
„ objetivo principal do SGML é estruturar a
informação, lidando com conteúdo e estrutura
„ apresentação é feita usando outros
mecanismos (style sheets)
April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 6

3
SGML - Standard Generalized Markup
Language
„ Marcação descritiva
(documento pode ser
processado por
diferentes programas)

„ Documento tipado
(método padrão para
descrever a estrutura do
documento)

„ Independêcia de sistema
para representar o script
no qual o texto é escrito

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 7

SGML - Standard Generalized Markup


Language
„ Uso em larga escala:
„ HTML 2.0: especificado como aplicação SGML (1994)

„ Conteúdo:
„ elementos lógicos estruturados
hierarquicamente =>
Árvore do Documento
(Document Tree)

„ Processamento automatizado do documento


„ índice, lista de figuras, tabelas

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 8

4
SGML
<antologia>
„ Classe de documentos <poema><titulo>São demais os perigos desta
vida</titulo>
especificada através de <estrofe>
<linha>São demais os perigos desta vida</linha>

uma DTD - Document <linha>pra quem tem paixão</linha>


<linha>Principalmente quando uma lua chega de
repente</linha>
Type Definition <linha>e se deixa no céu como esquecida</linha>
</estrofe>
<estrofe>
„ os elementos de uma <linha>E se ao luar que atua desvairado</linha>
<linha>vem se unir uma música qualquer</linha>
classe de documentos e <linha>Aí, então, é preciso ter cuidado</linha>
<linha>porque deve andar perto uma mulher</linha>
seus atributos </estrofe>
<estrofe>
<linha>Uma mulher que é feita</linha>
„ as regras para combinar <linha>de música, luar e sentimento</linha>
<linha>E que a vida não quer de tão perfeita</linha>
esses elementos, </estrofe>
<estrofe>
especificando o <linha>Uma mulher que é como a própria
lua</linha>
conteúdo permitido para <linha>Tão linda que só espalha sofrimento</linha>
<linha>Tão cheia de pudor que vive nua</linha>
cada elemento </estrofe>
</poema>
<!-- mais poemas -->
</antologia> ( ... poema de Vinícius de Moraes )
April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 9

SGML
„ DTD
„ <!ELEMENT antologia (poema+)>
„ <!ELEMENT poema (titulo?,estrofe+)>
„ <!ELEMENT titulo (#PCDATA)>
„ <!ELEMENT estrofe (linha+)>
„ <!ELEMENT linha (#PCDATA)>

„ Exemplo de DTD de um livro:


„ <!ELEMENT book (author, heading, chapter+)>
„ <!ELEMENT chapter (heading, (paragraph|figure)*, section*)>
„ <!ELEMENT section (heading, (paragraph|figure)*)>
„ <!ELEMENT (author|heading) (#PCDATA)>
„ <!ELEMENT paragraph ((#PCDATA|reference)*)>
„ <!ELEMENT reference EMPTY>
April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 10

5
SGML
„ Especificando atributos dos elementos
<!ATTRLIST (chapter|section) id CDATA #IMPLIED>
„
<!ATTRLIST reference id CDATA #REQUIRED type
„
(section|page) section>
„ Usando
„ <chapter id=“sgml”>
„ <heading>Standard Generalized Markup Language</heading>
„ <paragraph> ... </paragraph>
„ <section id=“content”>
„ <heading>Content and Presentation</heading>
„ <paragraph> ... </paragraph>
„ ... in section <reference type=“section”
id=“content”></reference> on page <reference type=“page”
id=“content”></reference> bla bla bla ...

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 11

Parser SGML
„ Declaração SGML
„ delimitadores de
marcação
„ nomes reservados
(ELEMENT, ATTRLIST, ...)
„ tamanho máximo dos
nomes dos elementos
„ se delimitadores de
ínicio e fim podem ser
opcionais
„ • DTD
„ • Documento
April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 12

6
POO-Java XML

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 13

XML – Extensible Markup Language


„ XML é um documento de Texto
„ Dois tipos de elementos
„ Marcação – Guarda a estrutura do documento
„ Dados – Informação propriamente dita
„ Uma maneira de representar informação
„ não é uma linguagem específica
„ não define vocabulário de comandos
„ não define uma gramática, apenas regras mínimas
„ Exemplo:

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 14

7
XML x HTML
„ HTML mostra
como
apresentar

„ XML mostra
o que
significa

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 15

Anatomia de um documento XML

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 16

8
Componentes de um documento XML
„ Árvore XML
„ nós,
„ raiz,
„ galhos e
„ folhas
„ Prólogo
„ Comentários
„ Instruções de processamento
„ Elementos
„ Atributos
„ Nós de texto
„ Entidades

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 17

Partes de um documento XML

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 18

9
Árvore XML

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 19

Estrutura XML

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 20

10
Prólogo XML

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 21

Nó raiz e elementos

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 22

11
Atributos

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 23

Nós de Texto

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 24

12
Entidades

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 25

Entidades de caracteres

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 26

13
Elementos e Atributos

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 27

Elementos e Atributos (2)

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 28

14
Quando usar elementos/atributos
„ Questão de design
„ Elementos geralmente referem-se a coisas
que têm atributos
„ Atributos geralmente são características
dessas coisas que podem ser descritas com
poucas palavras
„ Questão de suporte tecnológico
„ Atributos não podem conter subelementos
„ Atributos são mais fáceis de serem
validados num DTD
April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 29

Identificadores
„ Nomes de atributos e elementos
„ Podem conter
„ qualquer caractere alfanumérico ou
ideograma
„ . (ponto)
„ - (hífen)
„ _ (sublinhado)
„ Não podem começar com
„ ponto,
„ hífen ou
„ número
April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 30

15
Identificadores (2)

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 31

Conteúdo misto

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 32

16
Seção CDATA (Character DATA)

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 33

Instruções de processamento

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 34

17
Declaração XML

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 35

Documento XML bem-formado


„ Documento bem-formado
„ ter um único elemento raiz
„ etiquetas iniciais e finais combinam (levando em conta
que caracteres maiúsculos e minúsculos são diferentes)
„ elementos bem aninhados
„ valores de atributos entre aspas ou apóstrofes
„ atributos não repetidos
„ identificadores válidos para elementos e atributos
„ comentários não devem aparecer dentro das etiquetas
„ sinais < ou & nunca devem ocorrer dentro dos valores
dos atributos ou nos nós de texto do documento.

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 36

18
XML Namespaces

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 37

XML Namespaces
„ Limita o escopo de elementos
Evita conflitos quando duas linguagens se cruzam no
„
mesmo documento
„ Consiste da associação de um identificador a cada
elemento/atributo da linguagem, que pode ser
„ herdado através do escopo de uma sub-árvore
„ atribuído explicitamente através de um prefixo

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 38

19
Outro Exemplo

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 39

Exemplo com 3 Namespaces

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 40

20
Por que usar XML para compartilhar dados?
„ Porque é um padrão aberto
„ Facilidade para converter para formatos proprietários
„ Porque é texto
„ Fácil de ler, fácil de processar, menos
incompatibilidades
„ Porque promove a separação entre estrutura,
conteúdo e apresentação
„ Facilita geração de dados para visualização dinâmica
„ Evita repetição de informação / simplifica manutenção

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 41

Por que usar XML para compartilhar dados?


„ Porque permitirá semântica na Web
„ Elementos HTML não carregam significado, apenas
dicas de formatação: mecanismos de busca ficam
prejudicados
„ Solução com XML dependerá de suporte dos clientes

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 42

21
POO-Java XML
Validação

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 43

Por que validar ?

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 44

22
Definindo um Esquema XML

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 45

Classes x Instâncias

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 46

23
Documentos Válidos

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 47

O que define um Esquema XML

DTD

Documento Váido

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 48

24
Documentos não-válidos
„ Diga porque os documentos são não-válidos ?

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 49

DTD Externo SYSTEM

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 50

25
DTD Publico

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 51

DTD Interno

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 52

26
DTD Incompleto

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 53

DTD exemplo

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 54

27
<!ELEMENT> e #PCDATA

„ PCDATA - Parsed Character Data


„ Elemento pode conter texto
„ Não pode conter elementos

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 55

Seqüências de Elementos-filho

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 56

28
Seleção de um Elemento-filho

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 57

Conteúdo Misto

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 58

29
Elementos Vazios e Any

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 59

<!ATTLIST>

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 60

30
Exemplos

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 61

Tipos de Dados XML

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 62

31
CDATA e NMTOKEN

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 63

Seleção

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 64

32
ID

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 65

IDREF

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 66

33
IDREFS

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 67

Valores Default

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 68

34
<!NOTATION> e tipo NOTATION

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 69

<!ENTITY>

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 70

35
Entidades gerais internas

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 71

Entidades gerais externas

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 72

36
Entidades externas não processadas

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 73

Entidades de parâmetro

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 74

37
Entidades de parâmetro externas

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 75

Condicionais

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 76

38
Utilidades dos Condicionais

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 77

Namespaces e XML Schema

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 78

39
POO-Java DTD
x
XML/Schema

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 79

XLink

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 80

40
Exemplos de XLink

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 81

XPointer

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 82

41
Onde usar XML?

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 83

Como produzir XML

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 84

42
Documentos XML bem formados
„ Para que possa ser manipulado como uma árvore,
um documento XML precisa ser bem formado
„ Documentos que não são bem formados não são
documentos XML
„ Documentos bem-formados obedecem as regras de
construção de documentos XML genéricos
„ Regras incluem
„ Ter um, e apenas um, elemento raiz
„ Valores dos atributos estarem entre aspas ou
apóstrofes
„ Atributos não se repetirem
„ Todos os elementos terem etiqueta de fechamento
„ Elementos estarem corretamente aninhados
April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 85

XML válido
„ Um XML bem construído pode não ser válido em
determinada aplicação
„ Aplicação típica pode esperar que
„ elementos façam parte de um vocabulário limitado,
„ certos atributos tenham valores e tipos definidos,
„ elementos sejam organizados de acordo com uma
determinada estrutura hierárquica, etc.
„ É preciso especificar a linguagem!
„ Esquema: modelo que descreve todos os elementos,
atributos, entidades, suas relações e tipos de dados
„ Um documento XML é considerado válido em relação a
um esquema se obedecer todas as suas regras

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 86

43
Esquemas XML

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 87

DTD vs. XML Schema

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 88

44
POO-Java XML
Processing

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 89

Visualização em um browser
„ Folha de estilo: conjunto de regras para formatar
ou transformar as informações de um documento
XML

„ CSS - Cascading Style Sheets


„ Transformação visando apresentação visual
„ Aplicação do estilo em tempo de execução no
cliente

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 90

45
Visualização em um browser
„ XSLT - eXtensible Stylesheet Language
„ Transformação em texto, HTML ou outro formato
„ Aplicação em tempo real ou prévia (no servidor)

„ Se não estiver associado a uma folha de estilo, o


documento XML não tem uma "aparência"
definida
„ Internet Explorer e outros mostram a árvore-fonte
XML
„ Netscape mostra apenas os nós de texto

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 91

Como manipular XML?


„ Há duas APIs padrão para manipular (interpretar,
gerar, extrair dados e tratar eventos) arquivos XML:
„ W3C Document Object Model (W3C DOM)
„ Simple API for XML (SAX)
„ Servem a finalidades diferentes
„ Implementações disponíveis em várias linguagens
„ SAX oferece métodos que respondem a eventos
produzidos durante a leitura do documento
„ notifica quando um elemento abre, quando fecha, etc.
„ DOM monta uma árvore, que permite a navegação na
estrutura do documento
„ propriedades dos objetos podem ser manipuladas
April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 92

46
Leitura de XML com SAX

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 93

Criação de documentos com DOM (1)

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 94

47
Criação de documentos com DOM (2)

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 95

XPath

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 96

48
XSLT

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 97

XSLT: documento-fonte (1)

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 98

49
XSLT: folha de estilos (2)

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 99

XSLT: documento-resultado (3)

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 100

50
XLink, XPointer e XQuery

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 101

XSL-FO

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 102

51
XSL-FO: menor documento

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 103

XHTML

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 104

52
SVG

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 105

Exemplo SVG

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 106

53
Algumas outras linguagens XML

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 107

Ferramentas XML

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 108

54
Conclusões

April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 109

55

Você também pode gostar