SlideShare une entreprise Scribd logo
1  sur  13
Télécharger pour lire hors ligne
XML (Extensible Markup Language)
•   XML é uma Recomendação W3C
•   XML apenas descreve os dados e o que eles significam
        o O HTML que foi desenvolvido para mostrar os dados e a “aparência” deles
        o XML é um complemento ao HTML e não um substituto deste
•   XML foi desenvolvido para estruturar, armazenar e enviar os dados
•   “XML is a cross-platform, software and hardware independent tool for transmitting
    information” – W3Schools
•   Com XML os dados são mantidos separados do seu código HTML
•   Com XML a troca de dados entre sistemas incompatíveis é possível
•   As tags do XML não são pré-definidas, você deve criar as suas próprias tags,
    obedecendo a um pequeno conjunto de regras de sintaxe.
• Regras de Sintaxe do XML
       o   Todos os documentos XML devem conter a “declaração XML”
                Define a versão do XML e a codificação de caracteres usada no
                   documento
                <?xml version=”1.0” encoding=”ISSO-8858-1”?>
                A declaração XML não é parte do documento XML, não é um elemento
                   do documento XML, e por isso não precisa de uma tag de fechamento
       o   Todos os documentos XML devem conter um, e apenas um, elemento raiz
                <raiz> ... </raiz>
                Entre as tags do elemento raiz que estarão todas as outras tags do seu
                   documento XML
                Elemento que “diz” o que é o documento
       o   Todos os elementos devem ter uma tag de fechamento
                Existem duas construções válidas
                <teste>Teste 1</teste> o elemento teste tem conteúdo
                <teste /> o elemento teste é vazio
                Diferente do HTML que pode ter tags que não são fechadas
       o   XML é case sensitive
                <teste> é diferente de <Teste>>
       o   Os elementos XML devem estar corretamente aninhados
                Correto: <b><i>texto em negrito e em itálico</b></i>
                Incorreto: <b><i>texto em negrito e em itálico</i></b>
       o   Os valores dos atributos devem estar entre aspas
                Tanto faz se são aspas duplas ou simples
                Correto: <data=”22/12/1981”></data>
                Incorreto:<data=22/12/1981></data>
       o   Os nomes dos elementos devem seguir as regras
                Nomes podem possuir letras, números e outros caracteres
                Nomes não podem começar com número ou caractere de pontuação
                Nomes não podem começar com as letras XML e suas variações
                Nomes não podem conter espaços
       o   Sintaxe dos comentários:
                <!--Comentário-->
•   Um documento XML que siga essas regras de sintaxe é um documento XML
    Bem Formado


                                                                                        1
                                    XML DTD XSL
• Elementos XML

          <?xml version=”1.0” encoding=”ISSO-8859-1”?>
          <familiares>
                  <filho1 atributo=”1”>Conteúdo do elemento</filho1>
                  <filho2 atributo=”332”>Conteúdo do elemento</filho2>
          </familiares>
            o   O elemento raiz é familiares
            o   Os elementos filho1 e filho2 são os elementos filhos de familiares
            o   familiares é o elemento pai de filho1 e filho2
            o   filho1 e filho2 são elementos irmãos por possuírem o mesmo pai

     • Atributos
            o   Todos os elementos XML podem conter atributos
            o   Os atributos geralmente carregam informações que não são parte dos dados
            o   Como já foi mencionado, todos os valores dos atributos devem estar entre
                aspas, duplas ou simples
            o   Não existem regras que digam quando usar elementos filhos ou atributos
            o   Os exemplos a seguir carregam a mesma informação:
<pessoa sexo=”feminino”>                               <pessoa>
       <primeiro_nome>Lya</primeiro_nome>                     <sexo>feminino</sexo>
       <ultimo_nome>Castro</ultimo_nome>                      <primeiro_nome>Lya</primeiro_nome>
</pessoa>                                                     <ultimo_nome>Castro</ultimo_nome>
                                                       </pessoa>



     • Documento XML válido
            o   Um documento XML é dito válido se, além de ele ser bem formado, ele estiver
                de acordo com um DTD ou XML Schema.
     • Utilizando CSS com XML
            o   É possível formatar um documento XML utilizando folhas de estilo CSS
            o   Não é o padrão W3C
                     Coloca-se a descrição abaixo no documento XML para ligar um CSS ao
                        documento XML
                     <?xml-stylesheet type=”text/css”href=”arquivo.css”?>

     • Utilizando XSL com XML
            o   É o padrão W3C para formatar documentos XML:
                     <?xml-stylesheet type=”text/xsl” href=”simple.xsl”?>
            o   Este assunto será abordado mais adiante.




                                                                                           2
                                         XML DTD XSL
•   Prefixos e XML Namespaces
            o São utilizados para resolver conflitos de nomes entre documentos XML
            o No primeiro exemplo a tag <table> se refere a uma tabela enquanto que no segundo
                exemplo a tag <table> se refere a uma mesa, existindo claramente um conflito de
                nomes:

                <table>                           <table>
                   <tr>                              <name>Coffee Table</name>
                   <td>Apples</td>                   <width>80</width>
                   <td>Bananas</td>                  <length>120</length>
                   </tr>                          </table>
                </table>


            o Uma maneira de resolver conflitos é utilizando prefixos:

                <h:table>                         <f:table>
                   <h:tr>                            <f:name>Coffee Table</f:name>
                   <h:td>Apples</h:td>               <f:width>80</f:width>
                   <h:td>Bananas</h:td>              <f:length>120</f:length>
                   </h:tr>                        </f:table>
                </h:table>


            o    Outra maneira de resolver os conflitos é utilizando namespaces
                      Utilizamos o atributo xmlns para definir um namespace em uma tag
                      xmlns:namespace-prefix=”namespaceURI”
                      Todos os filhos do elemento no qual o namespace foi definido terão
                        associados a eles o mesmo namespace do elemento pai
            o    Os exemplos abaixo são os mesmos anteriores só que com a utilização dos
                 namespaces:
<h:table xmlns:h="http://www.w3.org/TR/html4/">     <f:table xmlns:f="http://www.w3schools.com/furniture">
   <h:tr>                                              <f:name>Coffee Table</f:name>
   <h:td>Apples</h:td>                                 <f:width>80</f:width>
   <h:td>Bananas</h:td>                                <f:length>120</f:length>
   </h:tr>                                          </f:table>
</h:table>



            o    Podemos definir um namespace padrão para o documento para que não seja
                 necessário o uso dos prefixos em todos os elementos do documento XML
                     xmlns=”namespaceURI”

    <table xmlns="http://www.w3.org/TR/html4/">      <table xmlns="http://www.w3schools.com/furniture">
       <tr>                                             <name>Coffee Table</name>
       <td>Apples</td>                                  <width>80</width>
       <td>Bananas</td>                                 <length>120</length>
       </tr>                                         </table>
    </table>




                                                                                              3
                                            XML DTD XSL
