XML: uma introdução prática <xml:introdução />

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

Download "XML: uma introdução prática <xml:introdução />"

Transcrição

1 XML: uma introdução prática <xml:introdução /> Helder da Rocha 1

2 Objetivos Oferecer uma visão geral da tecnologia XML Responder às questões Como implementar soluções de gestão de informações usando XML? Quando e como usar as tecnologias e linguagens que viabilizam o compartilhamento de informações? Apresentar Breve introdução ao XML e tecnologias relacionadas. Recursos para manipular informações representadas em XML: ferramentas, linguagens e tecnologias 2

3 Por que XML? Onde usar XML? Como produzir documentos XML Documentos válidos: DTD e XML Schema Assuntos abordados Manipulação via programação em DOM e SAX Transformação: XSLT e XPath Localização e extração: XLink, XQuery e XPointer Visualização: XSL-FO e SVG Demonstração: geração de HTML, RTF e PDF Ferramentas e Conclusões 3

4 O que é XML? extensible Markup Language: padrão W3C 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: documento XML usuario_33.xml <contato codigo="33"> <nome>severino Severovitch</nome> <telefone tipo="celular"> <area>11</area> <numero> </numero> </telefone> </contato> elemento atributo "nó" de texto 4

5 XML versus HTML HTML mostra como apresentar XML mostra o que significa <h1>severino Severovitch</h1> <h2>bill@norte.com.br</h2> <p> <b>11</b> <i> </i> </p> <nome>severino Severovitch</nome> < >bill@norte.com.br</ > <telefone> <ddd>11</ddd> <numero> </numero> </telefone> 5

6 Anatomia de um documento XML Documentos XML são documentos de texto Unicode É uma hierarquia de elementos a partir de uma raiz Menor documento tem um elemento (vazio ou não): <nome> Ñåâåðèíî Ñåâåðîâè </nome> Menor documento contendo elemento vazio Elemento raiz <nome></nome> = <nome/> Menor documento contendo elemento e conteúdo texto <nome> Ñåâåðèíî Ñåâåðîâè </nome> Etiqueta inicial Conteúdo do Elemento Etiqueta final 6

7 Partes de um documento elemento raiz declaração XML nó raiz ( / ) <?xml version="1.0" encoding="iso "?> atributos <cartao-simples> <logotipo href="/imagens/logo14bis.gif" /> <nome>alberto Santos Dumont</nome> <endereco>rua do Encanto, 22-2o. andar - Centro Petrópolis - RJ</endereco> < >dumont@14bis.com.br</ > <telefone tipo="residencial" > <ddd>21</ddd> elementos <numero> </numero> </telefone> </cartao-simples> 7

8 / cartao-simples nó raiz elemento raiz Árvore XML nome Alberto Santos Dumont telefone endereco Rua do Encanto, 22-2o. andar - Centro Petrópolis - RJ logotipo href numero ddd /imagens/logo14bis.gif tipo residencial 21 LEGENDA nó de elemento nó de atributo nó de texto 8

9 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 Exemplo prefixo identificador <cadastro xmlns:firma=" / "> <nome>severino Severovitch</nome> <firma:nome>sibéria Informática Ltda.</firma:nome> < >bill@norte.com.br</ > </cadastro> Este elemento <nome> pertence a outro namespace 9

10 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 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 10

11 Onde usar XML? Dados armazenados em XML podem ser facilmente transformados em outros formatos texto <xml> <xml> <xml> "custom" XML XSLT <xml> <xml> WML VoiceXML Web VRML W HTML CSS JavaScript DOM SAX XSL-FO PDF PDF PDF RTF TeX SGML SGBD Gráficos SVG Imagens JPG e PNG PDF e PostScript 11

12 Como produzir XML Criando um documento de texto Unicode a partir de qualquer editor de textos <contato codigo="33"> <nome>severino Severovitch</nome> < >bill@norte.com.br</ > <telefone tipo="celular"> <area>11</area> <numero> </numero> </telefone> </contato> Gerando um documento a partir de uma árvore montada dinamicamente 33 Severino Severovitch bill@norte.com.br celular <contato codigo="33"> <nome>severino Severovitch</nome> < >bill@norte.com.br</ > <telefone tipo="celular"> <area>11</area> <numero> </numero> </telefone> </contato> 12

13 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 13

14 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 14

15 Esquema Documentos que aderem à especificação (válidos) O esquema representa uma classe Os documentos são instâncias Documento fora da especificação Esquema (universo de documentos válidos) Como definir esquemas: DTD - Document Type Definition W3C XML Schema 15

16 DTD vs. XML Schema Um esquema é essencial para que haja comunicação usando XML Pode ser estabelecido "informalmente" (via software) Uso formal permite validação usando ferramentas genéricas de manipulação de XML Soluções DTD <!ELEMENT contato (nome, , telefone)> <!ATTLIST contato codigo NMTOKEN #REQUIRED> XSchema <xsd:schema xmlns:xsd=".../xmlschema"> <xsd:element name="contato"> <xsd:complextype> <xsd:attribute name="codigo" use="required"> Simples mas não é XML Não suporta namespaces Limitado quando a tipos de dados É XML, porém mais complexo Suporta namespaces Permite definição de tipos 16

17 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 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 17

18 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 18

19 Leitura de XML com SAX Se um processador SAX receber o documento... <carta> <mensagem id="1">bom dia!</mensagem> </carta>... ele irá disparar a seguinte seqüência de eventos: startdocument() startelement("carta", []) startelement("mensagem", [Attribute("id","1")]) characters("bom dia!") endelement("mensagem") endelement("carta") enddocument() Programador deve implementar um objeto "ouvinte" para capturar os eventos e extrair as informações desejadas 19

20 Criação de documentos com DOM (1) Criação dos elementos / Document Obter objeto do tipo Document (raiz) (dependente de processador): doc <carta> Element carta = doc.createelement("carta") <mensagem> Element mens = doc.createelement("mensagem") Bom dia! String texto = doc.createtextnode("bom dia!") Atributos <mensagem id="1"> mens.setattribute("id", "1") 20

21 Criação de documentos com DOM (2) Montagem da árvore passo-a-passo 1. Sub-árvore <mensagem> <mensagem id="1"> mens.appendchild(texto) 3. Árvore completa / Bom dia! 2. Sub-árvore <carta> <carta> <mensagem id="1"> <carta> <mensagem id="1"> carta.appendchild(mens) Bom dia! Bom dia! doc.appendchild(carta) 21

22 XPath Linguagem usada para navegar na árvore XML Uma expressão XPath é um caminho* na árvore que resulta em um valor (número, texto, booleano), objeto (elemento, atributo, nó de texto) ou conjunto de objetos 33 Severino Severovitch celular Caminhos absolutos /contato/telefone/numero/text() Relativos ao contexto telefone/numero/text() Expressões XPath são usadas dentro de atributos XML Usadas em XSLT, XLink, XQuery e XPointer * pode também ser padrão de busca 22

23 <xsl:stylesheet version="1.0" xmlns:xsl=" <xsl:template match="livro/titulo"> <td><xsl:value-of select="." /></td> XSLT XSL Transformations Linguagem (XML) para criação de documentos que contêm regras de transformação para documentos XML Documentos escritos em XSLT são chamados de folhas de estilo e contêm Elementos XSLT: <template>, <if>, <foreach>,... Expressões XPath para localizar nós da árvore-fonte Texto ou XML a ser gerado no documento-resultado Processador XSLT fontetohtml.xslt Folha de estilos fonte.xml Documento Fonte Processador XSLT Xalan, TrAX, Saxon Netscape, I. Explorer Documento Resultado 23

24 XSLT: documento-fonte (1) Considere o seguinte documento-fonte: <aeronave id="ptgwz"> <origem partida="08:15">rio de Janeiro</origem> <destino>itabuna</destino> </aeronave> / PTGWZ <origem> Rio de Janeiro Árvore-fonte Itabuna 08:15 24

25 XSLT: folha de estilos (2) O seguinte template (parte de uma folha de estilos XSLT) pode extrair os dados do documento-fonte documento resultado (em preto) <xsl:template match="aeronave"> <p>a aeronave de prefixo <xsl:value-of select="@id" /> decolou de <xsl:value-of select="origem" /> às <xsl:value-of select="origem/@partida" /> tendo como destino o aeroporto de <xsl:value-of select="destino" />.</p> </xsl:template> documento-fonte (em azul - XPath) elementos XSLT (em vermelho, com prefixo xsl) Elementos XSLT geralmente são usados com um prefixo associado ao seu namespace: <xsl:elemento> para evitar conflitos com o documento-resultado. 25

26 XSLT: documento-resultado (3) Após a transformação, o resultado será <p>a aeronave de prefixo PTGWZ decolou de Rio de Janeiro às 8:15 tendo como destino o aeroporto de Itabuna.</p> Para obter outros resultados e gerar outros formatos com os mesmos dados, deve-se criar folhas de estilo adicionais 26

27 XLink, XPointer e XQuery XLink: é uma especificação W3C que permite definir vínculos entre documentos XML Funcionalidade mínima é igual ao <a href> do HTML Funcionalidade estendida permite vínculos bidirecionais, arcos, vários níveis de semântica, etc. É uma coleção de atributos, com namespace próprio, que podem ser usados em elementos de qualquer linguagem XML. XPointer: aponta para partes de documentos XML Identificador (ID) colocado no destino, accessível através de fragmento de URL: xlink:href="#identificador" Caminho resultante de expressão XPath: xpointer(/livro/id) XQuery: linguagem para pesquisar documentos XML Exemplo: FOR $b IN document("usuario_33.xml")/contato WHERE nome="severino Severovitch" RETURN $b 27

