SlideShare uma empresa Scribd logo
1 de 38
XML: uma introdução prática




<xml:introdução />

         Helder da Rocha
       www.argonavis.com.br
                                 1
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
Assuntos abordados

Por que XML? Onde usar XML?
Como produzir documentos XML
Documentos válidos: DTD e XML Schema
       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
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=quot;33quot;>
      <nome>Severino Severovitch</nome>
                                                 elemento
      <email>bill@norte.com.br</email>
      <telefone tipo=quot;celularquot;>
        <area>11</area>
                                                 atributo
        <numero>9999 4321</numero>
      </telefone>
                                                 quot;nóquot; de texto
    </contato>
                                                                 4
XML versus HTML


HTML mostra   <h1>Severino Severovitch</h1>
   como       <h2>bill@norte.com.br</h2>
 apresentar   <p>
               <b>11</b>
               <i>9999 4321</i>
              </p>

XML mostra    <nome>Severino Severovitch</nome>
  o que       <email>bill@norte.com.br</email>
              <telefone>
 significa     <ddd>11</ddd>
               <numero>9999 4321</numero>
              </telefone>


                                                  5
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       Conteúdo do         Etiqueta
         inicial        Elemento             final
                                                                      6
Partes de um documento
                  declaração XML
 elemento raiz                      nó raiz ( / )

 <?xml version=quot;1.0quot; encoding=quot;iso-8859-1quot; ?>
                                      atributos
<cartao-simples>
   <logotipo href=quot;/imagens/logo14bis.gifquot; />
   <nome>Alberto Santos Dumont</nome>
   <endereco>Rua do Encanto, 22 - 2o. andar -
   Centro - 25600-000 - Petrópolis - RJ</endereco>
   <email>dumont@14bis.com.br</email>
   <telefone tipo=quot;residencialquot; >
                                        elementos
       <ddd>21</ddd>
       <numero>2313011</numero>
   </telefone>
</cartao-simples>

                                                     7
nó raiz
                                                           Árvore XML
   /
                              elemento raiz

  cartao-simples
  cartao-simples                                           email
                                                           email


                                               dumont@14bis.com.br
 nome
 nome

                              endereco
                              endereco
Alberto
                                                          logotipo
Santos                                                    logotipo
Dumont                  Rua do Encanto, 22 -
                         2o. andar - Centro
          telefone
          telefone                                         href
                                                           href
                           - 25600-000 -
                           Petrópolis - RJ

                                              /imagens/logo14bis.gif
numero                  ddd
numero                  ddd

             tipo
             tipo

                                                LEGENDA
                                                              nó de elemento
                        21
2313011
                                                              nó de atributo

                                                                               8
          residencial                                         nó de texto
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=quot;01.234.567/0001-99quot;>
  <nome>Severino Severovitch</nome>
  <firma:nome>Sibéria Informática Ltda.</firma:nome>
  <email>bill@norte.com.br</email>
</cadastro>
                 Este elemento <nome> pertence a outro namespace
                                                                   9
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
Onde usar XML?
§ Dados armazenados em XML podem ser facilmente
   transformados em outros formatos
texto           quot;customquot; <xml>                       Web
                                          WML
                    XML <xml>
                                        VoiceXML
                                                                  HTML
                                                                    CSS
        <xml>                                                 JavaScript
                                                   VRML
         <xml>
          <xml>     XSLT
                                                          W

                                          PDF
                               XSL-FO                          RTF
                                           PDF
         DOM
                                            PDF                TeX
        SAX
                                                              SGML
            Gráficos SVG
                                                      PDF e
                Imagens
SGBD                                                  PostScript
              JPG e PNG    2000 2001
                                                                     11
Como produzir XML

§ Criando um documento de texto Unicode a partir
 de qualquer editor de textos
                                     <contato codigo=quot;33quot;>
                                       <nome>Severino Severovitch</nome>
                                       <email>bill@norte.com.br</email>
                                       <telefone tipo=quot;celularquot;>
                                         <area>11</area>
                                         <numero>9999 4321</numero>
                                       </telefone>
                                     </contato>




§ Gerando um documento a partir de uma árvore
 montada dinamicamente
           33                        <contato codigo=quot;33quot;>
                                       <nome>Severino Severovitch</nome>
           Severino Severovitch        <email>bill@norte.com.br</email>

           bill@norte.com.br
                                       <telefone tipo=quot;celularquot;>
                                         <area>11</area>
                                         <numero>9999 4321</numero>
                                       </telefone>
                celular              </contato>

                11
                9999 4321
                                                                           12
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
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
Esquema
Documentos que aderem à
                              § O esquema representa uma classe
 especificação (válidos)
                              § Os documentos são instâncias




                                              Esquema (universo de
                                               documentos válidos)
  Documento
                           Como definir esquemas:
    fora da
                              DTD - Document Type Definition
 especificação
                              W3C XML Schema
                                                                     15
DTD vs. XML Schema

§ Um esquema é essencial para que haja comunicação
   usando XML
    § Pode ser estabelecido quot;informalmentequot; (via software)
    § Uso formal permite validação usando ferramentas
      genéricas de manipulação de XML