• Caracteres Ilegais
      o   Alguns caracteres são ilegais no documento XML e causarão erro se utilizados.
          Para evitar isso utilizamos as entidades de referência da tabela abaixo:

                                 &lt;    <    Menor que
                                 &gt;    >     Maior que
                                &amp;    &    E comercial
                                &em;     ‘     Apóstrofo
                                &quot;   “       Aspas

                Com erro: <message>4M salary < 1000 then</message>
                Sem Erro: <message>4M salary &lt; 1000 then</message>
                Observação: somente os caracteres “<” e “&” são ilegais no XML, os
                 outros são legais, mas é uma boa prática também substituí-los
• XML CDATA
      o   Todo o texto em um documento XML será analisado pelo parser
      o   Para que algum texto não seja analisado pelo parser devemos colocá-lo dentro de
          uma seção CDATA:
               <![CDATA[ ... ]]>
               Todo o conteúdo de uma seção CDATA é ignorado pelo parser
               O XML não permite que existam seções CDATA aninhadas

                            <script>
                            <![CDATA[
                            function matchwo(a,b)
                            {
                            if (a < b && a < 0) then
                                {
                                return 1
                                }
                            else
                                {
                                return 0
                                }
                            }
                            ]]>
                            </script>




                                                                                            4
                                      XML DTD XSL
DTD (Document Type Definition)
•   Um documento XML é válido se ele, além de ser bem formado, segue as regras de um
    DTD ou de um XML Schema
•   O propósito do DTD é definir os blocos válidos de um documento XML. Ele define a
    estrutura do documento como uma lista de elementos e atributos válidos.
•   O DTD pode ser declarado dentro do documento XML ou pode ser criado num outro
    documento e ser referenciado no XML
•   “DTD define a construção de blocos válidos para um documento XML, bem como a
    estrutura desse documento, usando uma lista de elementos válidos” FCC
•   “Permite descrever cada marca (tag) e fornecer regras para interpretar cada
    informação usada em um arquivo XML” FCC