28 <fo:root xmlns:fo=" <fo:layout-master-set> <fo:simple-page-master master-name="p1"> <fo:region-body/> XSL-FO XSL Formatting Objects Linguagem XML de descrição de página com os mesmos recursos que PostScript ou PDF Descreve o layout preciso de texto e imagens Possui centenas de elementos, atributos e propriedades (que são semelhantes às propriedades do CSS) Páginas são facilmente convertidas para PDF e PostScript Ideal para gerar documentos para impressão (livros, etc.) Normalmente gerada via XSLT XML XML XSLT Fonte Processador XSLT XML Documento XSLFO FOP Documento PDF 28

29 XSL-FO: menor documento <fo:root xmlns:fo=" Este é o "<head>" <fo:layout-master-set> do XSL-FO <fo:simple-page-master master-name="p1"> <fo:region-body/> </fo:simple-page-master> </fo:layout-master-set> <fo:page-sequence master-name="p1"> <fo:flow flow-name="xsl-region-body"> <fo:block color="blue" font-size="20pt"> Hello PDF! </fo:block> </fo:flow> </fo:page-sequence> Ligação entre as regras de layout e o conteúdo afetado Este é o "<body>" do XSL-FO </fo:root> 29

30 <html xmlns=" <head><title>página XHTML</title></head> <body> <h1>página XHTML</h1> XHTML extensible HTML Linguagem XML de descrição de página Web Mesmos elementos do HTML 4.0 Strict Elementos descrevem somente a estrutura dos componentes da página. A forma precisa ser especificada usando CSS: não há elementos/atributos para mudar cor, alinhamento, etc. Pode ser misturada (estendida) com outras linguagens XML (MathML, SVG, linguagens proprietárias) Normalmente gerada via XSLT XML XML XSLT Documento Fonte Processador XSLT XML Documento XHTML 30

31 <svg> <circle style="fill: red" cx="3cm" cy="3cm" r="2.5cm" /> <rect style="fill: blue" x="6cm" y="6cm" height="2.5cm" width="1.5cm" /> SVG W3C Scalable Vector Graphics Gráficos vetoriais em XML Plug-ins para principais browsers: concorre com Flash Suporta animações, links, JavaScript, CSS Produzido por ferramentas como Adobe Ilustrator Pode ser embutido no código XHTML e XSL-FO Zoom + Zoom + 31

32 Exemplo de SVG JavaScript <svg width="10cm" height="10cm"> <g onclick="alert('clicou no grupo 1!')"> <circle style="fill: red" CSS cx="3cm" cy="3cm" r="2.5cm" /> <rect style="fill: blue" x="6cm" y="6cm" height="2.5cm" width="1.5cm" /></g> <g onclick="alert('clicou no grupo 2!')"> <circle style="fill: green; opacity: 0.5" cx="5cm" cy="5cm" r="2cm" /></g> <a xmlns:xlink=" xlink:href=" <text style="color: black; font-family: tahoma; font-size: 12pt" x="3cm" y="8cm"> SVG é XML</text></a> </svg> XLink 32

33 Algumas outras linguagens XML MathML WML VoiceXML Classe oper(): void oper2(): int XMI 1 * Classe2 oper(): void oper2(): int Classe3 oper(): void oper2(): int Web Services SOAP WSDL UDDI ebxml XML-RPC CML 33

34 Demonstração Exemplo de transformação XML PDF <xml> <xslt> FO (1) <xsl:fo> FOP (1.a) (1.b) Xalan (3) <xslt> SVG JFOR W <xslt> Texto (4) (2) Texto texto texto texto texto texto texto texto texto <xslt> HTML HTML SVG 34

35 Ferramentas Para programação Parsers-validadores: Xerces, Crimson, MSXML 4.0 Validadores: MSV (Sun) Transformadores XSL: TrAX, Xalan, Xt, Saxon APIs: JDOM, JAX (P, B, M, R, RPC), SAX e DOM Veja mais em xml.apache.org e Para edição (de XML genérico) XML Spy Suite Framemaker / ArborText JEdit com plug-ins para XML, XSLT e XPath Veja mais em 35

36 Conclusões XML é uma ótima solução para compartilhar dados Para implementar soluções em gestão de informações usando XML, pode-se usar DTD ou XSchema para especificar o modelo de dados e validar as informações As APIs DOM ou SAX para extrair dados dos documentos, gerar documentos, ler e gravar em bancos de dados XSLT e XPath para transformar os dados em outros formatos XLink, XPointer e XQuery para criar vínculos lógicos entre os documentos e localizar seus componentes XSL-FO ou XHTML para formatar os dados para impressão ou visualização na tela (PDF, Word ou Web) SVG para gerar informações em forma de gráfico vetorial 36

37 Fontes [1] World Wide Web Consortium (W3C). extensible Markup Language. Ponto de partida e principal fonte sobre XML e suas tecnologias "satélite". Contém últimas especificações de XML, XPath, XSchema, XSLT, XSL-FO, XQuery, XLink, XPointer, SVG, XHTML, CSS. [2] Eric Armstrong et al. Working with XML. Aborda DOM, SAX e XML com Java. [3] Adobe. SVG Tutorial. Contém tutorial sobre SVG e links para o plug-in SVG da Adobe (Win/Mac). [4] IBM Developerworks. Diversos tutoriais e artigos sobre XML, XSLT, DOM e SAX usando geralmente Java. [5] Doug Tidwell. XSLT. O Reilly & Associates, Explora XSLT com aplicações práticas em Java. [6] Elliotte Rusty Harold. XML Bible, Second Edition, Aborda todas as principais tecnologias W3C. 5 capítulos em [7] Erik T. Ray. Learning XML. O Reilly & Associates, Introdução ao XML e DTD, XSLT, XLink e XPointer (os dois últimos baseados em especificações draft). 37

38 38

39 XML: uma introdução prática <xml:fundamentos /> Helder da Rocha 1

40 Como criar um documento XML XML não estabelece nenhum vocabulário mas apenas regras mínimas de estrutura Para criar o menor arquivo XML possível: Abra um editor de textos Salve o arquivo com extensão.xml Escreva um elemento raiz vazio <x/> Salve o arquivo Abra no Internet Explorer 2

41 Um dos menores documentos XML <nome> Fulano de Tal </nome> Um elemento Elemento raiz <nome> Fulano de Tal </nome> Etiqueta inicial Conteúdo do Elemento Etiqueta final 3

42 Elemento vazio <nome></nome> <nome/> 4

43 Elementos podem conter elementos fulano_de_tal.xml <contato> <nome>fulano de Tal</nome> <telefone> <ddd>11</ddd> <numero> </numero> </telefone> </contato> 5

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

45 Estrutura XML Um documento XML pode ser representado como uma árvore. A estrutura é formada por vários nós. <?xml version="1.0" encoding="iso "?> <!-- Isto é um comentário --> informações usadas <cartao-simples> pelo processador XML <logotipo href="/imagens/logo14bis.gif" /> <nome>alberto Santos Dumont</nome> <endereco>rua do Encanto, 22-2o. andar - Centro Petrópolis - RJ</endereco> < >dumont@14bis.com.br</ > <telefone tipo="residencial" > <ddd>21</ddd> <numero> </numero> </telefone> </cartao-simples> um "nó" pode ser... um elemento, um atributo, um bloco de texto, um comentário, uma instrução, uma declaração, uma entidade,... 7

46 Prólogo Declaração XML Comentário Instrução de processamento Declaração de tipo de documento <?xml version="1.0" encoding="iso "?> <!-- Isto é um comentário --> <?comando tipo="simples" parametro?> <!DOCTYPE cartao-simples SYSTEM "cartoes.dtd"> <cartao-simples> <logotipo href="/imagens/logo14bis.gif" /> <nome>alberto Santos Dumont</nome> <endereco>rua do Encanto, 22-2o. andar - Centro Petrópolis - RJ</endereco> < >dumont@14bis.com.br</ > <telefone tipo="residencial" > <ddd>21</ddd> <numero> </numero> </telefone> </cartao-simples> 8

47 Nó raiz e elementos elemento raiz nó raiz ( / ) <?xml version="1.0" encoding="iso "?> <cartao-simples> <logotipo href="/imagens/logo14bis.gif" /> <nome>alberto Santos Dumont</nome> <endereco>rua do Encanto, 22-2o. andar - Centro Petrópolis - RJ</endereco> < >dumont@14bis.com.br</ > <telefone tipo="residencial" > <ddd>21</ddd> elementos <numero> </numero> </telefone> </cartao-simples> elementos 9

48 Só podem conter um descendente (só texto) <?xml version="1.0" encoding="iso "?> Atributos <cartao-simples> <logotipo href="/imagens/logo14bis.gif" /> <nome>alberto Santos Dumont</nome> <endereco>rua do Encanto, 22-2o. andar - Centro Petrópolis - RJ</endereco> < >dumont@14bis.com.br</ > <telefone tipo="residencial" > <ddd>21</ddd> <numero> </numero> </telefone> atributos </cartao-simples> 10

49 Nós de texto Não podem ter descendentes (são as folhas da árvore) <?xml version="1.0" encoding="iso "?> <cartao-simples> <logotipo href="/imagens/logo14bis.gif" /> <nome>alberto Santos Dumont</nome> <endereco>rua do Encanto, 22-2o. andar - Centro Petrópolis - RJ</endereco> < >dumont@14bis.com.br</ > <telefone tipo="residencial" > <ddd>21</ddd> <numero> </numero> </telefone> </cartao-simples> nós de texto 11

50 Entidades São constantes associadas a um valor de texto Podem aparecer em qualquer lugar do documento Substituídas durante o processamento do documento Sintaxe: &ENTIDADE; Exemplo: &data_de_hoje; Entidades pré-definidas: < que corresponde a < > que corresponde a > & que corresponde a & " que corresponde a " &apos; que corresponde a ' 12