§ Soluções
                DTD                                XSchema
<!ELEMENT contato                       <xsd:schema
          (nome, email, telefone)>           xmlns:xsd=quot;.../XMLSchemaquot;>
<!ATTLIST contato                        <xsd:element name=quot;contatoquot;>
          codigo NMTOKEN #REQUIRED>       <xsd:complexType>
                                           <xsd:attribute name=quot;codigoquot;
                                                          use=quot;requiredquot;>

  • Simples mas não é XML                  • É XML, porém mais complexo
  • Não suporta namespaces                 • Suporta namespaces
  • Limitado quando a tipos de dados       • Permite definição de tipos
                                                                          16
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 quot;aparênciaquot; definida
   § Internet Explorer e outros mostram a árvore-fonte XML
   § Netscape mostra apenas os nós de texto
                                                             17
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
Leitura de XML com SAX

§ Se um processador SAX receber o documento ...
  <carta>
    <mensagem id=quot;1quot;>Bom dia!</mensagem>
  </carta>
§ ... ele irá disparar a seguinte seqüência de eventos:
   startDocument()
    startElement(quot;cartaquot;, [])
     startElement(quot;mensagemquot;, [Attribute(quot;idquot;,quot;1quot;)])
      characters(quot;Bom dia!quot;)
     endElement(quot;mensagemquot;)
    endElement(quot;cartaquot;)
   endDocument()
§ Programador deve implementar um objeto quot;ouvintequot; para
  capturar os eventos e extrair as informações desejadas
                                                           19
Criação de documentos com DOM (1)

§ Criação dos elementos
                           Obter objeto do tipo Document (raiz)
    /       Document
                           (dependente de processador): doc
  <carta>     Element        carta = doc.createElement(quot;cartaquot;)

  <mensagem>       Element   mens = doc.createElement(quot;mensagemquot;)

   Bom dia!       String     texto = doc.createTextNode(quot;Bom dia!quot;)


§ Atributos
  <mensagem id=quot;1quot;>           mens.setAttribute(quot;idquot;, quot;1quot;)



                                                                      20
Criação de documentos com DOM (2)
Montagem da árvore passo-a-passo
   1. Sub-árvore <mensagem>
                                       3. Árvore completa
 <mensagem id=quot;1quot;>
                                                  /
             mens.appendChild(texto)

          Bom dia!
                                                  <carta>

   2. Sub-árvore <carta>
                                        <mensagem id=quot;1quot;>

         <carta>

                                                  Bom dia!
            carta.appendChild(mens)
<mensagem id=quot;1quot;>
                                       doc.appendChild(carta)

          Bom dia!

                                                             21
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
                           • Caminhos absolutos
                                      /contato/@codigo
              33                      /contato/telefone/@tipo
              Severino Severovitch    /contato/telefone/numero/text()
              bill@norte.com.br

                                     • Relativos ao contexto /contato:
                    celular
                    11                @codigo (ou ./@codigo)
                    9999 4321         telefone/@tipo (ou ./telefone/@tipo)
                                      telefone/numero/text()

§ Expressões XPath são usadas dentro de atributos XML
   § Usadas em XSLT, XLink, XQuery e XPointer
                                                                                22
                                            * pode também ser padrão de busca
<xsl:stylesheet version=quot;1.0quot;

                                                            XSLT
     xmlns:xsl=quot;http://www.w3.org/1999/XSL/Transformquot;>
   <xsl:template match=quot;livro/tituloquot;>
      <td><xsl:value-of select=quot;.quot; /></td>


 § 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          Processador XSLT
                                                         Documento
                              Xalan, TrAX, Saxon
             fonte.xml                                    Resultado
                              Netscape, I. Explorer
           Documento
             Fonte
                                                                      23
XSLT: documento-fonte (1)

§ Considere o seguinte documento-fonte:
    <aeronave id=quot;PTGWZquot;>
       <origem partida=quot;08:15quot;>Rio de
                               Janeiro</origem>
       <destino>Itabuna</destino>
    </aeronave>

     /
           <aeronave>
                           @id    PTGWZ

                          <origem>    Rio de Janeiro

                                          @partida   08:15
§ Árvore-fonte            <destino>   Itabuna
                                                             24
XSLT: folha de estilos (2)
 § O seguinte template (parte de uma folha de estilos XSLT)
   pode extrair os dados do documento-fonte        documento-fonte
                                                   (em azul - XPath)
          <xsl:template match=quot;aeronavequot;>
              <p>A aeronave de prefixo
documento     <xsl:value-of select=quot;@idquot; /> decolou
 resultado    de <xsl:value-of select=quot;origemquot; /> às
(em preto)
              <xsl:value-of select=quot;origem/@partidaquot; />
              tendo como destino o aeroporto de
              <xsl:value-of select=quot;destinoquot; />.</p>
          </xsl:template>            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
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
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=quot;#identificadorquot;
   § Caminho resultante de expressão XPath: xpointer(/livro/id)
§ XQuery: linguagem para pesquisar documentos XML
   § Exemplo: FOR $b IN document(quot;usuario_33.xmlquot;)/contato
                        WHERE nome=quot;Severino Severovitchquot;
                        RETURN $b
                                                                       27