•   Declaração Interna
        o   <!DOCTYPE elemento-raiz [declaração-dos-elementos]>
     <?xml version=”1.0” encoding=”ISO-8859-1”?>
     <!DOCTYPE note [                                             Define o elemento raiz
             <!ELEMENT to      (#PCDATA)>
             <!ELEMENT from    (#PCDATA)>                         Define o tipo de dados dos
             <!ELEMENT heading (#PCDATA)>                         elementos como PCDATA
             <!ELEMENT body    (#PCDATA)>
     ]>                                                           Fecha o DTD
     <note>
        <to>João</to>
        <from>Isa</from>
        <heading>Lembrete</heading>
        <body>É hoje</body>
     </note>


•   Declaração Externa
        o   É necessário associar o XML ao DTD
                 Adiciona-se a linha abaixo no documento XML
                 <!DOCTYPE elemento-raiz SYSTEM “nome-do-arquivo”>
                 Cria-se um documento com as informações do DTD

     <?xml version=”1.0” encoding=”ISO-8859-1”?>
     <!DOCTYPE note SYSTEM “note.dtd”>
     <note>
        <to>João</to>                                                 Arquivo XML
        <from>Isa</from>
        <heading>Lembrete</heading>
        <body>É hoje</body>
     </note>




     <!ELEMENT   note      (to,from,heading,body)>
     <!ELEMENT   to        (#PCDATA)>
     <!ELEMENT   from      (#PCDATA)>                                 Arquivo note.dtd
     <!ELEMENT   heading   (#PCDATA)>
     <!ELEMENT   body      (#PCDATA)>




                                                                                               5
                                    XML DTD XSL
Blocos de Construção
                           Um documento DTD pode conter:
        Elementos      Atributos    Entidades     PCDATA           CDATA


1. Declaração dos elementos
                      <!ELEMENT nome-do-elemento categoria>
                      <!ELEMENT nome-do-elemento (conteúdo-do-elemento)>

  •   Elementos vazios
      <!ELEMENT nome-do-elemento EMPTY>
      Exemplo DTD:
      <!ELEMENT br EMPTY>
      Exemplo XML:
      <br />
  •   Elementos com PCDATA, CDATA ou qualquer conteúdo
      <!ELEMENT nome-do-elemento (#PCDATA)>             <!ELEMENT nome-do-elemento ANY>
      Exemplo DTD:                                      Exemplo DTD:
      <!ELEMENT from (#PCDATA)>                         <!ELEMENT note ANY)>


  •   Elementos com filhos
          o   Os filhos devem aparecer no documento XML na ordem exata na qual foram
              declarados no DTD
      <!ELEMENT nome-do-elemento (filho1)>
      <!ELEMENT nome-do-elemento (filho1,filho2,...)>
      Exemplo DTD:
      <!ELEMENT note (to,from,heading,body)>

  •   Declaração de elementos com apenas uma ocorrência

      <!ELEMENT nome-do-elemento (nome-do-filho)>
      Exemplo DTD:
      <!ELEMENT note (mensagem)>  somente uma ocorrência de mensagem

  •   Declaração de elementos com no mínimo uma ocorrência
      <!ELEMENT nome-do-elemento (nome-do-filho+)>
      Exemplo DTD:
      <!ELEMENT note (mensagem+)>  no mínimo uma ocorrência de mensagem

  •   Declaração de elementos com zero ou mais ocorrências

      <!ELEMENT nome-do-elemento (nome-do-filho*)>
      Exemplo DTD:
      <!ELEMENT note (mensagem*)>




                                                                                       6
                                      XML DTD XSL
•    Declaração de elementos com zero ou uma ocorrência

       <!ELEMENT nome-do-elemento (nome-do-filho?)>
       Exemplo DTD:
       <!ELEMENT note (mensagem?)>  zero ou exatamente uma ocorrência de mensagem

  •    Declaração de conteúdo do tipo “um ou outro”
       Exemplo DTD:
       <!ELEMENT note (to,from,header,(message|body))>
       O exemplo indica que o elemento note deve conter um elemento to, um to e um header e
       ainda um message ou um body
   •   Declaração de conteúdo misto
           o   Podemos misturar o conteúdo dos elementos da maneira que acharmos
               conveniente
       Exemplo DTD:
       <!ELEMENT note (#PCDATA|to|from|header|message)*>
       O exemplo indica que o elemento note pode conter zero ou mais ocorrências de PCDATA,
       to, from, header ou message

2. Declaração dos atributos

          <!ATTLIST element-name attribute-name attribute-type default-value>


          Attribute-type                        Descrição
              CDATA        O valor é CDATA
          (em1|em2|..)     O valor deve ser um dos contidos na enumeração
                 ID        O valor é um identificador único
               IDREF       O valor é um ID de outro elemento
              IDREFS       O valor é uma lista de Ids
            NMTOKEN        O valor é um nome XML válido
           NMTOKENS        O valor é uma lista de nomes XML válidos
              ENTITY       O valor é uma entidade
             ENTITIES      O valor é uma lista de entidades
            NOTATION       O valor é um nome de uma notação
                XML:       O valor é um valor XML predefinido

           Default-value                           Descrição
               value       O valor padrão do atributo se nada for declarado
            #REQUIRED      O atributo é obrigatório
             #IMPLIED      O atributo não é obrigatório
           #FIXED value    O atributo tem um valor fixo que não pode ser mudado




                                                                                        7
                                      XML DTD XSL
DTD:                                               DTD:
<!ELEMENT quadrado EMPTY>                          <!ATTLIST person number CDATA #REQUIRED>
<!ATTLIST quadrado largura CDATA "0">              XML válido:
XML válido:                                        <person number="5677" />
<quadrado largura="100" />                         XML inválido:
                                                   <person />


DTD:                                               DTD:
<!ATTLIST telefone fax CDATA #IMPLIED>             <!ATTLIST sender company CDATA #FIXED "Microsoft">
XML válido:                                        XML válido:
<telefone fax="555-667788" />                      <sender company="Microsoft" />
Esse também é válido:                              XML inválido:
<telefone/>                                        <sender company="Apple" />

                           DTD:
                           <!ATTLIST pagamento tipo (check|cash) "cash">
                           Exemplo de XML:
                           <payment type="check" />
                           ou
                           <payment type="cash" />


     3. Entidades
         •   As entidades são variáveis usadas como “atalhos” para algum texto padrão ou
             caracteres especiais
         •   A declaração das entidades pode ser interna ou externa:

                         <!ENTITY nome-da-entidade "valor-da-entidade">
                         <!ENTITY nome-da-entidade SYSTEM "URI/URL">

              Exemplo de declaração DTD interna:
              <!ENTITY escritor "João Castro.">
              <!ENTITY copyright "Copyright Resumos&Apostilas.">
              Exemplo XML
              <autor>&escritor;&copyright;</autor>

      Exemplo de declaração DTD externa:
      <!ENTITY escritor SYSTEM "http://resumosapostilas.blogspot.com/entidades.dtd">
      <!ENTITY copyright SYSTEM" http://resumosapostilas.blogspot.com/entidades.dtd ">
      Exemplo XML
      <autor>&escritor;&copyright;</autor>




                                                                                            8
                                            XML DTD XSL
XSL = eXtensible Stylesheet Language
 •     XSL são as folhas de estilo do XML
           o XSL descreve como o documento XML deve ser apresentado
           o Recomedação W3C
 •     XSL consiste em três partes
           o XSLT = linguagem para transformar documentos XML




          XSLT = eXtensible Stylesheet
           o Xpath = linguagem para navegar nos documentos XML
           o XSL-FO = linguagem para formatar documentos XML




            Language Transformer
 •     É uma recomendação W3C
 •     XSLT transforma um documento XML em outro documento que pode ser XML, XHTML,
       HTML ou qualquer linguagem reconhecida por um browser
 •     Um arquivo XSL uma folha de estilos para o XML.
 •     Os arquivos XSL são na verdade arquivos XML que utilizam o namespace
       específico do XSL, com o prefixo "xsl”
 •     O elemento raiz do XSLT pode ser o <xsl:stylesheet> ou, opcionalmente, o
       <xsl:transform>

     <?xml version=”1.0” encoding=”ISSO-8858-1”?>
     <xsl:stylesheet version=”1.0” xmlns:xsl=”http://www.w3c.org/1999/XSL/Transform”>
     ...
     </xsl:stylesheet>
     Ou
     <?xml version=”1.0” encoding=”ISSO-8858-1”?>
     <xsl: transform version=”1.0” xmlns:xsl=”http://www.w3c.org/1999/XSL/Transform”>
     ...
     </xsl:transform>


                   Exemplos de arquivos XSL


 •     É necessário incluir uma referência ao arquivo XSL no seu documento XML

                  <?xml-stylesheet type="text/xsl" href="arquivo.xsl"?>




                                                                                        9
                                      XML DTD XSL
•   Vamos utilizar o XML simplificado abaixo e o XSL logo a seguir

             <?xml version="1.0" encoding="ISO-8859-1"?>
             <?xml-stylesheet type="text/xsl" href="combustível.xsl"?>
             <combustível>
                 <abastecimento id="1">
                     <dia>22</dia>
                     <mês>05</mês>
                     <ano>2007</ano>
                     <km_total>103045 km</km_total>
                     <km_rodados>452,5 km</km_rodados>
                     <gas>31,132 litros</gas>
                     <preço_litro>R$2,68</preço_litro>
                     <valor>R$83,43</valor>
                 </abastecimento>
             ...
             </combustível>


<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
 <html>
 <body>
         <h1>Abastecimentos</h1>
         <table border="1">
         <tr bgcolor="#9acd32">
                 <th align="left">Dia</th>
                 <th align="left">Mês</th>
                 <th align="left">Ano</th>
                 <th aling="left">KM Total</th>
                 <th align="left">Km Rodados</th>
                 <th align="left">Gasolina</th>
                 <th align="left">Preço/litro</th>
                 <th align="left">Valor</th>
         </tr>
  <xsl:for-each select="combustível/abastecimento">
  <tr>
         <td><xsl:value-of select="dia"/></td>
         <td><xsl:value-of select="mês"/></td>
         <td><xsl:value-of select="ano"/></td>
         <td><xsl:value-of select="km_total"/></td>
         <td><xsl:value-of select="km_rodados"/></td>
         <td><xsl:value-of select="gas"/></td>
         <td><xsl:value-of select="preço_litro"/></td>
         <td><xsl:value-of select="valor"/></td>
  </tr>
  </xsl:for-each>
  </table>
 </body>
 </html>
</xsl:template>

</xsl:stylesheet>                                                                 10
                                       XML DTD XSL
•   Para testar grave o primeiro arquivo como combustível.xml e o segundo como
       combustível.xsl e abra o XML no browser:

        Abastecimentos
        Dia Mês Ano      KM Total Km Rodados Gasolina          Preço/litro Valor

        22 05     2007 103045 km 452,5 km        31,132 litros R$2,68      R$83,43

        29 05     2007 103480 km 434,8 km        30,38 litros R$2,69       R$81,72



   •   Observação!
          o A FCC gosta de tentar confundir os candidatos com o formato do arquivo XSL
          o XSL = extensible stylesheet language
          o XLS = arquivo do Excel
1. Elemento <xsl:template match=”XPath”> (tem tag de fechamento)
   •   É um elemento que define um “molde”, ou “padrão” em conjunto com o atributo
       match
           o O valor do atributo match é uma expressão XPath válida
           o Uma expressão XPath funciona como navegar em um filesystem, no qual uma
               barra / seleciona os subdiretórios
   •   No exemplo,<xsl:template match=”/”> associa o molde ao elemento raiz do
       documento XML
   •   O conteúdo dentro da tag <xsl:template> é código em XHTML que define como será
       exibido o conteúdo do arquivo XML no browser
2. Elemento <xsl:value-of select=”XPath”> (o fechamento é feito na própria tag)
   •   É utilizado para extrair o valor de um nó específico dentro do arquivo XML
   •   O valor do atributo select deve ser uma expressão XPath válida
   •   No nosso exemplo o elemento <xsl:value-of select="dia"/> extrai o valor do nó dia
3. Elemento <xsl:for-each select=”XPath”> (tem tag de fechamento)
   •   Utilizado para criar loops
   •   Permite extrair todos os elementos quando utilizado em conjunto com o xsl:value-of
   •   O valor do atributo select deve ser uma expressão XPath válida
            o No nosso exemplo definimos que deve ser extraído o valor de cada um dos
               filhos do elemento abastecimento
   •   O bloco de repetição no nosso exemplo é:
                 <xsl:for-each select="combustível/abastecimento">
                 <tr>
                       <td><xsl:value-of select="dia"/></td>
                       <td><xsl:value-of select="mês"/></td>
                       <td><xsl:value-of select="ano"/></td>
                        <td><xsl:value-of select="km_total"/></td>
                       <td><xsl:value-of select="km_rodados"/></td>
                       <td><xsl:value-of select="gas"/></td>
                       <td><xsl:value-of select="preço_litro"/></td>
                        <td><xsl:value-of select="valor"/></td>
                 </tr>
                 </xsl:for-each>
                                                                                            11
                                       XML DTD XSL
•    O elemento <xsl:for-each> pode ser utilizado para filtrar o resultado com o uso dos
        operadores lógicos:
 =         Igual       Para extrair só os abastecimentos feitos no dia 22
 !=      Não igual
                       <xsl:for-each select=”combustível/abastecimento[dia=’22’]”>
&lt;    Menor que
                       Para extrair abastecimentos com valores maiores que R$100
&gt;    Maior que      <xsl:for-each select=”combustível/abastecimento[valor&gt;’100’]”>


4. Elemento <xsl:sort select=”XPath”> (não tem tag de fechamento)
   •    Serve para ordenar os resultados
   •    É colocado dentro de um elemento <xsl:for-each>
        <xsl:for-each select="combustível/abastecimento">
        <xsl:sort select=”valor”>
        <tr>
               <td><xsl:value-of select="dia"/></td>
               ...
                <td><xsl:value-of select="valor"/></td>
        </tr>
        </xsl:for-each>


5. Elemento <xsl:IF test=”expressão de teste”> (tem tag de fechamento)
   •    Faz testes condicionais
   •    Deve ser colocado dentro de um elemento <xsl:for-each>
                                                                         Mostra somente os
        <xsl:for-each select="combustível/abastecimento">                abastecimentos que com
        <xsl:if test=”valor &gt; 100”>                                   valores maiores que 100
        <tr>
               <td><xsl:value-of select="dia"/></td>
               ...
                <td><xsl:value-of select="valor"/></td>
        </tr>
        </xsl:if>
        </xsl:for-each>



6. Elementos <xsl:choose>, <xsl:when>, <xsl:otherwise> (tem tag de fechamento)
        •   Utilizados para fazer múltiplos testes condicionas

       <xsl:choose>
        <xsl:when test="expression">
         ... algum código ...
        </xsl:when>
        <xsl:otherwise>
         ... algum código ....
        </xsl:otherwise>
       </xsl:choose>




                                                                                              12
                                         XML DTD XSL
Bibliografia
W3Schools http://www.w3schools.com/
W3C http://www.w3c.org
Mini Curso Virtual Link
XML By Example
XSLT, O’Rilley




                                                    13
                                      XML DTD XSL

Contenu connexe

Tendances

HTML & CSS - Aula 3
HTML & CSS - Aula 3 HTML & CSS - Aula 3
HTML & CSS - Aula 3 lucampos_si
 
HTML & CSS - Aula 5
HTML & CSS - Aula 5HTML & CSS - Aula 5
HTML & CSS - Aula 5lucampos_si
 
Introdução à XML - Serviço de Biblioteca da EEFE-USP
Introdução à XML - Serviço de Biblioteca da EEFE-USPIntrodução à XML - Serviço de Biblioteca da EEFE-USP
Introdução à XML - Serviço de Biblioteca da EEFE-USPUniversidade de São Paulo
 
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
 
Básico em (X)HTML e CSS
Básico em (X)HTML e CSSBásico em (X)HTML e CSS
Básico em (X)HTML e CSSKako Botasso
 
02 - Apresentação de dados em XML com XSL e HTML
02 - Apresentação de dados em XML com XSL e HTML02 - Apresentação de dados em XML com XSL e HTML
02 - Apresentação de dados em XML com XSL e HTMLCésar Augusto Pessôa
 
Aplicando Transformação em XML usando XSLT e XSL-FO - 3
Aplicando Transformação em XML usando XSLT e XSL-FO - 3Aplicando Transformação em XML usando XSLT e XSL-FO - 3
Aplicando Transformação em XML usando XSLT e XSL-FO - 3Vivian Motti
 
Introdução ao Registro do Windows
Introdução ao Registro do WindowsIntrodução ao Registro do Windows
Introdução ao Registro do WindowsFábio dos Reis
 
Aplicando Transformação em XML usando XSLT e XSL-FO - 4
Aplicando Transformação em XML usando XSLT e XSL-FO - 4Aplicando Transformação em XML usando XSLT e XSL-FO - 4
Aplicando Transformação em XML usando XSLT e XSL-FO - 4Vivian Motti
 
Programação Web - CSS
Programação Web - CSSProgramação Web - CSS
Programação Web - CSSMauro Pereira
 

Tendances (20)

HTML & CSS - Aula 3
HTML & CSS - Aula 3 HTML & CSS - Aula 3
HTML & CSS - Aula 3
 
HTML & CSS - Aula 5
HTML & CSS - Aula 5HTML & CSS - Aula 5
HTML & CSS - Aula 5
 
Introdução à XML - Serviço de Biblioteca da EEFE-USP
Introdução à XML - Serviço de Biblioteca da EEFE-USPIntrodução à XML - Serviço de Biblioteca da EEFE-USP
Introdução à XML - Serviço de Biblioteca da EEFE-USP
 
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...
 
Básico em (X)HTML e CSS
Básico em (X)HTML e CSSBásico em (X)HTML e CSS
Básico em (X)HTML e CSS
 
Aula de DTD Definição do Tipo de Documento
Aula de DTD Definição do Tipo de DocumentoAula de DTD Definição do Tipo de Documento
Aula de DTD Definição do Tipo de Documento
 
02 - Apresentação de dados em XML com XSL e HTML
02 - Apresentação de dados em XML com XSL e HTML02 - Apresentação de dados em XML com XSL e HTML
02 - Apresentação de dados em XML com XSL e HTML
 
HTML
HTML HTML
HTML
 
Aplicando Transformação em XML usando XSLT e XSL-FO - 3
Aplicando Transformação em XML usando XSLT e XSL-FO - 3Aplicando Transformação em XML usando XSLT e XSL-FO - 3
Aplicando Transformação em XML usando XSLT e XSL-FO - 3
 
XML Schema (2002)
XML Schema (2002)XML Schema (2002)
XML Schema (2002)
 
Aula de XHTML
Aula de XHTMLAula de XHTML
Aula de XHTML
 
Aprenda HTML e CSS
Aprenda HTML e CSSAprenda HTML e CSS
Aprenda HTML e CSS
 
Css completo(2)
Css   completo(2)Css   completo(2)
Css completo(2)
 
03 dtd fahad
03 dtd fahad03 dtd fahad
03 dtd fahad
 
Introdução ao Registro do Windows
Introdução ao Registro do WindowsIntrodução ao Registro do Windows
Introdução ao Registro do Windows
 
Aplicando Transformação em XML usando XSLT e XSL-FO - 4
Aplicando Transformação em XML usando XSLT e XSL-FO - 4Aplicando Transformação em XML usando XSLT e XSL-FO - 4
Aplicando Transformação em XML usando XSLT e XSL-FO - 4
 
Aula Introdução a Linguagem XML
Aula Introdução a Linguagem XMLAula Introdução a Linguagem XML
Aula Introdução a Linguagem XML
 
Programação Web - CSS
Programação Web - CSSProgramação Web - CSS
Programação Web - CSS
 
O que é html
O que é htmlO que é html
O que é html
 
XML - Introdução
XML - IntroduçãoXML - Introdução
XML - Introdução
 

En vedette

En vedette (7)

Aula 6
Aula 6Aula 6
Aula 6
 
M Dna
M DnaM Dna
M Dna
 
Asp
AspAsp
Asp
 
Peopleway t4 f_221111_v2
Peopleway t4 f_221111_v2Peopleway t4 f_221111_v2
Peopleway t4 f_221111_v2
 
Publicidad e industrias culturales (enero, 25, 2012)
Publicidad e industrias culturales (enero, 25, 2012)Publicidad e industrias culturales (enero, 25, 2012)
Publicidad e industrias culturales (enero, 25, 2012)
 
Linda Nelson Stocks Art
Linda Nelson Stocks ArtLinda Nelson Stocks Art
Linda Nelson Stocks Art
 
Tendales de poesía
Tendales de poesíaTendales de poesía
Tendales de poesía
 

Similaire à Xml (20)

A e xtensible markup language (xml)
A e xtensible markup language (xml)A e xtensible markup language (xml)
A e xtensible markup language (xml)
 
Xml100 1
Xml100 1Xml100 1
Xml100 1
 
Aplicando Transformação em XML usando XSLT e XSL-FO - 1
Aplicando Transformação em XML usando XSLT e XSL-FO - 1Aplicando Transformação em XML usando XSLT e XSL-FO - 1
Aplicando Transformação em XML usando XSLT e XSL-FO - 1
 
XML
XMLXML
XML
 
XHTML Básico
XHTML BásicoXHTML Básico
XHTML Básico
 
Pro php and xml web services xml canonical
Pro php and xml web services   xml canonicalPro php and xml web services   xml canonical
Pro php and xml web services xml canonical
 
1ª aula php
1ª aula php1ª aula php
1ª aula php
 
Apostila XML, DTD, XSD e XSLT
Apostila XML, DTD, XSD e XSLTApostila XML, DTD, XSD e XSLT
Apostila XML, DTD, XSD e XSLT
 
Aula Xml Schema - XSD
Aula Xml Schema - XSDAula Xml Schema - XSD
Aula Xml Schema - XSD
 
Aula
AulaAula
Aula
 
XML - Parte 1
XML - Parte 1XML - Parte 1
XML - Parte 1
 
Tp 4 xml
Tp 4   xmlTp 4   xml
Tp 4 xml
 
15
1515
15
 
Revisão html e java script
Revisão html e java scriptRevisão html e java script
Revisão html e java script
 
HTML - HyperText Markup Language - Review
HTML - HyperText Markup Language - ReviewHTML - HyperText Markup Language - Review
HTML - HyperText Markup Language - Review
 
Arquitetura: XML + RDF ate WebSemantica
Arquitetura: XML + RDF ate WebSemanticaArquitetura: XML + RDF ate WebSemantica
Arquitetura: XML + RDF ate WebSemantica
 
Tecnologias XML e XML no SQL Server 2016
Tecnologias XML eXML no SQL Server 2016Tecnologias XML eXML no SQL Server 2016
Tecnologias XML e XML no SQL Server 2016
 
Html e css
Html e cssHtml e css
Html e css
 
Css completo(2)
Css   completo(2)Css   completo(2)
Css completo(2)
 
Programação Web com HTML e CSS
Programação Web com HTML e CSSProgramação Web com HTML e CSS
Programação Web com HTML e CSS
 

Xml

  • 1. XML (Extensible Markup Language) • XML é uma Recomendação W3C • XML apenas descreve os dados e o que eles significam o O HTML que foi desenvolvido para mostrar os dados e a “aparência” deles o XML é um complemento ao HTML e não um substituto deste • XML foi desenvolvido para estruturar, armazenar e enviar os dados • “XML is a cross-platform, software and hardware independent tool for transmitting information” – W3Schools • Com XML os dados são mantidos separados do seu código HTML • Com XML a troca de dados entre sistemas incompatíveis é possível • As tags do XML não são pré-definidas, você deve criar as suas próprias tags, obedecendo a um pequeno conjunto de regras de sintaxe. • Regras de Sintaxe do XML o Todos os documentos XML devem conter a “declaração XML”  Define a versão do XML e a codificação de caracteres usada no documento  <?xml version=”1.0” encoding=”ISSO-8858-1”?>  A declaração XML não é parte do documento XML, não é um elemento do documento XML, e por isso não precisa de uma tag de fechamento o Todos os documentos XML devem conter um, e apenas um, elemento raiz  <raiz> ... </raiz>  Entre as tags do elemento raiz que estarão todas as outras tags do seu documento XML  Elemento que “diz” o que é o documento o Todos os elementos devem ter uma tag de fechamento  Existem duas construções válidas  <teste>Teste 1</teste> o elemento teste tem conteúdo  <teste /> o elemento teste é vazio  Diferente do HTML que pode ter tags que não são fechadas o XML é case sensitive  <teste> é diferente de <Teste>> o Os elementos XML devem estar corretamente aninhados  Correto: <b><i>texto em negrito e em itálico</b></i>  Incorreto: <b><i>texto em negrito e em itálico</i></b> o Os valores dos atributos devem estar entre aspas  Tanto faz se são aspas duplas ou simples  Correto: <data=”22/12/1981”></data>  Incorreto:<data=22/12/1981></data> o Os nomes dos elementos devem seguir as regras  Nomes podem possuir letras, números e outros caracteres  Nomes não podem começar com número ou caractere de pontuação  Nomes não podem começar com as letras XML e suas variações  Nomes não podem conter espaços o Sintaxe dos comentários:  <!--Comentário--> • Um documento XML que siga essas regras de sintaxe é um documento XML Bem Formado 1 XML DTD XSL
  • 2. • Elementos XML <?xml version=”1.0” encoding=”ISSO-8859-1”?> <familiares> <filho1 atributo=”1”>Conteúdo do elemento</filho1> <filho2 atributo=”332”>Conteúdo do elemento</filho2> </familiares> o O elemento raiz é familiares o Os elementos filho1 e filho2 são os elementos filhos de familiares o familiares é o elemento pai de filho1 e filho2 o filho1 e filho2 são elementos irmãos por possuírem o mesmo pai • Atributos o Todos os elementos XML podem conter atributos o Os atributos geralmente carregam informações que não são parte dos dados o Como já foi mencionado, todos os valores dos atributos devem estar entre aspas, duplas ou simples o Não existem regras que digam quando usar elementos filhos ou atributos o Os exemplos a seguir carregam a mesma informação: <pessoa sexo=”feminino”> <pessoa> <primeiro_nome>Lya</primeiro_nome> <sexo>feminino</sexo> <ultimo_nome>Castro</ultimo_nome> <primeiro_nome>Lya</primeiro_nome> </pessoa> <ultimo_nome>Castro</ultimo_nome> </pessoa> • Documento XML válido o Um documento XML é dito válido se, além de ele ser bem formado, ele estiver de acordo com um DTD ou XML Schema. • Utilizando CSS com XML o É possível formatar um documento XML utilizando folhas de estilo CSS o Não é o padrão W3C  Coloca-se a descrição abaixo no documento XML para ligar um CSS ao documento XML  <?xml-stylesheet type=”text/css”href=”arquivo.css”?> • Utilizando XSL com XML o É o padrão W3C para formatar documentos XML:  <?xml-stylesheet type=”text/xsl” href=”simple.xsl”?> o Este assunto será abordado mais adiante. 2 XML DTD XSL
  • 3. Prefixos e XML Namespaces o São utilizados para resolver conflitos de nomes entre documentos XML o No primeiro exemplo a tag <table> se refere a uma tabela enquanto que no segundo exemplo a tag <table> se refere a uma mesa, existindo claramente um conflito de nomes: <table> <table> <tr> <name>Coffee Table</name> <td>Apples</td> <width>80</width> <td>Bananas</td> <length>120</length> </tr> </table> </table> o Uma maneira de resolver conflitos é utilizando prefixos: <h:table> <f:table> <h:tr> <f:name>Coffee Table</f:name> <h:td>Apples</h:td> <f:width>80</f:width> <h:td>Bananas</h:td> <f:length>120</f:length> </h:tr> </f:table> </h:table> o Outra maneira de resolver os conflitos é utilizando namespaces  Utilizamos o atributo xmlns para definir um namespace em uma tag  xmlns:namespace-prefix=”namespaceURI”  Todos os filhos do elemento no qual o namespace foi definido terão associados a eles o mesmo namespace do elemento pai o Os exemplos abaixo são os mesmos anteriores só que com a utilização dos namespaces: <h:table xmlns:h="http://www.w3.org/TR/html4/"> <f:table xmlns:f="http://www.w3schools.com/furniture"> <h:tr> <f:name>Coffee Table</f:name> <h:td>Apples</h:td> <f:width>80</f:width> <h:td>Bananas</h:td> <f:length>120</f:length> </h:tr> </f:table> </h:table> o Podemos definir um namespace padrão para o documento para que não seja necessário o uso dos prefixos em todos os elementos do documento XML  xmlns=”namespaceURI” <table xmlns="http://www.w3.org/TR/html4/"> <table xmlns="http://www.w3schools.com/furniture"> <tr> <name>Coffee Table</name> <td>Apples</td> <width>80</width> <td>Bananas</td> <length>120</length> </tr> </table> </table> 3 XML DTD XSL
  • 4. • Caracteres Ilegais o Alguns caracteres são ilegais no documento XML e causarão erro se utilizados. Para evitar isso utilizamos as entidades de referência da tabela abaixo: &lt; < Menor que &gt; > Maior que &amp; & E comercial &em; ‘ Apóstrofo &quot; “ Aspas  Com erro: <message>4M salary < 1000 then</message>  Sem Erro: <message>4M salary &lt; 1000 then</message>  Observação: somente os caracteres “<” e “&” são ilegais no XML, os outros são legais, mas é uma boa prática também substituí-los • XML CDATA o Todo o texto em um documento XML será analisado pelo parser o Para que algum texto não seja analisado pelo parser devemos colocá-lo dentro de uma seção CDATA:  <![CDATA[ ... ]]>  Todo o conteúdo de uma seção CDATA é ignorado pelo parser  O XML não permite que existam seções CDATA aninhadas <script> <![CDATA[ function matchwo(a,b) { if (a < b && a < 0) then { return 1 } else { return 0 } } ]]> </script> 4 XML DTD XSL
  • 5. DTD (Document Type Definition) • Um documento XML é válido se ele, além de ser bem formado, segue as regras de um DTD ou de um XML Schema • O propósito do DTD é definir os blocos válidos de um documento XML. Ele define a estrutura do documento como uma lista de elementos e atributos válidos. • O DTD pode ser declarado dentro do documento XML ou pode ser criado num outro documento e ser referenciado no XML • “DTD define a construção de blocos válidos para um documento XML, bem como a estrutura desse documento, usando uma lista de elementos válidos” FCC • “Permite descrever cada marca (tag) e fornecer regras para interpretar cada informação usada em um arquivo XML” FCC • Declaração Interna o <!DOCTYPE elemento-raiz [declaração-dos-elementos]> <?xml version=”1.0” encoding=”ISO-8859-1”?> <!DOCTYPE note [ Define o elemento raiz <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> Define o tipo de dados dos <!ELEMENT heading (#PCDATA)> elementos como PCDATA <!ELEMENT body (#PCDATA)> ]> Fecha o DTD <note> <to>João</to> <from>Isa</from> <heading>Lembrete</heading> <body>É hoje</body> </note> • Declaração Externa o É necessário associar o XML ao DTD  Adiciona-se a linha abaixo no documento XML  <!DOCTYPE elemento-raiz SYSTEM “nome-do-arquivo”>  Cria-se um documento com as informações do DTD <?xml version=”1.0” encoding=”ISO-8859-1”?> <!DOCTYPE note SYSTEM “note.dtd”> <note> <to>João</to> Arquivo XML <from>Isa</from> <heading>Lembrete</heading> <body>É hoje</body> </note> <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> Arquivo note.dtd <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> 5 XML DTD XSL
  • 6. Blocos de Construção Um documento DTD pode conter: Elementos Atributos Entidades PCDATA CDATA 1. Declaração dos elementos <!ELEMENT nome-do-elemento categoria> <!ELEMENT nome-do-elemento (conteúdo-do-elemento)> • Elementos vazios <!ELEMENT nome-do-elemento EMPTY> Exemplo DTD: <!ELEMENT br EMPTY> Exemplo XML: <br /> • Elementos com PCDATA, CDATA ou qualquer conteúdo <!ELEMENT nome-do-elemento (#PCDATA)> <!ELEMENT nome-do-elemento ANY> Exemplo DTD: Exemplo DTD: <!ELEMENT from (#PCDATA)> <!ELEMENT note ANY)> • Elementos com filhos o Os filhos devem aparecer no documento XML na ordem exata na qual foram declarados no DTD <!ELEMENT nome-do-elemento (filho1)> <!ELEMENT nome-do-elemento (filho1,filho2,...)> Exemplo DTD: <!ELEMENT note (to,from,heading,body)> • Declaração de elementos com apenas uma ocorrência <!ELEMENT nome-do-elemento (nome-do-filho)> Exemplo DTD: <!ELEMENT note (mensagem)>  somente uma ocorrência de mensagem • Declaração de elementos com no mínimo uma ocorrência <!ELEMENT nome-do-elemento (nome-do-filho+)> Exemplo DTD: <!ELEMENT note (mensagem+)>  no mínimo uma ocorrência de mensagem • Declaração de elementos com zero ou mais ocorrências <!ELEMENT nome-do-elemento (nome-do-filho*)> Exemplo DTD: <!ELEMENT note (mensagem*)> 6 XML DTD XSL
  • 7. Declaração de elementos com zero ou uma ocorrência <!ELEMENT nome-do-elemento (nome-do-filho?)> Exemplo DTD: <!ELEMENT note (mensagem?)>  zero ou exatamente uma ocorrência de mensagem • Declaração de conteúdo do tipo “um ou outro” Exemplo DTD: <!ELEMENT note (to,from,header,(message|body))> O exemplo indica que o elemento note deve conter um elemento to, um to e um header e ainda um message ou um body • Declaração de conteúdo misto o Podemos misturar o conteúdo dos elementos da maneira que acharmos conveniente Exemplo DTD: <!ELEMENT note (#PCDATA|to|from|header|message)*> O exemplo indica que o elemento note pode conter zero ou mais ocorrências de PCDATA, to, from, header ou message 2. Declaração dos atributos <!ATTLIST element-name attribute-name attribute-type default-value> Attribute-type Descrição CDATA O valor é CDATA (em1|em2|..) O valor deve ser um dos contidos na enumeração ID O valor é um identificador único IDREF O valor é um ID de outro elemento IDREFS O valor é uma lista de Ids NMTOKEN O valor é um nome XML válido NMTOKENS O valor é uma lista de nomes XML válidos ENTITY O valor é uma entidade ENTITIES O valor é uma lista de entidades NOTATION O valor é um nome de uma notação XML: O valor é um valor XML predefinido Default-value Descrição value O valor padrão do atributo se nada for declarado #REQUIRED O atributo é obrigatório #IMPLIED O atributo não é obrigatório #FIXED value O atributo tem um valor fixo que não pode ser mudado 7 XML DTD XSL
  • 8. DTD: DTD: <!ELEMENT quadrado EMPTY> <!ATTLIST person number CDATA #REQUIRED> <!ATTLIST quadrado largura CDATA "0"> XML válido: XML válido: <person number="5677" /> <quadrado largura="100" /> XML inválido: <person /> DTD: DTD: <!ATTLIST telefone fax CDATA #IMPLIED> <!ATTLIST sender company CDATA #FIXED "Microsoft"> XML válido: XML válido: <telefone fax="555-667788" /> <sender company="Microsoft" /> Esse também é válido: XML inválido: <telefone/> <sender company="Apple" /> DTD: <!ATTLIST pagamento tipo (check|cash) "cash"> Exemplo de XML: <payment type="check" /> ou <payment type="cash" /> 3. Entidades • As entidades são variáveis usadas como “atalhos” para algum texto padrão ou caracteres especiais • A declaração das entidades pode ser interna ou externa: <!ENTITY nome-da-entidade "valor-da-entidade"> <!ENTITY nome-da-entidade SYSTEM "URI/URL"> Exemplo de declaração DTD interna: <!ENTITY escritor "João Castro."> <!ENTITY copyright "Copyright Resumos&Apostilas."> Exemplo XML <autor>&escritor;&copyright;</autor> Exemplo de declaração DTD externa: <!ENTITY escritor SYSTEM "http://resumosapostilas.blogspot.com/entidades.dtd"> <!ENTITY copyright SYSTEM" http://resumosapostilas.blogspot.com/entidades.dtd "> Exemplo XML <autor>&escritor;&copyright;</autor> 8 XML DTD XSL
  • 9. XSL = eXtensible Stylesheet Language • XSL são as folhas de estilo do XML o XSL descreve como o documento XML deve ser apresentado o Recomedação W3C • XSL consiste em três partes o XSLT = linguagem para transformar documentos XML XSLT = eXtensible Stylesheet o Xpath = linguagem para navegar nos documentos XML o XSL-FO = linguagem para formatar documentos XML Language Transformer • É uma recomendação W3C • XSLT transforma um documento XML em outro documento que pode ser XML, XHTML, HTML ou qualquer linguagem reconhecida por um browser • Um arquivo XSL uma folha de estilos para o XML. • Os arquivos XSL são na verdade arquivos XML que utilizam o namespace específico do XSL, com o prefixo "xsl” • O elemento raiz do XSLT pode ser o <xsl:stylesheet> ou, opcionalmente, o <xsl:transform> <?xml version=”1.0” encoding=”ISSO-8858-1”?> <xsl:stylesheet version=”1.0” xmlns:xsl=”http://www.w3c.org/1999/XSL/Transform”> ... </xsl:stylesheet> Ou <?xml version=”1.0” encoding=”ISSO-8858-1”?> <xsl: transform version=”1.0” xmlns:xsl=”http://www.w3c.org/1999/XSL/Transform”> ... </xsl:transform> Exemplos de arquivos XSL • É necessário incluir uma referência ao arquivo XSL no seu documento XML <?xml-stylesheet type="text/xsl" href="arquivo.xsl"?> 9 XML DTD XSL
  • 10. Vamos utilizar o XML simplificado abaixo e o XSL logo a seguir <?xml version="1.0" encoding="ISO-8859-1"?> <?xml-stylesheet type="text/xsl" href="combustível.xsl"?> <combustível> <abastecimento id="1"> <dia>22</dia> <mês>05</mês> <ano>2007</ano> <km_total>103045 km</km_total> <km_rodados>452,5 km</km_rodados> <gas>31,132 litros</gas> <preço_litro>R$2,68</preço_litro> <valor>R$83,43</valor> </abastecimento> ... </combustível> <?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <body> <h1>Abastecimentos</h1> <table border="1"> <tr bgcolor="#9acd32"> <th align="left">Dia</th> <th align="left">Mês</th> <th align="left">Ano</th> <th aling="left">KM Total</th> <th align="left">Km Rodados</th> <th align="left">Gasolina</th> <th align="left">Preço/litro</th> <th align="left">Valor</th> </tr> <xsl:for-each select="combustível/abastecimento"> <tr> <td><xsl:value-of select="dia"/></td> <td><xsl:value-of select="mês"/></td> <td><xsl:value-of select="ano"/></td> <td><xsl:value-of select="km_total"/></td> <td><xsl:value-of select="km_rodados"/></td> <td><xsl:value-of select="gas"/></td> <td><xsl:value-of select="preço_litro"/></td> <td><xsl:value-of select="valor"/></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet> 10 XML DTD XSL
  • 11. Para testar grave o primeiro arquivo como combustível.xml e o segundo como combustível.xsl e abra o XML no browser: Abastecimentos Dia Mês Ano KM Total Km Rodados Gasolina Preço/litro Valor 22 05 2007 103045 km 452,5 km 31,132 litros R$2,68 R$83,43 29 05 2007 103480 km 434,8 km 30,38 litros R$2,69 R$81,72 • Observação! o A FCC gosta de tentar confundir os candidatos com o formato do arquivo XSL o XSL = extensible stylesheet language o XLS = arquivo do Excel 1. Elemento <xsl:template match=”XPath”> (tem tag de fechamento) • É um elemento que define um “molde”, ou “padrão” em conjunto com o atributo match o O valor do atributo match é uma expressão XPath válida o Uma expressão XPath funciona como navegar em um filesystem, no qual uma barra / seleciona os subdiretórios • No exemplo,<xsl:template match=”/”> associa o molde ao elemento raiz do documento XML • O conteúdo dentro da tag <xsl:template> é código em XHTML que define como será exibido o conteúdo do arquivo XML no browser 2. Elemento <xsl:value-of select=”XPath”> (o fechamento é feito na própria tag) • É utilizado para extrair o valor de um nó específico dentro do arquivo XML • O valor do atributo select deve ser uma expressão XPath válida • No nosso exemplo o elemento <xsl:value-of select="dia"/> extrai o valor do nó dia 3. Elemento <xsl:for-each select=”XPath”> (tem tag de fechamento) • Utilizado para criar loops • Permite extrair todos os elementos quando utilizado em conjunto com o xsl:value-of • O valor do atributo select deve ser uma expressão XPath válida o No nosso exemplo definimos que deve ser extraído o valor de cada um dos filhos do elemento abastecimento • O bloco de repetição no nosso exemplo é: <xsl:for-each select="combustível/abastecimento"> <tr> <td><xsl:value-of select="dia"/></td> <td><xsl:value-of select="mês"/></td> <td><xsl:value-of select="ano"/></td> <td><xsl:value-of select="km_total"/></td> <td><xsl:value-of select="km_rodados"/></td> <td><xsl:value-of select="gas"/></td> <td><xsl:value-of select="preço_litro"/></td> <td><xsl:value-of select="valor"/></td> </tr> </xsl:for-each> 11 XML DTD XSL
  • 12. O elemento <xsl:for-each> pode ser utilizado para filtrar o resultado com o uso dos operadores lógicos: = Igual Para extrair só os abastecimentos feitos no dia 22 != Não igual <xsl:for-each select=”combustível/abastecimento[dia=’22’]”> &lt; Menor que Para extrair abastecimentos com valores maiores que R$100 &gt; Maior que <xsl:for-each select=”combustível/abastecimento[valor&gt;’100’]”> 4. Elemento <xsl:sort select=”XPath”> (não tem tag de fechamento) • Serve para ordenar os resultados • É colocado dentro de um elemento <xsl:for-each> <xsl:for-each select="combustível/abastecimento"> <xsl:sort select=”valor”> <tr> <td><xsl:value-of select="dia"/></td> ... <td><xsl:value-of select="valor"/></td> </tr> </xsl:for-each> 5. Elemento <xsl:IF test=”expressão de teste”> (tem tag de fechamento) • Faz testes condicionais • Deve ser colocado dentro de um elemento <xsl:for-each> Mostra somente os <xsl:for-each select="combustível/abastecimento"> abastecimentos que com <xsl:if test=”valor &gt; 100”> valores maiores que 100 <tr> <td><xsl:value-of select="dia"/></td> ... <td><xsl:value-of select="valor"/></td> </tr> </xsl:if> </xsl:for-each> 6. Elementos <xsl:choose>, <xsl:when>, <xsl:otherwise> (tem tag de fechamento) • Utilizados para fazer múltiplos testes condicionas <xsl:choose> <xsl:when test="expression"> ... algum código ... </xsl:when> <xsl:otherwise> ... algum código .... </xsl:otherwise> </xsl:choose> 12 XML DTD XSL
  • 13. Bibliografia W3Schools http://www.w3schools.com/ W3C http://www.w3c.org Mini Curso Virtual Link XML By Example XSLT, O’Rilley 13 XML DTD XSL