51 Entidades de caracteres Substituídas durante o processamento do documento Sintaxe: &#CÓDIGO_16b_decimal; &#xcódigo_16b_hexadecimal; Exemplo: ou Um espaço em Unicode Veja em 13

52 Elementos e atributos Regras básicas Etiqueta inicial e final têm que ter o mesmo nome (considerando diferença de maiúscula e minúscula) Não pode haver espaço depois do < nas etiquetas iniciais nem depois do </ nas finais Atributos têm sempre a forma nome="valor" ou nome = 'valor': aspas podem ser usadas entre apóstrofes e apóstrofes podem ser usados entre aspas aspas e apóstrofes não podem ser neutralizados mas sempre podem ser representados pelas entidades &apos; e " Não pode haver atributos na etiqueta final 14

53 Elementos e atributos (2) Elementos mal formados <Profissão>Arquiteto</profissão> <TR><TD>item um</td></tr> <ÄÅÍÃÈÉ>139.00</äåíãèé> Há várias maneiras de representar a mesma informação em XML <data>23/02/1998</data> <data dia="23" mes="02" ano="1998" /> <data> <dia>23</dia> <mes>02</mes> <ano>1998</ano> </data> 15

54 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 16

55 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 Identificadores 17

56 Identificadores Elementos bem formados <αριστοτελεσ>περι ποιητικησ</αριστοτελεσ αριστοτελεσ> <êíèãà xml:lang='ru'> <íàçâàíèå>åâãåíèé Îíåãèí</íàçâàíèå> <àâòîð ðîæäåíèå="1799" ñìåðòü="1837">àëåêñàíäð Ñåðãååâè Ïóæêèí</àâòîð> </êíèãà> <_1_/> <cdd:gen.inf cdd:cod="005">introdução a XML</cdd:gen.inf> Elementos mal formados <3-intro>Fundamentos</3-intro> <cartão de crédito> </cartão de crédito> 18

57 Conteúdo misto <trecho> <secao>2</secao> <paragrafo>a unidade de informação dentro de um documento XML é o <definicao>elemento</definicao>. Um elemento é formado por duas <definicao>etiquetas</definicao> que atribuem algum significado ao conteúdo. </paragrafo> </trecho> 19

58 Ignora efeitos especiais dos caracteres Seção CDATA <titulo>curso de XML</titulo> <exemplo>considere o seguinte trecho de XML: <![CDATA[ <empresa> <nome>joão & Maria S/A</nome> </empresa> ]]> </exemplo> 20

59 Instruções de processamento Instruções dependentes do processador Funcionam como comentários para os processadores que não a conhecem <?nome-do-alvo área de dados?> <?query-sql select nome, from agenda where id=25?> 21

60 Comentários Iguais aos comentários HTML <!-- Isto é um comentário --> <!-- isto é um erro -- sério! --> 22

61 Declaração XML Opcional (exceto queno conjunto de caracteres usado for diferente de UTF-8 <?xml version="1.0" encoding="iso " standalone="yes"?> 23

62 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. 24

63 XML Namespaces Permite que elementos de mesmo nome de diferentes aplicações sejam misturados sem que haja conflitos Um namespace (universo de nomes) é declarado usando atributos reservados xmlns="identificador" (namespace default) associa o identificador com todos os elementos que não possuem prefixo. Ex: <nome> xmlns:prefixo="identificador" associa o identificador com os elementos e atributos cujo nome local é precedido do prefixo. Ex <prefixo:nome> O prefixo é arbitrário e só existe dentro do documento O identificador (geralmente uma URI) deve ser reconhecido pela aplicação 25

64 Vale para todo o elemento <cartao> Esta URI está associada a este prefixo Exemplo <ct:cartao xmlns:ct=" / /cartoes"> <ct:nome>alberto Santos Dumont</ct:nome> <ct:endereco>rua do Encanto, 22 - Centro Petrópolis - RJ</ct:endereco> <ct: >dumont@14bis.com.br</ct: > <ct:telefone tipo="residencial"> <ct:ddd>21</ct:ddd> <ct:numero> </ct:numero> </ct:telefone> </ct:cartao> 26

65 Exemplo com 3 namespaces <departamento Namespace xmlns:ct=" / /cartoes" default xmlns=" / /empresa" xmlns:html=" <ct:nome>fulano de Tal</ct:nome> URI padrão <nome>contabilidade</nome> XHTML <endereco>rua Projetada, 33</endereco> <html:a href="web.html"> <html:strong>link negrito HTML</html:strong> </html:a> <urgencia><ct:numero> </ct:numero></urgencia> </departamento> 27

66 XML: uma introdução prática <xml:links /> Helder da Rocha 1

67 XLink é uma coleção de atributos Namespace: Sete atributos: type = simple extended locator arc title resource href = a URI destino do vínculo show = new replace embed other none actuate = onload onrequest other none title = descrição detalhada role = papel / contexto do vínculo label = descrição sucinta (para exibição) Exemplo de uso típico <elemento xlink:href=" /> 2

68 Exemplos: link "tipo <a href>" e "<img>" <p xmlns:xlink=" xlink:type="simple" xlink:href="#end" xlink:show="replace" xlink:actuate="onrequest">link</p> Conteúdo será substituído..... quando o usuário solicitar. <img xmlns:xlink=" xlink:type="simple" xlink:href="12345.jpg" xlink:show="embed" xlink:actuate="onload" /> carregado. Conteúdo será embutido no documento..... quando o documento for 3

69 XPointer Função que recebe uma expressão XPath Serve para apontar para um recurso ou parte do documento Para apontar para um recurso descoberto por uma expressão XPath xpointer(expressão) Quando há campos marcados com ID no documento destino, pode-se usar um ponteiro #ponteiro xpointer(expressão)#ponteiro 4

70 XML: uma introdução prática <xml:transformação/> Helder da Rocha 1

71 Esta aula Introdução a XSLT fundamentos: principais elementos passo-a-passo: como transformar Fundamentos de XPath linguagem para manipular árvores XSLT outros elementos Fundamentos de XSL-FO Exercícios Geração de HTML, XHTML, XML, XSL-FO, texto,... 2

72 Por que transformar Converter para um formato mais útil Atualizar documentos escritos em uma aplicação XML obsoleta Devolver resultados adequados para o cliente que irá usálos Gerar formatos para exibição depuração edição transmissão 3

73 XSLT XSL Transformations Linguagem (XML) para criação de documentos que contêm regras de transformação para documentos XML Documentos escritos em XSLT são chamados de folhas de estilo e contêm Elementos XSLT: <template>, <if>, <foreach>,... Expressões XPath para localizar nós da árvore-fonte Texto ou XML a ser gerado no documento-resultado Processador XSLT fontetohtml.xslt Folha de estilos fonte.xml Documento Fonte Processador XSLT Xalan, TrAX, Saxon Netscape, I. Explorer Documento Resultado 4

74 Transformação XSL A transformação XSL pode ocorrer em várias etapas, no cliente e/ou no servidor No servidor, há maior flexibilidade: Arquivos XML podem ser mesclados Informações podem ser extraídas de vários arquivos para inclusão em outro arquivo Por exemplo: um índice Arquivo resultante pode ser XML, HTML, RTF ou qualquer outro formato Browser não precisa suportar XML 5

75 Transformação XSL no cliente Em browsers que suportam XML e XSL, a transformação dos dados pode ser realizada no cliente Browser deve ser capaz de entender XML e XSL O resultado gerado pode ser XML ou HTML 4.0 (para maior suporte) Além da transformação XSL, no servidor ou cliente, a página pode ainda ser formatada com CSS. 6

76 Transformação XSLT No servidor Servidor XML CSS XSL No cliente CSS HTML Cliente Página Servidor CSS CSS Cliente XML XSL XML XSL Página 7

77 Fundamentos de transformação A transformação XSLT é realizada sobre a árvore de um documento-fonte Todos os nós do documento são acessíveis. Tipos de nó disponíveis: Elemento Atributo Texto Comentário Instrução de processamento Namespace Raiz 8

78 XSLT: documento-fonte (1) Considere o seguinte documento-fonte: <aeronave id="ptgwz"> <origem partida="08:15">rio de Janeiro</origem> <destino>itabuna</destino> </aeronave> / PTGWZ <origem> Rio de Janeiro Árvore-fonte Itabuna 08:15 9

79 XSLT: folha de estilos (2) O seguinte template (parte de uma folha de estilos XSLT) pode extrair os dados do documento-fonte documento resultado (em preto) <xsl:template match="aeronave"> <p>a aeronave de prefixo <xsl:value-of select="@id" /> decolou de <xsl:value-of select="origem" /> às <xsl:value-of select="origem/@partida" /> tendo como destino o aeroporto de <xsl:value-of select="destino" />.</p> </xsl:template> documento-fonte (em azul - XPath) elementos XSLT (em vermelho, com prefixo xsl) Elementos XSLT geralmente são usados com um prefixo associado ao seu namespace: <xsl:elemento> para evitar conflitos com o documento-resultado. 10

80 XSLT: documento-resultado (3) Após a transformação, o resultado será <p>a aeronave de prefixo PTGWZ decolou de Rio de Janeiro às 8:15 tendo como destino o aeroporto de Itabuna.</p> Para obter outros resultados e gerar outros formatos com os mesmos dados, deve-se criar folhas de estilo adicionais 11

81 <template> Bloco para transformação recursiva Atributo match: contém expressão XPath para localização de padrão (não é caminho) Nó de contexto: dentro do <template>, todas as expressões XPath são relativas ao nó corrente e lista de nós correntes Padrão para combinação <xsl:template match="elem/filho"> [[[<xsl:value-of select="." />]]] </xsl:template> Caminho relativo 12

82 <value-of> Imprime o valor do nó indicado pelo seu atributo "select" Converte todo o conteúdo para texto Caminho relativo ao nó corrente. <xsl:template match="contxt"> <xsl:value-of select="elemento" /> </xsl:template> No exemplo acima, select seleciona qualquer nó que contenha o string contxt/elemento Use "." para valor de elemento corrente Use "/" para referir-se a caminhos absolutos 13

83 <text> Imprime texto Preserva espaços, novas-linhas e tabuações Útil para controlar forma de impressão do texto <xsl:template match="x"> <xsl:text>quebra linha depois </xsl:text> </xsl:template> <xsl:template match="y"> <xsl:text>não quebra linha</xsl:text> </xsl:template> Atributo disable-output-escaping="yes" evita substituição de entidades 14

84 <output> Para produzir resultados diferentes de XML e definir formato de dados de saída texto <xsl:output method="text" /> html <xsl:output method="html" /> xml com DTD <xsl:output method="xml" doctype-public="-//pid//en" doctype-system="arquivo.dtd" /> Formatos diferentes de UTF-8 <xsl:output encoding="iso " /> 15

85 <apply-templates> Faz chamada recursiva a próximo template (se não tiver argumentos) ou indicado em atributo select <xsl:template match="elemento"> Item 1: <xsl:apply-templates select="filho1"/> Item 2: <xsl:apply-templates select="filho2"/> </xsl:template> <xsl:template match="filho1"> [<xsl:apply-templates />] </xsl:template> <xsl:template match="filho2"> (<xsl:apply-templates />) </xsl:template> 16

86 1. Processamento da raiz <xsl:template match="/"> <xsl:apply-templates /> </xsl:template> 2. Processamento de todos os elementos <xsl:template match="*"> <xsl:apply-templates /> </xsl:template> 3. Processamento de texto <xsl:template match="text()"> <xsl:value-of select="." /> </xsl:template> Regras nativas 17

87 Namespace <xsl:stylesheet version="1.0" xmlns:xsl=" </xsl:stylesheet> 18

88 XPath Como selecionar um ou mais nós da árvore-fonte? Caminhos (location paths) levam até um nó ou um conjunto de nós através de passos de navegação na árvore de um documento. Padrões de combinação (match patterns) um tipo especial de caminho levam até um nó ou conjunto de nós através de combinação de padrões não permite o uso de eixos ascendentes (..) 19

89 Expressões XPath Os tipos de expressão são operações sobre nós da árvore-fonte (caminhos) operações sobre texto operações booleanas operações com resultado numérico Cada tipo de expressão devolve um resultado que pode ser um tipo de dados um conjunto de nós (node set) um texto (string) um valor booleano (boolean) um número (number) 20

90 Caminhos Seqüência de passos até um determinado conjunto de nós (node set) Exemplo: /raiz/elemento/filho/neto../../primo[3] Dois tipos absolutos: começam no nó raiz (iniciam com "/") relativos: começam no nó do contexto (context node) 21

91 Padrões de combinação São traduzidos em caminhos Usados para combinação Exemplo: <xsl:template match="..."> Resolvidos da direita para a esquerda Não podem conter eixos ascendentes Não pode:../elemento Pode: //elemento ou /ancestral//elemento Devem ser a mais simples expressão que localize o(s) nó(s) desejado(s) 22

92 Caminhos vs. Padrões A expressão "nome" terá resultados diferentes se a expressão for um caminho ou um padrão Caminho: [contexto atual]/nome Padrão: [quaisquer ancestrais]/nome pessoa pessoas pessoa pessoa Na árvore ao lado, se o nó de contexto for <pessoas> o caminho devolverá um conjunto vazio o padrão devolverá um conjunto de três nós nome Fulano nome Sicrano nome Beltrano 23

93 Onde usar padrões/caminhos Atributos XSLT match, recebem padrões para instanciar templates: <xsl:template match="autor">... <xsl:template match="livro//pagina[25]">... Atributos XSLT select e test, usados dentro dos templates, recebem caminhos: <xsl:value-of select="../livro/titulo" /> <xsl:for-each select="@numero" >... 24

94 <if> Bloco condicional Executa se expressão XPath passada retornar true <xsl:if test="/raiz/elemento/filho"> <xsl:value-of select /> </xsl:if> <xsl:if test="(5 > 3) and not(9 < 4))">... </xsl:if> <xsl:if 'Sra. ')">... </xsl:if> 25