<fo:root xmlns:fo=quot;http://www.w3.org/1999/XSL/Formatquot;>

                                                         XSL-FO
   <fo:layout-master-set>
       <fo:simple-page-master master-name=quot;p1quot;>
           <fo:region-body/>


 § 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
      XSLT                          XML
                 Processador        Documento            Documento
                                                   FOP
                    XSLT              XSLFO                 PDF
     XML
      Fonte
                                                                     28
XSL-FO: menor documento
<fo:root xmlns:fo=quot;http://www.w3.org/1999/XSL/Formatquot;>
                                                     Este é o quot;<head>quot;
                                                     do XSL-FO
  <fo:layout-master-set>
      <fo:simple-page-master master-name=quot;p1quot;>
          <fo:region-body/>
                                            Ligação entre as
      </fo:simple-page-master>
                                         regras de layout e
  </fo:layout-master-set>             o conteúdo afetado

  <fo:page-sequence master-name=quot;p1quot;>
      <fo:flow flow-name=quot;xsl-region-bodyquot;>
         <fo:block color=quot;bluequot; font-size=quot;20ptquot;>
            Hello PDF!
         </fo:block>
      </fo:flow>
                                            Este é o quot;<body>quot;
  </fo:page-sequence>
                                            do XSL-FO

                                                                    29
</fo:root>
<html xmlns=quot;http://www.w3.org/1999/xhtmlquot;>

                                                          XHTML
   <head><title>Página XHTML</title></head>
   <body>
      <h1>Página XHTML</h1>


 § 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
              XSLT                                      XML
                                                         Documento
                             Processador XSLT
                                                          XHTML
        XML
         Documento
           Fonte                                                      30
<svg>

                                                              SVG
   <circle style=quot;fill: redquot; cx=quot;3cmquot; cy=quot;3cmquot; r=quot;2.5cmquot; />
   <rect style=quot;fill: bluequot; x=quot;6cmquot; y=quot;6cmquot;
         height=quot;2.5cmquot; width=quot;1.5cmquot; />


 § 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
Exemplo de SVG

                                               JavaScript


<svg width=quot;10cmquot; height=quot;10cmquot;>
  <g onclick=quot;alert('Clicou no grupo 1!')quot;>
                                                CSS
    <circle style=quot;fill: redquot;
            cx=quot;3cmquot; cy=quot;3cmquot; r=quot;2.5cmquot; />
    <rect style=quot;fill: bluequot; x=quot;6cmquot; y=quot;6cmquot;
          height=quot;2.5cmquot; width=quot;1.5cmquot; /></g>
  <g onclick=quot;alert('Clicou no grupo 2!')quot;>
                                                      XLink
    <circle style=quot;fill: green; opacity: 0.5quot;
            cx=quot;5cmquot; cy=quot;5cmquot; r=quot;2cmquot; /></g>
  <a xmlns:xlink=quot;http://www.w3.org/1999/xlinkquot;
     xlink:href=quot;http://www.w3.org/Graphics/SVGquot;>
    <text style=quot;color: black; font-family: tahoma;
                 font-size: 12ptquot; x=quot;3cmquot; y=quot;8cmquot;>
    SVG é XML</text></a>
</svg>
                                                            32
Algumas outras linguagens XML
                                  Classe                 Classe2
                                  oper(): void           oper(): void
                                  oper2(): int           oper2(): int
                                                 1   *

MathML
                                           XMI
              WML                                        Classe3
                                                         oper(): void
         VoiceXML                                        oper2(): int




    Web Services

 SOAP
           XML-RPC
WSDL
 UDDI                                                CML
     ebXML
                                                                        33
Demonstração
§ Exemplo de transformação XML
                                                                 PDF

                                                         FOP
                      <xslt>
                        FO
                                                        (1.a)
                               (1)         <xsl:fo>
<xml>
                                                        (1.b)
                                                                 W
                                                        JFOR
                                            <xslt>
                      Xalan          (3)     SVG

<xslt>
                (4)
Texto

                           (2)
                                                                2000 2001
                                                HTML
                        <xslt>
                                                                  SVG
  Texto texto
  texto texto            HTML
  texto texto
  texto texto
     texto

                                                                            34
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
                    www.alphaworks.ibm.com
§ Para edição (de XML genérico)
   § XML Spy Suite
   § Framemaker / ArborText
   § JEdit com plug-ins para XML, XSLT e XPath
   § Veja mais em www.w3.org/XML/

                                                       35
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
Fontes
[1] World     Wide Web Consortium (W3C). eXtensible Markup Language.
      http://www.w3.org/XML/. Ponto de partida e principal fonte sobre XML e suas
      tecnologias quot;satélitequot;. 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.
      http://java.sun.com/xml/jaxp/dist/1.1/docs/tutorial/index.html.
[3] Adobe.     SVG Tutorial. http://www.adobe.com/svg/. Contém tutorial sobre SVG e
      links para o plug-in SVG da Adobe (Win/Mac).
      IBM Developerworks. http://www-106.ibm.com/developerworks/. Diversos tutoriais
[4]
      e artigos sobre XML, XSLT, DOM e SAX usando geralmente Java.
