apostila xml, dtd, xsd e xslt
TRANSCRIPT
![Page 1: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/1.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
XML: Utilização, validação e transformação
Ricardo Terra rterrabh [at] gmail.com
XML 1
![Page 2: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/2.jpg)
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
![Page 3: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/3.jpg)
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
![Page 4: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/4.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
1. INTRODUÇÃO À LINGUAGEM XML
4 XML
![Page 5: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/5.jpg)
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
![Page 6: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/6.jpg)
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
![Page 7: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/7.jpg)
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
![Page 8: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/8.jpg)
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
![Page 9: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/9.jpg)
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
![Page 10: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/10.jpg)
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
![Page 11: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/11.jpg)
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
![Page 12: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/12.jpg)
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
![Page 13: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/13.jpg)
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
![Page 14: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/14.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
2. SINTAXE XML
14 XML
![Page 15: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/15.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
2.1. Sintaxe HTML
15 XML
![Page 16: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/16.jpg)
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
![Page 17: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/17.jpg)
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
![Page 18: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/18.jpg)
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
![Page 19: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/19.jpg)
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
![Page 20: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/20.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
2.4. Elementos do documento
20 XML
![Page 21: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/21.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
2.5. Aninhamento de elementos
21 XML
![Page 22: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/22.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
2.6. Atributos
22 XML
![Page 23: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/23.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
2.7. Referências de caractere e entidade
23 XML
![Page 24: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/24.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
2.7.1. Referências de caractere
24 XML
![Page 25: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/25.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
2.7.2. Referências de entidade
25 XML
![Page 26: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/26.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
2.8. Instruções de processamento
26 XML
![Page 27: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/27.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
2.9. Comentário
27 XML
![Page 28: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/28.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
2.10. Seções CDATA
28 XML
![Page 29: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/29.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3. ESQUEMAS DE VALIDAÇÃO
29 XML
![Page 30: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/30.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.1. Modelagem de dados
30 XML
![Page 31: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/31.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.2. XML bem formado e válido
31 XML
![Page 32: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/32.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.3. Esquemas de validação
32 XML
![Page 33: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/33.jpg)
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.
![Page 34: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/34.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.3. Esquemas de validação
34 XML
![Page 35: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/35.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.3. Esquemas de validação
35 XML
![Page 36: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/36.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.4. DTD
36 XML
![Page 37: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/37.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.4.1. Declaração Interna
37 XML
![Page 38: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/38.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.4.2. Declaração Externa
38 XML
![Page 39: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/39.jpg)
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.
![Page 40: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/40.jpg)
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.
![Page 41: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/41.jpg)
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.
![Page 42: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/42.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.4.4. Elementos
42 XML
![Page 43: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/43.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.4.4. Elementos
43 XML
![Page 44: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/44.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.4.4. Elementos
44 XML
![Page 45: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/45.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.4.4. Elementos
45 XML
![Page 46: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/46.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.4.4. Elementos
46 XML
![Page 47: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/47.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.4.4. Elementos
47 XML
![Page 48: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/48.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.4.5. Atributos
48 XML
![Page 49: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/49.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.4.5. Atributos
49 XML
![Page 50: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/50.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.4.5. Atributos
50 XML
![Page 51: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/51.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.4.5. Atributos
51 XML
![Page 52: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/52.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.4.5. Atributos
52 XML
![Page 53: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/53.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.4.5. Atributos
53 XML
![Page 54: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/54.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.4.5. Atributos
54 XML
![Page 55: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/55.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.4.6. Entidades
55 XML
![Page 56: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/56.jpg)
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.
![Page 57: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/57.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.5.1. Declaração
57 XML
![Page 58: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/58.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.5.2. O elemento Schema
58 XML
![Page 59: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/59.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.5.2. O elemento Schema
59 XML
![Page 60: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/60.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.5.3. Referenciando um Schema em um XML
60 XML
![Page 61: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/61.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.5.3. Referenciando um Schema em um XML
61 XML
![Page 62: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/62.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.5.4. Elementos XSD Simples
62 XML
![Page 63: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/63.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.5.4. Elementos XSD Simples
63 XML
![Page 64: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/64.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.5.4. Elementos XSD Simples
64 XML
![Page 65: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/65.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.5.4. Elementos XSD Simples
65 XML
![Page 66: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/66.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.5.4. Elementos XSD Simples
66 XML
![Page 67: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/67.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.5.4. Elementos XSD Simples
67 XML
![Page 68: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/68.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.5.4. Elementos XSD Simples
68 XML
![Page 69: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/69.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.5.4. Elementos XSD Simples
69 XML
![Page 70: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/70.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.5.4. Elementos XSD Simples
70 XML
![Page 71: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/71.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.5.4. Elementos XSD Simples
71 XML
![Page 72: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/72.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.5.4. Elementos XSD Simples
72 XML
![Page 73: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/73.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.5.4. Elementos XSD Simples
73 XML
![Page 74: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/74.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.5.4. Elementos XSD Simples
74 XML
![Page 75: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/75.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.5.4. Elementos XSD Simples
75 XML
![Page 76: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/76.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.5.4. Elementos XSD Simples
76 XML
![Page 77: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/77.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.5.4. Elementos XSD Simples
77 XML
![Page 78: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/78.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.5.4. Elementos XSD Simples
78 XML
![Page 79: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/79.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.5.5. Elementos XSD Complexos
79 XML
![Page 80: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/80.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.5.5. Elementos XSD Complexos
80 XML
![Page 81: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/81.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.5.5. Elementos XSD Complexos
81 XML
![Page 82: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/82.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.5.5. Elementos XSD Complexos
82 XML
![Page 83: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/83.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.5.5. Elementos XSD Complexos
83 XML
![Page 84: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/84.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.5.5. Elementos XSD Complexos
84 XML
![Page 85: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/85.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.5.5. Elementos XSD Complexos
85 XML
![Page 86: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/86.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.5.5. Elementos XSD Complexos
86 XML
![Page 87: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/87.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.5.5. Elementos XSD Complexos
87 XML
![Page 88: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/88.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.5.5. Elementos XSD Complexos
88 XML
![Page 89: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/89.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.5.5. Elementos XSD Complexos
89 XML
![Page 90: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/90.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.5.5. Elementos XSD Complexos
90 XML
![Page 91: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/91.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.5.5. Elementos XSD Complexos
91 XML
![Page 92: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/92.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.5.5. Elementos XSD Complexos
92 XML
![Page 93: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/93.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.5.5. Elementos XSD Complexos
93 XML
![Page 94: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/94.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.5.5. Elementos XSD Complexos
94 XML
![Page 95: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/95.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.5.5. Elementos XSD Complexos
95 XML
![Page 96: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/96.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.5.5. Elementos XSD Complexos
96 XML
![Page 97: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/97.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.5.5. Elementos XSD Complexos
97 XML
![Page 98: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/98.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.5.5. Elementos XSD Complexos
98 XML
![Page 99: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/99.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.5.5. Elementos XSD Complexos
99 XML
![Page 100: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/100.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.5.5. Elementos XSD Complexos
100 XML
![Page 101: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/101.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
3.5.5. Elementos XSD Complexos
101 XML
![Page 102: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/102.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
4. XSLT
102 XML
![Page 103: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/103.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
4. XSLT
103 XML
![Page 104: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/104.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
4. XSLT
104 XML
![Page 105: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/105.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
4.1. XSLT e CSS
105 XML
![Page 106: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/106.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
4.2. Características, objetivos e cenários aplicáveis
106 XML
![Page 107: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/107.jpg)
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).
![Page 108: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/108.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
4.2. Características, objetivos e cenários aplicáveis
108 XML
![Page 109: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/109.jpg)
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.
![Page 110: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/110.jpg)
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.
![Page 111: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/111.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
4.3. Prática do XSLT
111 XML
![Page 112: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/112.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
4.3. Prática do XSLT
112 XML
![Page 113: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/113.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
4.3. Prática do XSLT
113 XML
![Page 114: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/114.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
4.3. Prática do XSLT
114 XML
![Page 115: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/115.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
4.3. Prática do XSLT
115 XML
![Page 116: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/116.jpg)
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.
![Page 117: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/117.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
4.3.1. Regras (Templates)
117 XML
![Page 118: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/118.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
4.3.2. O elemento <xsl:value-of>
118 XML
![Page 119: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/119.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
4.3.2. O elemento <xsl:value-of>
119 XML
![Page 120: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/120.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
4.3.3. O elemento <xsl:for-each>
120 XML
![Page 121: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/121.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
4.3.3. O elemento <xsl:for-each>
121 XML
![Page 122: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/122.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
4.3.3. O elemento <xsl:for-each>
122 XML
![Page 123: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/123.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
4.3.3. O elemento <xsl:for-each>
123 XML
![Page 124: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/124.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
4.3.4. O elemento <xsl:sort>
124 XML
![Page 125: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/125.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
4.3.4. O elemento <xsl:sort>
125 XML
![Page 126: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/126.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
4.3.5. O elemento <xsl:if>
126 XML
![Page 127: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/127.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
4.3.5. O elemento <xsl:if>
127 XML
![Page 128: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/128.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
4.3.5. O elemento <xsl:if>
128 XML
![Page 129: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/129.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
4.3.6. O elemento <xsl:choose>
129 XML
![Page 130: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/130.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
4.3.6. O elemento <xsl:choose>
130 XML
![Page 131: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/131.jpg)
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:
![Page 132: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/132.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
4.3.7. O elemento <xsl:apply-templates>
132 XML
![Page 133: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/133.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
4.3.7. O elemento <xsl:apply-templates>
133 XML
![Page 134: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/134.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
4.3.7. O elemento <xsl:apply-templates>
134 XML
![Page 135: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/135.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
4.3.8. O elemento <xsl:output>
135 XML
![Page 136: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/136.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
4.3.9. O elemento <xsl:variable>
136 XML
![Page 137: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/137.jpg)
Ricardo Terra (rterrabh [at] gmail.com) Dezembro, 2009
4.3.9. O elemento <xsl:variable>
137 XML
![Page 138: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/138.jpg)
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
![Page 139: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/139.jpg)
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
![Page 140: Apostila XML, DTD, XSD e XSLT](https://reader031.vdocuments.site/reader031/viewer/2022012313/55aa6ac01a28ab6d398b460f/html5/thumbnails/140.jpg)
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