95 <choose> <when> <otherwise> Condicional tipo case (if-then-else) <xsl:choose> <xsl:when </xsl:when> <xsl:when test="../casa">... </xsl:when> <xsl:when test="../salario/text() > 10000">... </xsl:when> <xsl:otherwise>... </xsl:otherwise> </xsl:choose> 26

96 <sort> Ordenação Aplica-se a cada nó do conjunto de nós do contexto. Use dentro de <apply-templates> <xsl:apply-templates> <xsl:sort select="@codigo" /> <xsl:value-of select="." /> </xsl:apply-templates> 27

97 Looping com <for-each> Permite processar um conjunto de nós dentro da mesma regra de template (sem usar recursão) <xsl:template match="livro"> <xsl:for-each select="capitulo"> <xsl:value-of select="position()" /> <xsl:text>. </xsl:text> <xsl:value-of select="titulo" /> </xsl:for-each> </xsl:template> 28

98 <for-each> e <sort> <sort> pode ser usado dentro de <for-each> para ordenar os elementos <xsl:template match="indice"> <xsl:for-each select="assunto"> <xsl:sort select="@codigo_dewey" /> <xsl:value-of select="@codigo_dewey" /> <xsl:text>: </xsl:text> <xsl:value-of select="." /> </xsl:for-each> </xsl:template> 29

99 XSL Formatting Objects Aplicação XML para descrever o layout preciso de texto e imagens em uma página Elementos representam Regras para formatação de várias páginas Layout de páginas individuais, margens, rodapés Hifenação, alinhamento, fontes, cores, leading imagens, gráficos, tabelas, listas, links Isoladamente, XSL-FO não é folha de estilo É formato final, com estrutura que visa a apresentação (como XHTML) Típicamente, se cria um XSLT que gera FO a partir de uma fonte XML 30

100 Hello World <fo:root xmlns:fo=" <fo:layout-master-set> <fo:simple-page-master master-name="p1"> <fo:region-body/> </fo:simple-page-master> </fo:layout-master-set> Ligação entre as regras de layout e o conteúdo afetado Este é o "<head>" do XSL-FO <fo:page-sequence master-name="p1"> <fo:flow flow-name="xsl-region-body"> <fo:block color="blue" font-size="20pt">hello!</fo:block> <fo:flow> </fo:page-sequence> Este é o "<body>" do XSL-FO </fo:root> 31

101 <root> Raiz do documento XSL-FO Define o namespace Uso típico <fo:root xmlns:fo=" </fo:root> Normalmente, documentos FO são gerados com XSLT <xsl:template match="/"> <fo:root xmlns:fo=" <xsl:apply-templates /> </fo:root> </xsl:template> 32

102 Estrutura do documento O elemento <root> deve conter Um <layout-master-set> que contém "mestres de layout" definem templates reutilizáveis para layout de páginas cada mestre possui um identificador que é usado para associá-lo a um bloco de conteúdo o tipo de mestre mais simples (e o único atualmente suportado pelos processadores) é <simple-page-master> Pelo menos um <page-sequence>, onde fica o conteúdo define uma seqüência de páginas em um documento cada <page-sequence> deve estar associado a um mestre de layout existente contém objetos <flow> e/ou <static-content> 33

103 Cabeçalho Cabeçalho mínimo <fo:layout-master-set> <fo:simple-page-master master-name="p1"> <fo:region-body/> </fo:simple-page-master> </fo:layout-master-set> <simple-page-master> define margens, altura e largura da página e contém pelo menos uma região master-name do elemento é ID para que elementos de conteúdo <page-sequence> possam referenciá-lo Atributos típicos (ID e dimensões da página) <fo:simple-page-master master-name="p1" margin-top="1.5cm" margin-bottom="2cm" margin-left="2.5cm" margin-right="1.5cm" page-width="21cm" pageheight="29.7cm">... regiões afetadas... </fo:simple-page-master> 34

104 Regiões Há cinco regiões <region-body /> obrigatória área de conteúdo principal da página define um ID implícito (fixo): xsl-region-body, para uso por elementos de conteúdo de fluxo ou estático. <region-start /> e <region-end /> Em documentos de linguagem ocidental, start é a margem esquerda e end é margem direita. IDs: xsl-region-start e xsl-region-end <region-before /> e <region-after /> before é a margem superior, after é a margem inferior. IDs: xsl-region-before e xsl-region-after. 35

105 <simple-page-master> Margens e regiões margin-top <region-before /> Margens do <simple-page-master> limitam a área de impressão <region-body> ocupa todo o espaço restante margin-left <region-start /> <region-body /> <region-end /> margin-right Outras regiões opcionais podem ser definidas sobre <region-body> <region-before extent="2cm"/> <region-end extent="1cm"/> Margens de <region-body> devem ser iguais ou maiores que os extent das regiões marginais <region-after /> margin-bottom <region-body margin-left="2.7cm" margin-right="1.2cm" margin-bottom="2.1cm" margin-top="2.2cm" /> 36

106 XSLT Layout geralmente permanece fixo em folha XSLT+FO <xsl:template match="/"> <fo:root xmlns:fo=" <fo:layout-master-set> <fo:simple-page-master master-name="p1"> <fo:region-before extent="2cm"/> <fo:region-end extent="1cm"/> <fo:region-after extent="1.9cm"/> <fo:region-start extent="2.5cm"/> <fo:region-body margin-left="2.7cm" margin-right="1.2cm" margin-bottom="2.1cm" margin-top="2.2cm" /> </fo:simple-page-master> </fo:layout-master-set> <fo:page-sequence master-name="p1"> <xsl:apply-templates /> </fo:page-sequence> </fo:root> </xsl:template> 37