[5] Doug     Tidwell. XSLT. O’Reilly & Associates, 2001. Explora XSLT com aplicações
      práticas em Java.
[6] Elliotte   Rusty Harold. XML Bible, Second Edition, 2001. Aborda todas as
      principais tecnologias W3C. 5 capítulos em http://cafeconleche.org/books/bible2/
[7] Erik   T. Ray. Learning XML. O’Reilly & Associates, 2001. Introdução ao XML e
      DTD, XSLT, XLink e XPointer (os dois últimos baseados em especificações draft).
                                                                                         37
helder@ibpinet.net




www.argonavis.com.br

                          38

Mais conteúdo relacionado

Mais procurados

Apresentação do Curso Primeiros Passos na Web com HTML e CSS - Profite e Univ...
Apresentação do Curso Primeiros Passos na Web com HTML e CSS - Profite e Univ...Apresentação do Curso Primeiros Passos na Web com HTML e CSS - Profite e Univ...
Apresentação do Curso Primeiros Passos na Web com HTML e CSS - Profite e Univ...Uni Buscapé Company
 
Html completo
Html completoHtml completo
Html completoEMSNEWS
 
LabMM4 (T04 - 12/13) - Relações 1:M e M:M
LabMM4 (T04 - 12/13) - Relações 1:M e M:MLabMM4 (T04 - 12/13) - Relações 1:M e M:M
LabMM4 (T04 - 12/13) - Relações 1:M e M:MCarlos Santos
 
Apostila De Html
Apostila De HtmlApostila De Html
Apostila De HtmlWanderlei
 
Manual curso php
Manual curso phpManual curso php
Manual curso phpalexinaa
 
html, css e java script - renato araujo
html, css e java script - renato araujohtml, css e java script - renato araujo
html, css e java script - renato araujoorenatoaraujo
 

Mais procurados (15)

XML
XMLXML
XML
 
XML: uma introdução (UNESP, GPNTI, BEAM)
XML: uma introdução (UNESP, GPNTI, BEAM)XML: uma introdução (UNESP, GPNTI, BEAM)
XML: uma introdução (UNESP, GPNTI, BEAM)
 
Apresentação do Curso Primeiros Passos na Web com HTML e CSS - Profite e Univ...
Apresentação do Curso Primeiros Passos na Web com HTML e CSS - Profite e Univ...Apresentação do Curso Primeiros Passos na Web com HTML e CSS - Profite e Univ...
Apresentação do Curso Primeiros Passos na Web com HTML e CSS - Profite e Univ...
 
XML - Introdução
XML - IntroduçãoXML - Introdução
XML - Introdução
 
Xml
XmlXml
Xml
 
Tp 4 xml
Tp 4   xmlTp 4   xml
Tp 4 xml
 
Css basico
Css basicoCss basico
Css basico
 
Html completo
Html completoHtml completo
Html completo
 
LabMM4 (T04 - 12/13) - Relações 1:M e M:M
LabMM4 (T04 - 12/13) - Relações 1:M e M:MLabMM4 (T04 - 12/13) - Relações 1:M e M:M
LabMM4 (T04 - 12/13) - Relações 1:M e M:M
 
Apostila De Html
Apostila De HtmlApostila De Html
Apostila De Html
 
XML Schema (2002)
XML Schema (2002)XML Schema (2002)
XML Schema (2002)
 
Manual curso php
Manual curso phpManual curso php
Manual curso php
 
html, css e java script - renato araujo
html, css e java script - renato araujohtml, css e java script - renato araujo
html, css e java script - renato araujo
 
Curso html basico_aula-001
Curso html basico_aula-001Curso html basico_aula-001
Curso html basico_aula-001
 
Aula 10 banco de dados
Aula 10   banco de dadosAula 10   banco de dados
Aula 10 banco de dados
 

Destaque

Oracle XML DB - Conceitos iniciais
Oracle XML DB - Conceitos iniciaisOracle XML DB - Conceitos iniciais
Oracle XML DB - Conceitos iniciaisDiego Lusa
 
XML In The Real World - Use Cases For Oracle XMLDB
XML In The Real World - Use Cases For Oracle XMLDBXML In The Real World - Use Cases For Oracle XMLDB
XML In The Real World - Use Cases For Oracle XMLDBMarco Gralike
 
Processamento consultas-xml-v2
Processamento consultas-xml-v2Processamento consultas-xml-v2
Processamento consultas-xml-v2Luiz Matos
 
Arquitetura: XML + RDF ate WebSemantica
Arquitetura: XML + RDF ate WebSemanticaArquitetura: XML + RDF ate WebSemantica
Arquitetura: XML + RDF ate WebSemanticaSergio Crespo
 
Apostila XML, DTD, XSD e XSLT
Apostila XML, DTD, XSD e XSLTApostila XML, DTD, XSD e XSLT
Apostila XML, DTD, XSD e XSLTRicardo Terra
 
Querying XML: XPath and XQuery
Querying XML: XPath and XQueryQuerying XML: XPath and XQuery
Querying XML: XPath and XQueryKatrien Verbert
 
Curso de desenvolvimento de aplicações para iOS com Objective-C
Curso de desenvolvimento de aplicações para iOS com Objective-CCurso de desenvolvimento de aplicações para iOS com Objective-C
Curso de desenvolvimento de aplicações para iOS com Objective-CMaurício Linhares
 
XML: Uma Introdução Prática (2001)
XML: Uma Introdução Prática (2001)XML: Uma Introdução Prática (2001)
XML: Uma Introdução Prática (2001)Helder da Rocha
 

Destaque (14)

Oracle XML DB - Conceitos iniciais
Oracle XML DB - Conceitos iniciaisOracle XML DB - Conceitos iniciais
Oracle XML DB - Conceitos iniciais
 
XML In The Real World - Use Cases For Oracle XMLDB
XML In The Real World - Use Cases For Oracle XMLDBXML In The Real World - Use Cases For Oracle XMLDB
XML In The Real World - Use Cases For Oracle XMLDB
 
Processamento consultas-xml-v2
Processamento consultas-xml-v2Processamento consultas-xml-v2
Processamento consultas-xml-v2
 
XSL, XSL-FO e XSLT + XPath
XSL, XSL-FO e XSLT + XPathXSL, XSL-FO e XSLT + XPath
XSL, XSL-FO e XSLT + XPath
 
Arquitetura: XML + RDF ate WebSemantica
Arquitetura: XML + RDF ate WebSemanticaArquitetura: XML + RDF ate WebSemantica
Arquitetura: XML + RDF ate WebSemantica
 
eXtensible Markup Language (XML)
eXtensible Markup Language (XML)eXtensible Markup Language (XML)
eXtensible Markup Language (XML)
 
Banco de Dados XML
Banco de Dados XMLBanco de Dados XML
Banco de Dados XML
 
Xquery
XqueryXquery
Xquery
 
Apostila XML, DTD, XSD e XSLT
Apostila XML, DTD, XSD e XSLTApostila XML, DTD, XSD e XSLT
Apostila XML, DTD, XSD e XSLT
 
Querying XML: XPath and XQuery
Querying XML: XPath and XQueryQuerying XML: XPath and XQuery
Querying XML: XPath and XQuery
 
Curso de desenvolvimento de aplicações para iOS com Objective-C
Curso de desenvolvimento de aplicações para iOS com Objective-CCurso de desenvolvimento de aplicações para iOS com Objective-C
Curso de desenvolvimento de aplicações para iOS com Objective-C
 
Surgimento da Internet
Surgimento da InternetSurgimento da Internet
Surgimento da Internet
 
Algumas notas sobre pascal
Algumas notas sobre pascalAlgumas notas sobre pascal
Algumas notas sobre pascal
 
XML: Uma Introdução Prática (2001)
XML: Uma Introdução Prática (2001)XML: Uma Introdução Prática (2001)
XML: Uma Introdução Prática (2001)
 

Semelhante a XML: Uma introdução prática

Semelhante a XML: Uma introdução prática (20)

XML_WS.pdf
XML_WS.pdfXML_WS.pdf
XML_WS.pdf
 
Java e XML
Java e XMLJava e XML
Java e XML
 
Xml
XmlXml
Xml
 
Parte5 xml
Parte5 xmlParte5 xml
Parte5 xml
 
XML - Parte 1
XML - Parte 1XML - Parte 1
XML - Parte 1
 
Curso XML - IBM Academic Initiative
Curso XML - IBM Academic InitiativeCurso XML - IBM Academic Initiative
Curso XML - IBM Academic Initiative
 
XML e Banco de Dados XML Nativo
XML e Banco de Dados XML NativoXML e Banco de Dados XML Nativo
XML e Banco de Dados XML Nativo
 
Trabalho de HTML, CSS e JavaScript - Eduardo Bertolucci - UNOPAR 2010
Trabalho de HTML, CSS e JavaScript - Eduardo Bertolucci - UNOPAR 2010Trabalho de HTML, CSS e JavaScript - Eduardo Bertolucci - UNOPAR 2010
Trabalho de HTML, CSS e JavaScript - Eduardo Bertolucci - UNOPAR 2010
 
Xhtml
XhtmlXhtml
Xhtml
 
T.I. - Tecnologia 3D
T.I. - Tecnologia 3DT.I. - Tecnologia 3D
T.I. - Tecnologia 3D
 
Formação Web Standards - Dia 1
Formação Web Standards - Dia 1Formação Web Standards - Dia 1
Formação Web Standards - Dia 1
 
Formação Web Standards - Dia 1
Formação Web Standards - Dia 1Formação Web Standards - Dia 1
Formação Web Standards - Dia 1
 
01- Introdução ao XML
01- Introdução ao XML01- Introdução ao XML
01- Introdução ao XML
 
Codificações basicas em HTML e XML
Codificações basicas em HTML e XMLCodificações basicas em HTML e XML
Codificações basicas em HTML e XML
 
HTML HardCore Parte 2 - XHTML
HTML HardCore Parte 2 - XHTMLHTML HardCore Parte 2 - XHTML
HTML HardCore Parte 2 - XHTML
 
JustJava 2004: JAXB
JustJava 2004: JAXBJustJava 2004: JAXB
JustJava 2004: JAXB
 