107 Conteúdo O conteúdo do documento pode estar Em blocos <flow>, que criam nova página quando o texto preenche o espaço disponível na atual Em blocos <static-content>, que são repetidos em todas as páginas da seqüência. Regiões Cada bloco de conteúdo deve estar associado a uma região existente através do atributo flow-name: <fo:static-content flow-name="xsl-region-start">... <fo:flow flow-name="xsl-region-body">... Blocos Dentro de <flow> ou <static-content>, conteúdo deve estar em blocos: <block>, <list-block>, <table>, etc. 38

108 Blocos de conteúdo <fo:page-sequence master-name="p1" font-size="8pt"> <fo:static-content flow-name="xsl-region-after"> <fo:block> <fo:leader leader-pattern="rule" leader-length="16cm" /> </fo:block> <fo:block text-align="end">página <fo:page-number/> </fo:block> </fo:block> </fo:block> </fo:static-content> <fo:flow flow-name="xsl-region-body"> <fo:block font-family="serif" font-size="11pt"> Texto que pode atravessar páginas. </fo:block> </fo:flow> </fo:page-sequence> Este bloco de conteúdo estático está associado com region-after Este bloco de conteúdo de fluxo está associado com region-body 39

109 Blocos Os elementos <flow> e <static-content> devem conter elementos de bloco <block> Bloco de propósito geral <list-block> Bloco que contém itens de lista <table> Bloco que contém tabela Blocos podem ter conteúdo misto, contendo texto e elementos <inline> Trecho de propósito geral <external-graphic> Imagem ou gráfico externo <page-number> Número de página <basic-link> Referência de hipertexto <instream-foreign-object> Código XML embutido (SVG, por exemplo) <leader> Linhas e outros decoradores 40

110 Propriedades Propriedades de estilo podem ser aplicadas em <flow>, <static-content> e em quaisquer elementos descendentes Propriedades são atributos Maior parte das propriedades são iguais e têm mesma sintaxe que as propriedades do CSS <fo:block font-family="tahoma, sans-serif" font-size="12pt" color="rgb(255, 45, 45)" margin-top="1cm" font-weight="bold" text-align="center"> Uma <fo:inline color="blue">linha</fo:inline> de texto </fo:block> Algumas propriedades CSS são elementos em XSL-FO Alguns seletores CSS são atributos em XSL-FO Suporte às propriedades depende do processador 41

111 <table> <fo:table> <fo:table-header> <fo:table-cell> <fo:block font-family="tahoma, sans" font-weight="bold">coluna 1</fo:block> </fo:table-cell> <fo:table-cell> <fo:block font-family="tahoma, sans" font-weight="bold">coluna 2</fo:block> </fo:table-cell> </fo:table-header> <fo:table-body> <fo:table-row> <fo:table-cell> <fo:block font-family="monospace">célula 1.1</fo:block> </fo:table-cell> <fo:table-cell> <fo:block font-family="monospace">célula 1.2</fo:block> </fo:table-cell> </fo:table-row>... <fo:table-row>... </fo:table-row> </fo:table-body> </fo:table> 42

112 <list-block> <fo:list-block> <fo:list-item> <fo:list-item-label> <fo:block font-size="20pt" color="red"> </fo:block> </fo:list-item-label> <fo:list-item-body start-indent="70pt"> <fo:block> Item um </fo:block> </fo:list-item-body> </fo:list-item> <fo:list-item>... </fo:list-item>... </fo:list-block> 43

113 <external-graphic> Permite incluir uma imagem na página Objeto inline <fo:block> <fo:external-graphic src="moe.gif"/> </fo:block> <fo:block> <fo:external-graphic src=" </fo:block> 44

114 <basic-link> Vínculo de hipertexto Vincula uma referência de ID a um ID Geralmente, quando o documento é gerado via XSLT, o ID é obtido do elemento ao qual se quer vincular ou via alguma variável Exemplo: <fo:basic-link internal-destination="{@id}" text-decoration="underline" color="blue"> <xsl:value-of select="@codigo"/> </fo:basic-link> 45

115 <instream-foreign-object> Permite embutir outra linguagem XML na página <fo:instream-foreign-object> <svg:svg xmlns:svg=" width="300" height="300" viewbox=" "> <svg:circle style="fill: green" r="50" cx="150" cy="150" /> </svg:svg> </fo:instream-foreign-object> 46

116 Visualização XSL-FO é uma linguagem de descrição de página Páginas podem ser geradas por um programa que construa o documento na memória (como faz o browser com HTML e CSS) ou que gere um arquivo PostScript, PDF: Apache FOP, RenderX XEP, REXP RTF (MS-Word): JFOR, RenderX Visualização em browser: IBM XFC Ferramentas para desenvolver FO HP FOA Para rodar o FOP (arquivo.bat em c:\xml) fop arquivo.fo arquivo.pdf Para rodar o JFOR (arquivo.bat em c:\xml) jfor arquivo.fo arquivo.doc 47

117 XML: uma introdução prática <xml:sax.dom /> Helder da Rocha 1

118 Programação com XML Há duas APIs padrão para manipular (interpretar, gerar, extrair dados e tratar eventos) arquivos XML: Document Object Model (DOM) Simple API for XML (SAX) As duas APIs servem a finalidades diferentes. SAX é mais simples. Oferece métodos que respondem a eventos produzidos durante a leitura do documento Notifica quando um elemento abre, quando fecha, etc. DOM vai além e monta uma estrutura hierárquica de objetos, em forma de árvore, que permite a navegação na estrutura do documento Propriedades dos objetos podem ser manipuladas 2

119 SAX ou DOM? SAX Gasta menos memória Mais simples menos recursos disponíveis Ideal para aplicações simples que não precisam manipular com toda a árvore de objetos DOM Em grandes documentos e hierarquias profundas exige mais recursos Fornece funções que permitem ter muito controle sobre os dados É a única opção para manipulação no cliente APIs disponíveis em várias linguagens Java, VB, C, JavaScript (apenas DOM) 3

120 DOM Document Object Model Objetivo: oferecer uma interface de programação uniforme, independente de plataforma e linguagem, para aplicações que manipulam XML OMG IDL Serve para criar um novo documento XML navegar na árvore XML modificar, remover ou adicionar nós (elementos, atributos, texto, comentários, PIs, etc.) 4

121 SAX Simple API for XML Baseada em eventos Dispara eventos durante processamento do documento eventos podem ser capturados por ouvintes cadastrados ações podem ser tomadas em cada situação Exemplos de eventos inicio e fim do documento início e fim do elemento (pode-se descobrir qual) nó de caractere nó de comentário... 5

122 SAX vs. DOM Não são concorrentes DOM é ideal para manipular a árvore XML recursivamente SAX é ideal para ler o documento seqüencialmente DOM requer carga de todo o documento: consome mais memória SAX não "lembra" de tarefas realizadas: não serve para validar referências cruzadas Nos processadores Crimson e Xerces, SAX é usada para montar a árvore DOM 6

123 SAX: operações Se um processador SAX receber o documento... <carta> <mensagem id="1">bom dia!</mensagem> </carta>... ele irá disparar a seguinte seqüência de eventos: startdocument() startelement("carta", []) startelement("mensagem", [Attribute("id","1")]) characters("bom dia!") endelement("mensagem") endelement("carta") enddocument() Programador deve implementar um objeto "ouvinte" para capturar os eventos e extrair as informações desejadas 7

124 SAX: exemplo em Java (trecho) public void characters(char[] ch, int start, int length) { for (int i = start; i < length; i++) { System.out.println(ch[i]); } } public void startelement(string uri, String localname, String qname, Attributes att) { System.out.print("<" + qname); for (int i = 0; i < att.getlength(); i++) { System.out.print(" " + att.getqname(i) + "='" + att.getvalue(i) + "'"); } System.out.println(">"); } public void endelement(string uri, String localname, String qname) { System.out.println("</" + qname + ">"); } 8

125 DOM: operações Leitura Passo 1: carregar o documento e identificar os tokens Passo 2: identificar elementos e outros nós (pode usar SAX) Passo 3: montar a árvore (pode ser feito durante o passo 2) Alteração Localiza o nó de referência Remove, altera, muda posição, cria nó antes ou depois. Criação Cria raiz; cria elemento raiz; cria elementos filho e atributos; cria nós de texto Monta árvore: coloca atributos em elementos, coloca nós de texto em elementos, coloca elementos filho em elementos pai, coloca elemento raiz na raiz 9

126 DOM: tipos de dados Coleções: NodeList, NamedNodeMap Raiz da hierarquia de nós: Node. Subclasses: Attr (atributo) CharacterData (classe abstrata) Text (nó de texto) CDATASection (seção CDATA) Comment (comentário) Document (documento inteiro) DocumentFragment (sub-árvore) DocumentType <!DOCTYPE> Element (elemento) Entity (valor da entidade - conteúdo) EntityReference (nome da variável) Notation (valor de uma notação) ProcessingInstruction (instrução de processamento) 10

127 DOM: Hierarquia Node DocumentFragment Document Text CDATASection CharacterData Attr Comment Element DocumentType NodeList Notation NamedNodeMap Entity EntityReference ProcessingInstruction 11