Mercia regina portfólio-interdisciplinar-individual - analise-de-sistemas-1º-...
Mercia regina portfólio-interdisciplinar-individual - analise-de-sistemas-1º-...Mercia regina portfólio-interdisciplinar-individual - analise-de-sistemas-1º-...
Mercia regina portfólio-interdisciplinar-individual - analise-de-sistemas-1º-...
 
Xml pucminas2013
Xml pucminas2013Xml pucminas2013
Xml pucminas2013
 
XHTML Básico
XHTML BásicoXHTML Básico
XHTML Básico
 
Tecnologia web aula 03
Tecnologia web  aula 03Tecnologia web  aula 03
Tecnologia web aula 03
 

Mais de Humberto Bruno Pontes Silva (20)

Confraria samba choro
Confraria samba choroConfraria samba choro
Confraria samba choro
 
Accountability Corbit Overview 06262007
Accountability Corbit Overview 06262007Accountability Corbit Overview 06262007
Accountability Corbit Overview 06262007
 
Aula08 Sc
Aula08 ScAula08 Sc
Aula08 Sc
 
Ruy C Pq D Cbc 1 2007 10 29
Ruy   C Pq D   Cbc 1 2007 10 29Ruy   C Pq D   Cbc 1 2007 10 29
Ruy C Pq D Cbc 1 2007 10 29
 
Palestra Daniel Dias1
Palestra Daniel Dias1Palestra Daniel Dias1
Palestra Daniel Dias1
 
Portuguese Scrum
Portuguese ScrumPortuguese Scrum
Portuguese Scrum
 
RegulaçãO3
RegulaçãO3RegulaçãO3
RegulaçãO3
 
Certificados Digitais
Certificados DigitaisCertificados Digitais
Certificados Digitais
 
Backdoors
BackdoorsBackdoors
Backdoors
 
Apresentacao Aula04 So
Apresentacao Aula04 SoApresentacao Aula04 So
Apresentacao Aula04 So
 
Apresentacao Aula03 So
Apresentacao Aula03 SoApresentacao Aula03 So
Apresentacao Aula03 So
 
Ch06
Ch06Ch06
Ch06
 
2contecsi B
2contecsi B2contecsi B
2contecsi B
 
Apresentacao Aula02 So
Apresentacao Aula02 SoApresentacao Aula02 So
Apresentacao Aula02 So
 
Spin72
Spin72Spin72
Spin72
 
Spin72
Spin72Spin72
Spin72
 
Licitacoes
LicitacoesLicitacoes
Licitacoes
 
10 P R O C E S S O N O T C U
10  P R O C E S S O  N O  T C U10  P R O C E S S O  N O  T C U
10 P R O C E S S O N O T C U
 
Secex Sc Conhecendo O Tcu
Secex Sc    Conhecendo O TcuSecex Sc    Conhecendo O Tcu
Secex Sc Conhecendo O Tcu
 
Ch10
Ch10Ch10
Ch10
 

XML: Uma introdução prática

  • 1. XML: uma introdução prática <xml:introdução /> Helder da Rocha www.argonavis.com.br 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. Assuntos abordados Por que XML? Onde usar XML? Como produzir documentos XML Documentos válidos: DTD e XML Schema 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=quot;33quot;> <nome>Severino Severovitch</nome> elemento <email>bill@norte.com.br</email> <telefone tipo=quot;celularquot;> <area>11</area> atributo <numero>9999 4321</numero> </telefone> quot;nóquot; de texto </contato> 4
  • 5. XML versus HTML HTML mostra <h1>Severino Severovitch</h1> como <h2>bill@norte.com.br</h2> apresentar <p> <b>11</b> <i>9999 4321</i> </p> XML mostra <nome>Severino Severovitch</nome> o que <email>bill@norte.com.br</email> <telefone> significa <ddd>11</ddd> <numero>9999 4321</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 Conteúdo do Etiqueta inicial Elemento final 6
  • 7. Partes de um documento declaração XML elemento raiz nó raiz ( / ) <?xml version=quot;1.0quot; encoding=quot;iso-8859-1quot; ?> atributos <cartao-simples> <logotipo href=quot;/imagens/logo14bis.gifquot; /> <nome>Alberto Santos Dumont</nome> <endereco>Rua do Encanto, 22 - 2o. andar - Centro - 25600-000 - Petrópolis - RJ</endereco> <email>dumont@14bis.com.br</email> <telefone tipo=quot;residencialquot; > elementos <ddd>21</ddd> <numero>2313011</numero> </telefone> </cartao-simples> 7
  • 8. nó raiz Árvore XML / elemento raiz cartao-simples cartao-simples email email dumont@14bis.com.br nome nome endereco endereco Alberto logotipo Santos logotipo Dumont Rua do Encanto, 22 - 2o. andar - Centro telefone telefone href href - 25600-000 - Petrópolis - RJ /imagens/logo14bis.gif numero ddd numero ddd tipo tipo LEGENDA nó de elemento 21 2313011 nó de atributo 8 residencial nó de texto
  • 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=quot;01.234.567/0001-99quot;> <nome>Severino Severovitch</nome> <firma:nome>Sibéria Informática Ltda.</firma:nome> <email>bill@norte.com.br</email> </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 quot;customquot; <xml> Web WML XML <xml> VoiceXML HTML CSS <xml> JavaScript VRML <xml> <xml> XSLT W PDF XSL-FO RTF PDF DOM PDF TeX SAX SGML Gráficos SVG PDF e Imagens SGBD PostScript JPG e PNG 2000 2001 11
  • 12. Como produzir XML § Criando um documento de texto Unicode a partir de qualquer editor de textos <contato codigo=quot;33quot;> <nome>Severino Severovitch</nome> <email>bill@norte.com.br</email> <telefone tipo=quot;celularquot;> <area>11</area> <numero>9999 4321</numero> </telefone> </contato> § Gerando um documento a partir de uma árvore montada dinamicamente 33 <contato codigo=quot;33quot;> <nome>Severino Severovitch</nome> Severino Severovitch <email>bill@norte.com.br</email> bill@norte.com.br <telefone tipo=quot;celularquot;> <area>11</area> <numero>9999 4321</numero> </telefone> celular </contato> 11 9999 4321 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 à § O esquema representa uma classe especificação (válidos) § Os documentos são instâncias Esquema (universo de documentos válidos) Documento Como definir esquemas: fora da DTD - Document Type Definition especificação W3C XML Schema 15
  • 16. DTD vs. XML Schema § Um esquema é essencial para que haja comunicação usando XML § Pode ser estabelecido quot;informalmentequot; (via software) § Uso formal permite validação usando ferramentas genéricas de manipulação de XML § Soluções DTD XSchema <!ELEMENT contato <xsd:schema (nome, email, telefone)> xmlns:xsd=quot;.../XMLSchemaquot;> <!ATTLIST contato <xsd:element name=quot;contatoquot;> codigo NMTOKEN #REQUIRED> <xsd:complexType> <xsd:attribute name=quot;codigoquot; use=quot;requiredquot;> • Simples mas não é XML • É XML, porém mais complexo • Não suporta namespaces • Suporta namespaces • Limitado quando a tipos de dados • 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 quot;aparênciaquot; 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=quot;1quot;>Bom dia!</mensagem> </carta> § ... ele irá disparar a seguinte seqüência de eventos: startDocument() startElement(quot;cartaquot;, []) startElement(quot;mensagemquot;, [Attribute(quot;idquot;,quot;1quot;)]) characters(quot;Bom dia!quot;) endElement(quot;mensagemquot;) endElement(quot;cartaquot;) endDocument() § Programador deve implementar um objeto quot;ouvintequot; para capturar os eventos e extrair as informações desejadas 19
  • 20. Criação de documentos com DOM (1) § Criação dos elementos Obter objeto do tipo Document (raiz) / Document (dependente de processador): doc <carta> Element carta = doc.createElement(quot;cartaquot;) <mensagem> Element mens = doc.createElement(quot;mensagemquot;) Bom dia! String texto = doc.createTextNode(quot;Bom dia!quot;) § Atributos <mensagem id=quot;1quot;> mens.setAttribute(quot;idquot;, quot;1quot;) 20
  • 21. Criação de documentos com DOM (2) Montagem da árvore passo-a-passo 1. Sub-árvore <mensagem> 3. Árvore completa <mensagem id=quot;1quot;> / mens.appendChild(texto) Bom dia! <carta> 2. Sub-árvore <carta> <mensagem id=quot;1quot;> <carta> Bom dia! carta.appendChild(mens) <mensagem id=quot;1quot;> doc.appendChild(carta) Bom dia! 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 • Caminhos absolutos /contato/@codigo 33 /contato/telefone/@tipo Severino Severovitch /contato/telefone/numero/text() bill@norte.com.br • Relativos ao contexto /contato: celular 11 @codigo (ou ./@codigo) 9999 4321 telefone/@tipo (ou ./telefone/@tipo) telefone/numero/text() § Expressões XPath são usadas dentro de atributos XML § Usadas em XSLT, XLink, XQuery e XPointer 22 * pode também ser padrão de busca
  • 23. <xsl:stylesheet version=quot;1.0quot; XSLT xmlns:xsl=quot;http://www.w3.org/1999/XSL/Transformquot;> <xsl:template match=quot;livro/tituloquot;> <td><xsl:value-of select=quot;.quot; /></td> § 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 Processador XSLT Documento Xalan, TrAX, Saxon fonte.xml Resultado Netscape, I. Explorer Documento Fonte 23
  • 24. XSLT: documento-fonte (1) § Considere o seguinte documento-fonte: <aeronave id=quot;PTGWZquot;> <origem partida=quot;08:15quot;>Rio de Janeiro</origem> <destino>Itabuna</destino> </aeronave> / <aeronave> @id PTGWZ <origem> Rio de Janeiro @partida 08:15 § Árvore-fonte <destino> Itabuna 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-fonte (em azul - XPath) <xsl:template match=quot;aeronavequot;> <p>A aeronave de prefixo documento <xsl:value-of select=quot;@idquot; /> decolou resultado de <xsl:value-of select=quot;origemquot; /> às (em preto) <xsl:value-of select=quot;origem/@partidaquot; /> tendo como destino o aeroporto de <xsl:value-of select=quot;destinoquot; />.</p> </xsl:template> 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=quot;#identificadorquot; § Caminho resultante de expressão XPath: xpointer(/livro/id) § XQuery: linguagem para pesquisar documentos XML § Exemplo: FOR $b IN document(quot;usuario_33.xmlquot;)/contato WHERE nome=quot;Severino Severovitchquot; RETURN $b 27
  • 28. <fo:root xmlns:fo=quot;http://www.w3.org/1999/XSL/Formatquot;> XSL-FO <fo:layout-master-set> <fo:simple-page-master master-name=quot;p1quot;> <fo:region-body/> § 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 XSLT XML Processador Documento Documento FOP XSLT XSLFO PDF XML Fonte 28
  • 29. XSL-FO: menor documento <fo:root xmlns:fo=quot;http://www.w3.org/1999/XSL/Formatquot;> Este é o quot;<head>quot; do XSL-FO <fo:layout-master-set> <fo:simple-page-master master-name=quot;p1quot;> <fo:region-body/> Ligação entre as </fo:simple-page-master> regras de layout e </fo:layout-master-set> o conteúdo afetado <fo:page-sequence master-name=quot;p1quot;> <fo:flow flow-name=quot;xsl-region-bodyquot;> <fo:block color=quot;bluequot; font-size=quot;20ptquot;> Hello PDF! </fo:block> </fo:flow> Este é o quot;<body>quot; </fo:page-sequence> do XSL-FO 29 </fo:root>
  • 30. <html xmlns=quot;http://www.w3.org/1999/xhtmlquot;> XHTML <head><title>Página XHTML</title></head> <body> <h1>Página XHTML</h1> § 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 XSLT XML Documento Processador XSLT XHTML XML Documento Fonte 30
  • 31. <svg> SVG <circle style=quot;fill: redquot; cx=quot;3cmquot; cy=quot;3cmquot; r=quot;2.5cmquot; /> <rect style=quot;fill: bluequot; x=quot;6cmquot; y=quot;6cmquot; height=quot;2.5cmquot; width=quot;1.5cmquot; /> § 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=quot;10cmquot; height=quot;10cmquot;> <g onclick=quot;alert('Clicou no grupo 1!')quot;> CSS <circle style=quot;fill: redquot; cx=quot;3cmquot; cy=quot;3cmquot; r=quot;2.5cmquot; /> <rect style=quot;fill: bluequot; x=quot;6cmquot; y=quot;6cmquot; height=quot;2.5cmquot; width=quot;1.5cmquot; /></g> <g onclick=quot;alert('Clicou no grupo 2!')quot;> XLink <circle style=quot;fill: green; opacity: 0.5quot; cx=quot;5cmquot; cy=quot;5cmquot; r=quot;2cmquot; /></g> <a xmlns:xlink=quot;http://www.w3.org/1999/xlinkquot; xlink:href=quot;http://www.w3.org/Graphics/SVGquot;> <text style=quot;color: black; font-family: tahoma; font-size: 12ptquot; x=quot;3cmquot; y=quot;8cmquot;> SVG é XML</text></a> </svg> 32
  • 33. Algumas outras linguagens XML Classe Classe2 oper(): void oper(): void oper2(): int oper2(): int 1 * MathML XMI WML Classe3 oper(): void VoiceXML oper2(): int Web Services SOAP XML-RPC WSDL UDDI CML ebXML 33
  • 34. Demonstração § Exemplo de transformação XML PDF FOP <xslt> FO (1.a) (1) <xsl:fo> <xml> (1.b) W JFOR <xslt> Xalan (3) SVG <xslt> (4) Texto (2) 2000 2001 HTML <xslt> SVG Texto texto texto texto HTML texto texto texto texto texto 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 www.alphaworks.ibm.com § Para edição (de XML genérico) § XML Spy Suite § Framemaker / ArborText § JEdit com plug-ins para XML, XSLT e XPath § Veja mais em www.w3.org/XML/ 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. http://www.w3.org/XML/. Ponto de partida e principal fonte sobre XML e suas tecnologias quot;satélitequot;. 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. http://java.sun.com/xml/jaxp/dist/1.1/docs/tutorial/index.html. [3] Adobe. SVG Tutorial. http://www.adobe.com/svg/. Contém tutorial sobre SVG e links para o plug-in SVG da Adobe (Win/Mac). IBM Developerworks. http://www-106.ibm.com/developerworks/. Diversos tutoriais [4] e artigos sobre XML, XSLT, DOM e SAX usando geralmente Java. [5] Doug Tidwell. XSLT. O’Reilly & Associates, 2001. Explora XSLT com aplicações práticas em Java. [6] Elliotte Rusty Harold. XML Bible, Second Edition, 2001. Aborda todas as principais tecnologias W3C. 5 capítulos em http://cafeconleche.org/books/bible2/ [7] Erik T. Ray. Learning XML. O’Reilly & Associates, 2001. Introdução ao XML e DTD, XSLT, XLink e XPointer (os dois últimos baseados em especificações draft). 37