128 DOM: navegação DOM usa constantes para identificar tipos de nó (nodetype) Constante (opcional) Tipo valor ELEMENT_NODE Element 1 ATTRIBUTE_NODE Attr 2 TEXT_NODE Text 3 CDATA_SECTION_NODE CDATASection 4 ENTITY_REFERENCE_NODE EntityReference 5 ENTITY_NODE Entity 6 PROCESSING_INSTRUCTION_NODE ProcessingInstruction 7 COMMENT_NODE Comment 8 DOCUMENT_NODE Document 9 DOCUMENT_TYPE_NODE DocumentType 10 DOCUMENT_FRAGMENT_NODE DocumentFragment 11 NOTATION_NODE Notation 12 12

129 Para usar DOM É preciso obter uma instância do documento (forma de fazer isto depende de processador) Internet Explorer Netscape Xerces JAXP JDOM IBM Parser MSXML IE (data island): <xml id="xdoc"></xml> Código pode manipular referência xdoc e obter raiz xdoc.async = false; // desabilita threads xdoc.load("arquivo.xml"); document = xdoc; // Este é o elemento raiz ou var xdoc = new ActiveXObject("Microsoft.XMLDOM"); xdoc.load("arquivo.xml") Java JAXP Criar uma instância a patir de DocumentBuilderFactory 13

XML. na gestão de informações. Helder da Rocha Consultor. Integração total de negócios usando XML. Integração total de negócios usando XML

XML. na gestão de informações. Helder da Rocha Consultor. Integração total de negócios usando XML. Integração total de negócios usando XML Integração total de negócios usando XML Integração total de negócios usando XML São Paulo, 08 de maio de 2002 XML na gestão de informações Helder da Rocha Consultor 1 Objetivos Responder às questões Como

Leia mais

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

XML: uma introdução prática X100. Helder da Rocha XML: uma introdução prática X100 Helder da Rocha (helder@argonavis.com.br) Atualizado em setembro de 2001 1 XSL Formatting Objects Aplicação XML para descrever o layout preciso de texto e imagens em uma

Leia mais

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

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

Leia mais

Transformação de documentos XML

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

Leia mais

Módulo III Introdução a XML

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

Leia mais

5a. Aula - XML 2013.2

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

Leia mais

Introdução a XML X100

Introdução a XML X100 Introdução a XML X100 Helder da Rocha (helder@argonavis.com.br) Atualizado em setembro de 2001 1 O que é XML? extensible Markup Language: padrão W3C Uma maneira de representar informação não é uma linguagem

Leia mais

Programação para Internet I Aulas 10 e 11

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

Leia mais

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

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

Leia mais

XML - Extensible Markup Language

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

Leia mais

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

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

Leia mais

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

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

Leia mais

XML para transferência de dados Estrutura hierárquica do XML DTDs e XML Schema Consultas de documentos XML: XPath e XQuery Transformação de

XML para transferência de dados Estrutura hierárquica do XML DTDs e XML Schema Consultas de documentos XML: XPath e XQuery Transformação de Capítulo 9: XML XML para transferência de dados Estrutura hierárquica do XML DTDs e XML Schema Consultas de documentos XML: XPath e XQuery Transformação de documentos XML: XSLT Mapeamento entre documentos

Leia mais

XMLs E INTEGRAÇÃO COM BANCOS DE DADOS

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

Leia mais

extensible Markup Language (XML) XML é uma linguagem de anotação. XML utiliza tags para descrever informação.

extensible Markup Language (XML) XML é uma linguagem de anotação. XML utiliza tags para descrever informação. extensible Markup Language (XML) XML é uma linguagem de anotação. XML utiliza tags para descrever informação. Em XML, os tags não são pré-definidos. Temos de definir os nossos tags. XML utiliza um Document

Leia mais

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

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

Leia mais

Folhas de estilo. Jomi Fred Hübner jomi@inf.furb.br. (XSL e XPath) FURB / DSC

Folhas de estilo. Jomi Fred Hübner jomi@inf.furb.br. (XSL e XPath) FURB / DSC Folhas de estilo (XSL e XPath) Jomi Fred Hübner jomi@inf.furb.br FURB / DSC Fevereiro, 2004 XML Stylesheet Language (XSL) XSL é uma linguagem para descrever folhas de estilo para documentos XML. Transformer

Leia mais

http://rogerioaraujo.wordpress.com Série Rações Semanais Xpath e XSLT Rogério Araújo

http://rogerioaraujo.wordpress.com Série Rações Semanais Xpath e XSLT Rogério Araújo http://rogerioaraujo.wordpress.com Série Rações Semanais Xpath e XSLT Rogério Araújo http://rogerioaraujo.wordpress.com Série Rações Semanais Xpath e XSLT Rogério Araújo Questões A persistência é o menor

Leia mais

FEUP Faculdade de Engenharia da Universidade do Porto XSL. Porto, Maio de 2002. Gabriel David gtd@fe.up.pt. FEUP, Maio 2002 XML/XSL

FEUP Faculdade de Engenharia da Universidade do Porto XSL. Porto, Maio de 2002. Gabriel David gtd@fe.up.pt. FEUP, Maio 2002 XML/XSL 1 FEUP Faculdade de Engenharia da Universidade do Porto XSL Porto, Maio de 2002 Gabriel David gtd@fe.up.pt Estilo vs Conteúdo 2 Reutilização de fragmentos de dados: o mesmo conteúdo pode ter um aspecto

Leia mais

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

XML: uma introdução prática X100. Helder da Rocha XML: uma introdução prática X100 Helder da Rocha (helder@argonavis.com.br) Atualizado em outubro de 2005 1 O que é XPath XPath é uma linguagem usada para localizar informações em um documento XML Serve

Leia mais

Rui Carneiro, Rui Pereira, Tiago Orfão

Rui Carneiro, Rui Pereira, Tiago Orfão Geração de Gráficos SVG através de PHP Rui Carneiro, Rui Pereira, Tiago Orfão Faculdade de Engenharia da Universidade do Porto, R. Dr. Roberto Frias, 4200-465 Porto. {ei04073,ei04077,ei03102}@fe.up.pt

Leia mais

XML e XSL. Ciência da Computação DESENVOLVIMENTO DE APLICAÇÕES PARA WEB. Claudinei Dias email: prof.claudinei.dias@gmail.com

XML e XSL. Ciência da Computação DESENVOLVIMENTO DE APLICAÇÕES PARA WEB. Claudinei Dias email: prof.claudinei.dias@gmail.com Ciência da Computação DESENVOLVIMENTO DE APLICAÇÕES PARA WEB XML e XSL Prof. Claudinei Dias email: prof.claudinei.dias@gmail.com Fundamentos XML Extensible Markup Language Linguagem de marcação de dados

Leia mais

5 Tecnologias estudadas

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

Leia mais

Introdução de XML. Dados da Web. Gerência de Dados da Web. A Web representa, nos dias de hoje, um repositório universal de dados, onde:

Introdução de XML. Dados da Web. Gerência de Dados da Web. A Web representa, nos dias de hoje, um repositório universal de dados, onde: Dados da Web Introdução de XML Banco de Dados II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM

Leia mais

DOSSIER DA DISCIPLINA

DOSSIER DA DISCIPLINA DOSSIER DA DISCIPLINA PED - PROCESSAMENTO ESTRUTURADO DE DOCUMENTOS Mestrado em Informática (1º ano) + Curso de Especialização em Informática (1º ano) Docente responsável: José Carlos Ramalho Ano lectivo

Leia mais

A Web, o Design, o Software Livre e outras histórias... Eduardo Santos - www.agni.art.br

A Web, o Design, o Software Livre e outras histórias... Eduardo Santos - www.agni.art.br A Web, o Design, o Software Livre e outras histórias... Eduardo Santos - www.agni.art.br Surgimento da WEB e HTML Início da década de 90 HTML (acrônimo para a expressão HyperText Markup Language, que significa

Leia mais

CEEP-CENTRO ESTADUAL DE EDUCAÇÃO PROFISSIONAL PEDRO BOARETTO NETO INTERNET E PROGRAMAÇÃO WEB INICIO DE HTML

CEEP-CENTRO ESTADUAL DE EDUCAÇÃO PROFISSIONAL PEDRO BOARETTO NETO INTERNET E PROGRAMAÇÃO WEB INICIO DE HTML INICIO DE HTML Neste tutorial usaremos o já conhecido Notepad++ ou Bloco de Notas e um Browser (Chrome, Mozilla ou Internet Explorer). Para nossos exemplos usaremos o Chrome. A estrutura básica de uma

Leia mais

Utilização de XML no Desenvolvimento de Hiperdocumentos Educacionais

Utilização de XML no Desenvolvimento de Hiperdocumentos Educacionais 1 Utilização de XML no Desenvolvimento de Hiperdocumentos Educacionais Fabiano Fagundes, Parcilene F. Brito, Fernando L. Oliveira, Jackson G. Souza, Carlos H. Tolentino Resumo O desenvolvimento colaborativo

Leia mais

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

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

Leia mais

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

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

Leia mais

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

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

Leia mais

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

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

Leia mais

DOM (Document Object Model)

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

Leia mais

Roteiro de Auxílio para as Atividades Práticas de Sistemas de Informação

Roteiro de Auxílio para as Atividades Práticas de Sistemas de Informação Roteiro de Auxílio para as Atividades Práticas de Sistemas de Informação A linguagem XML no contexto do curso de Sistemas de Informação é utilizada principalmente para o armazenamento e a manipulação de

Leia mais

CONTEÚDO PROGRAMÁTICO

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

Leia mais

XML. Prof. Júlio Machado

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

Leia mais

Simbiose entre Tecnologias: XML e Java

Simbiose entre Tecnologias: XML e Java Simbiose entre Tecnologias: XML e Java Marcio H. Zuchini USF - Itatiba mhzuchini@yahoo.com.br Oclair G. Prado Unisal - Americana oclair.prado@am.unisal.br Márcio Henrique Zuchini (Mestre em Engenharia

Leia mais

Capítulo 9 - Imagens. Imagens

Capítulo 9 - Imagens. Imagens Capítulo 9 - Imagens 9 Imagens EM JAVASCRIPT, É POSSÍVEL MANIPULAR COM AS IMAGENS DE UMA PÁGINA, alterando a URL que localiza o arquivo de imagem. Assim, pode-se trocar a imagem que está sendo exibida

Leia mais

A Linguagem XML (& Markup Languages)

A Linguagem XML (& Markup Languages) SCC0265 Sistemas Interativos Web A Linguagem XML (& Markup Languages) Renata Pontin M. Fortes (renata@icmc.usp.br) PAE: Willian Watanabe (watinha@gmail.com) Instituto de Ciências Matemáticas e de Computação

Leia mais

Desenvolvimento em Ambiente Web. HTML - Introdução

Desenvolvimento em Ambiente Web. HTML - Introdução Desenvolvimento em Ambiente Web HTML - Introdução O que é HTML? HTML é uma linguagem para descrever a estrutura de uma página WEB. Ela permite: Publicar documentos online com cabeçalhos, texto, tabelas,

Leia mais

A diferença entre um site que implementa CSS e outro que não o usa é gigantesca e notável.

A diferença entre um site que implementa CSS e outro que não o usa é gigantesca e notável. Aula 02 - Introdução ao css ( folhas de estilo ) CSS é a sigla para o termo em inglês Cascading Style Sheets que, traduzido para o português, significa Folha de Estilo em Cascatas. O CSS é fácil de aprender

Leia mais

Notas sobre XSLT. O modo correcto para declarar um documento xsl é:

Notas sobre XSLT. O modo correcto para declarar um documento xsl é: Notas sobre XSLT XSLT é a abreviatura de extensible Stylesheet Language Tansformations. É uma linguagem para transformação de documentos xml. Permite transformar um documento xml noutro documento xml,

Leia mais

Tecnologias Internet

Tecnologias Internet Tecnologias Internet Ano Lectivo 2012/2013 * 2º Semestre Licenciaturas em Engenharia Informática (5378) Tecnologias e Sistemas da Informação (6625) Aula 4 Nuno M. Garcia, ngarcia@di.ubi.pt Fizeram isto???

Leia mais

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

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

Leia mais

XML Básico. Murillo Vasconcelos Henriques B. Castro. 17 de maio de 2011

XML Básico. Murillo Vasconcelos Henriques B. Castro. 17 de maio de 2011 XML Básico Murillo Vasconcelos Henriques B. Castro 17 de maio de 2011 O QUE É? Sigla para extensible Markable Language É uma linguagem de marcação, assim como HTML Desenvolvida para ser auto explicativa

Leia mais

Oracle Database 10g: Fundamentos de SQL e PL/SQL

Oracle Database 10g: Fundamentos de SQL e PL/SQL Oracle University Contact Us: 0-800-167225 Oracle Database 10g: Fundamentos de SQL e PL/SQL Duration: 5 Dias O que é que gostaria de aprender Conheça os fundamentos de SQL e PL/SQL usando o SQL Developer

Leia mais

MÓDULO 1: Tags: estrutura; tipos; atributos. Estrutura de um documento. Tags de blocos: <?xml?>, <!DOCTYPE>, <html>, <head>, <body>, <body bgcolor>.

MÓDULO 1: Tags: estrutura; tipos; atributos. Estrutura de um documento. Tags de blocos: <?xml?>, <!DOCTYPE>, <html>, <head>, <body>, <body bgcolor>. MÓDULO 1: Tags: estrutura; tipos; atributos. Estrutura de um documento. Tags de blocos: , , , , , . Conceitos básicos do funcionamento da Internet Internet

Leia mais

FLASH 5 E XML. XML - Simples

FLASH 5 E XML. XML - Simples FLASH 5 E XML Introdução O Flash5 trouxe consigo impressionantes novidades, uma delas foi o objecto XML. O objecto XML permite introduzir dinamicamente dados num movie Flash. Ver o exemplo a seguir. XML

Leia mais

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

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

Leia mais

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

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

Leia mais

Documentos XML 1/20. Exemplo de documento XML:

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

Leia mais

INTRODUÇÃO AO. www.posse.ueg.br RESUMO

INTRODUÇÃO AO. www.posse.ueg.br RESUMO www.posse.ueg.br Home Page: http://www.posse.ueg.br/index.php/conexao-ueg/meuperfil/userprofile/ronaldo INTRODUÇÃO AO RESUMO Considerada uma das principais invenções do século XX, a Web revolucionou a

Leia mais

XSLT e recursividade estrutural. Gestão e Tratamento de Informação DEI IST

XSLT e recursividade estrutural. Gestão e Tratamento de Informação DEI IST XSLT e recursividade estrutural Gestão e Tratamento de Informação DEI IST Agenda Recursividade estrutural XSLT Agenda Recursividade estrutural XSLT Recursividade estrutural: um paradigma diferente Dados

Leia mais

Dreamweaver CC_15x21.indd 1 06/04/ :04:22

Dreamweaver CC_15x21.indd 1 06/04/ :04:22 Dreamweaver CC_15x21.indd 1 06/04/2015 11:04:22 SUMÁRIO INTRODUÇÃO... 3 CAPÍTULO 1 Iniciando e conhecendo o Dreamweaver... 8 Interfaces... 21 Criando e configurando sites... 22 CAPÍTULO 2 Criando arquivos...

Leia mais

PÓS-GRADUAÇÃO EM MATEMÁTICA COMPUTACIONAL INFORMÁTICA INSTRUMENTAL Aula 06: Introdução Linguagem HTML

PÓS-GRADUAÇÃO EM MATEMÁTICA COMPUTACIONAL INFORMÁTICA INSTRUMENTAL Aula 06: Introdução Linguagem HTML PÓS-GRADUAÇÃO EM MATEMÁTICA COMPUTACIONAL INFORMÁTICA INSTRUMENTAL Aula 06: Introdução Linguagem HTML O Desenvolvimento Web O desenvolvimento web é o termo utilizado para descrever atividade relacionada

Leia mais

Banco de Dados na Web

Banco de Dados na Web Banco de Dados na Web Banco de Dados: Teoria e Prática André Santanchè e Luiz Celso Gomes Jr Institute of Computing UNICAMP Outubro 2014 Picture by http://www.flickr.com/photos/crouchy69, 2010 Web Semântica

Leia mais

MAPEAMENTO DE CONSULTAS SQL EM XML ENTRE SISTEMAS GERENCIADORES DE BANCO DE DADOS RELACIONAIS

MAPEAMENTO DE CONSULTAS SQL EM XML ENTRE SISTEMAS GERENCIADORES DE BANCO DE DADOS RELACIONAIS Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Curso de Sistemas de Informação RENATO SULZBACH MAPEAMENTO DE CONSULTAS SQL EM XML ENTRE SISTEMAS GERENCIADORES

Leia mais

Guia de Bolso HTML e XHTML

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

Leia mais

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

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

Leia mais

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

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

Leia mais

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

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

Leia mais

<NOME>ABIAS FRANCISCO DE SOUZA</NOME> <CNPJCPF>68884087872</CNPJCPF> <NMATRICULA>101264</NMATRICULA>

<NOME>ABIAS FRANCISCO DE SOUZA</NOME> <CNPJCPF>68884087872</CNPJCPF> <NMATRICULA>101264</NMATRICULA> 1. ARQUIVO XML 1.1. O arquivo XML deverá possuir o seguinte formato: ABIAS FRANCISCO DE SOUZA 68884087872 101264

Leia mais

PROGRAMAÇÃO PARA INTERNET RICA FUNDAMENTOS DO CSS PARTE I

PROGRAMAÇÃO PARA INTERNET RICA FUNDAMENTOS DO CSS PARTE I PROGRAMAÇÃO PARA INTERNET RICA FUNDAMENTOS DO CSS PARTE I Prof. Dr. Daniel Caetano 2012-1 Objetivos Apresentar o CSS como substituto dos parâmetros visuais do HTML Capacitar para a construção de documentos

Leia mais

Programação para Internet I. Fernando F. Costa nando@fimes.edu.br

Programação para Internet I. Fernando F. Costa nando@fimes.edu.br Programação para Internet I Fernando F. Costa nando@fimes.edu.br Ementa Histórico da Internet Componentes para o funcionamento da Internet: Protocolo, Aplicações e Serviços Confecção de páginas para internet

Leia mais

Web Design Aula 11: XHTML

Web Design Aula 11: XHTML Web Design Aula 11: XHTML Professora: Priscilla Suene priscilla.silverio@ifrn.edu.br Motivação HTML 1.0-2.0: Havia hipertextos, não havia preocupação com a apresentação HTML 3: Guerra dos Browser (Microsoft

Leia mais

Nossa Caixa Desenvolvimento. A2 sitebox. Manual do Usuário. www.nossacaixadesenvolvimento.com.br.a2/sis/gr

Nossa Caixa Desenvolvimento. A2 sitebox. Manual do Usuário. www.nossacaixadesenvolvimento.com.br.a2/sis/gr Nossa Caixa Desenvolvimento www.nossacaixadesenvolvimento.com.br.a2/sis/gr A2 sitebox Manual do Usuário Dezembro 2010 1 Índice Apresentação... 3 A2 sitebox... 4 Painel de Controle... 4 Homepage... Erro!

Leia mais

Bem-vindo ao XML. Apostila de XML

Bem-vindo ao XML. Apostila de XML Bem-vindo ao XML Bem-vindo a Extensible Markup Language, XML, a linguagem para tratamento de dados em uma forma compacta, fácil de gerenciar sem mencionar o mais poderoso avanço visto na Internet nos últimos

Leia mais

extensible Markup Language <XML/>

extensible Markup Language <XML/> extensible Markup Language Lirisnei Gomes de Sousa lirisnei@hotmail.com Jair C Leite jair@dimap.ufrn.br XML Evolução O que é XML? Aplicações Sintaxe Linguagens auxiliares Conclusões O Futuro (proposto)

Leia mais

Aula 11: Desvios e Laços

Aula 11: Desvios e Laços Aula 11: Desvios e Laços Nesta aula explicaremos alguns comandos que podem alterar o fluxo dos seus programas em JavaScript. Você aprenderá a estrutura dos comandos de desvios e laços. Entenderá como funcionam

Leia mais

Gestão e Tratamento da Informação

Gestão e Tratamento da Informação Namespaces Departamento de Engenharia Informática Instituto Superior Técnico 1 o Semestre 2007/2008 Outline 1 Porquê Usar Namespaces? 2 3 Resumo 1 Porquê Usar Namespaces? 2 3 Uma Definição Definição: Um

Leia mais

XML Schema. Um XML schema descreve a estrutura de um documento XML.

XML Schema. Um XML schema descreve a estrutura de um documento XML. XML Schema Um XML schema descreve a estrutura de um documento XML. XML Schema é uma linguagem que também costuma ser designada por XML Schema Definition (XSD). XML Schema é uma alternativa aos DTDs. 1

Leia mais

Guia de Consulta Rápida XML. Otávio C. Décio. Novatec Editora

Guia de Consulta Rápida XML. Otávio C. Décio. Novatec Editora Guia de Consulta Rápida XML Otávio C. Décio Novatec Editora Guia de Consulta Rápida XML de Otávio C. Décio Copyright@2000 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610

Leia mais

Desenvolvimento Web. Introdução Geral. Prof. Vicente Paulo de Camargo

Desenvolvimento Web. Introdução Geral. Prof. Vicente Paulo de Camargo Introdução Geral Prof. Vicente Paulo de Camargo Web e Internet A Internet é uma rede de computadores que conecta milhões de computadores Se comunicam através do protocolos específicos A Web é uma forma

Leia mais

HTML BÁSICO E TEMPLATE VIEW. Gabrielle Amorim Porto

HTML BÁSICO E TEMPLATE VIEW. Gabrielle Amorim Porto HTML BÁSICO E TEMPLATE VIEW Gabrielle Amorim Porto HTML BÁSICO E TEMPLATE VIEW Hypertext Markup Language Linguagem de marcação de hipertexto; Descreve a estrutura das páginas Web utilizando tags. HTML

Leia mais

GERÊNCIA DE DADOS SEMIESTRUTURADOS - XSLT. Prof. Angelo Augusto Frozza, M.Sc.

GERÊNCIA DE DADOS SEMIESTRUTURADOS - XSLT. Prof. Angelo Augusto Frozza, M.Sc. GERÊNCIA DE DADOS SEMIESTRUTURADOS - XSLT Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza INTRODUÇÃO XSLT é para XML o que o CSS é para HTML. INTRODUÇÃO XSLT XSL Transformation XSLT é a linguagem

Leia mais

XML (extensible Markup Language) por. Rafael Port da Rocha. (Notas de Aula)

XML (extensible Markup Language) por. Rafael Port da Rocha. (Notas de Aula) XML (extensible Markup Language) por Rafael Port da Rocha (Notas de Aula) 2007 Introcução Componentes de um Documento Eletrônico Digital Conteúdo: formado pelas informações que o documento transmite aos

Leia mais

Processamento Estruturado de Documentos 2005 By jcr

Processamento Estruturado de Documentos 2005 By jcr XSL or XSLFO Processamento Estruturado de Documentos 2005 By jcr O que é? Uma linguagem de anotação para descrever conteúdos paginados. Suporte conceitos como: página, cabeçalho, rodapé,... jcr -ped2005

Leia mais

Desenvolvimento de Aplicações Distribuídas

Desenvolvimento de Aplicações Distribuídas SOA e Web Services Pontifícia Universidade Católica de Minas Gerais Instituto de Ciências Exatas e Informática DAD (2019/01) Tópicos Apresentação da disciplina Introdução Desafios e características Arquitetura

Leia mais

Tecnologias de Desenvolvimento de Páginas web

Tecnologias de Desenvolvimento de Páginas web Tecnologias de Desenvolvimento de Páginas web HTML DHTML CSS Javascript Visual Basic Script Java HTML Hypertext Markup Language HTML Hypertext Markup Language Linguagem com a qual se definem as páginas

Leia mais

ACCESS-2007. 1) Introdução. 2) Abrindo um banco de dados. 3) A Janela do Access-2007

ACCESS-2007. 1) Introdução. 2) Abrindo um banco de dados. 3) A Janela do Access-2007 ACCESS-2007 1) Introdução O Access é um gerenciador de banco de dados relacionais. O Access começa perguntando se o usuário deseja começar um banco de dados novo ou se deseja abrir um já existente. A extensão

Leia mais

INTRODUÇÃO A PROGRAMAÇÃO PARA WEB

INTRODUÇÃO A PROGRAMAÇÃO PARA WEB INTRODUÇÃO A PROGRAMAÇÃO PARA WEB PROF. ME. HÉLIO ESPERIDIÃO Navegador O navegador também conhecido como web browser é um programa que habilita seus usuários a interagirem com documentos hospedados em

Leia mais

Programação de Servidores CST Redes de Computadores

Programação de Servidores CST Redes de Computadores Programação de Servidores CST Redes de Computadores Marx Gomes Van der Linden http://marx.vanderlinden.com.br ( Material baseado no original de Marcelo José Siqueira Coutinho de Almeida ) HMTL Arquivo-texto

Leia mais

SimpleXML: Integrando PHP e XML de maneira simples. Anderson Casimiro

SimpleXML: Integrando PHP e XML de maneira simples. Anderson Casimiro PHP Conference SimpleXML: Integrando PHP e XML de maneira simples Anderson Casimiro Quem é esse cara? Coordenador de TI Desenvolvedor há mais de 4 anos Entusiasta PHP Áreas: Saúde, RH e Comercial Master

Leia mais

Gestão e Tratamento da Informação

Gestão e Tratamento da Informação Namespaces Departamento de Engenharia Informática Instituto Superior Técnico 1 o Semestre 2009/2010 Slides baseados nos slides oficiais do livro Web Data Mining c Bing Liu, Springer, December, 2006. Outline

Leia mais

Grupo: Rodrigo Pescador Lucas Silveira Renê Rodrigues Eduardo Dellandrea Thiago Bonetti. BANCOS DE DADOS II Bancos de Dados Semi-Estruturados e XML

Grupo: Rodrigo Pescador Lucas Silveira Renê Rodrigues Eduardo Dellandrea Thiago Bonetti. BANCOS DE DADOS II Bancos de Dados Semi-Estruturados e XML Bancos de Dados Semi-Estruturados e XML Grupo: Rodrigo Pescador Lucas Silveira Renê Rodrigues Eduardo Dellandrea Thiago Bonetti O que é XML: iniciando XML - Extensible Markup Language (Linguagem de Marcação

Leia mais

Um Tradutor de Esquemas Relacionais em XML para Esquemas SQL

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

Leia mais

XML. Introdução Ferramentas para Internet Marx Gomes Van der Linden. ( Material baseado no original de Marcelo José Siqueira Coutinho de Almeida )

XML. Introdução Ferramentas para Internet Marx Gomes Van der Linden. ( Material baseado no original de Marcelo José Siqueira Coutinho de Almeida ) XML Introdução Ferramentas para Internet Marx Gomes Van der Linden ( Material baseado no original de Marcelo José Siqueira Coutinho de Almeida ) Objetivos Apresentar a linguagem de marcação XML bem como

Leia mais

COM222 DESENVOLVIMENTO DE SISTEMAS WEB. Aula 01: HTML e CSS

COM222 DESENVOLVIMENTO DE SISTEMAS WEB. Aula 01: HTML e CSS COM222 DESENVOLVIMENTO DE SISTEMAS WEB Aula 01: HTML e CSS 2 Conteúdo Noções introdutórias HTML CSS HTML: HyperText Markup Language 3 Linguagem usada para construir páginas Web Função principal Estruturar

Leia mais

Fundação Educacional Encosta Inferior do Nordeste

Fundação Educacional Encosta Inferior do Nordeste JavaScript Faculdade de Informática de Taquara - Curso Sistemas de Informação Fundação Educacional Encosta Inferior do Nordeste Av. Oscar Martins Rangel, 4500 - Taquara - RS Brasil leandro@faccat.br, rpretto@tca.com.br

Leia mais

Linguagem XML (extensible Markup Language)

Linguagem XML (extensible Markup Language) 0100010001100001111010101110001010011101001010111001010010001100001010101111010101001101010111000 1010011101001010111001010100010001100001010100100010001100001111010101110100111010010101110010100 Artigo

Leia mais

Estrutura Lógica DTD

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

Leia mais

[DCA: Declaração de Contas Anuais] [Versão 1 / 29.08.2014]

[DCA: Declaração de Contas Anuais] [Versão 1 / 29.08.2014] Guia de Implementaça o da Taxonomia Preliminar DCA 2014 [DCA: Declaração de Contas Anuais] [Versão 1 / 29.08.2014] Sumário Público-alvo e Escopo... 3 Referências... 3 Visão do processo de negócio... 4

Leia mais

Curso online de. Formação em Front-End. Plano de Estudo

Curso online de. Formação em Front-End. Plano de Estudo Curso online de Formação em Front-End Plano de Estudo Descrição do programa O Programa de Desenvolvimento Web lhe oferece conhecimentos para desenvolver habilidades necessárias para se tornar um Desenvolvedor

Leia mais