SlideShare uma empresa Scribd logo
Namespaces
Namespaces (http://www.w3.org/TR/xml-
names)
`    Usual: vocabulários já definidos são usados para
     construir novos vocabulários (reuso)

`    O que acontece se dois vocabulários que estão
     sendo reusados possuem nomes de marcas iguais,
     mas em contextos diferentes?
`    Como diferenciar qual marca veio de onde?




    76
Exemplo
`    Vocabulário da matemática:
     `   Marcas: conjunto, elemento, ...
`    Vocabulário da química:
     `   Marcas: elemento , ...


`    Vocabulário a ser criado: conceitos do ensino médio
     `   Serão utilizados os vocabulários da matemática e da
         química, entre outros




    77
Problema
`    Como distinguir um elemento de um conjunto da
     matemática, de um elemento químico?

`    Solução: uso de namespaces
`    A cada vocabulário é associado um namespace,
     identificado por uma URI




    78
Exemplo
`    Namespace da matemática: http://matematica.com
`    Namespace da química: http://quimica.com

`    URIs são usadas por serem identificadores únicos
     `   Não é necessário que o endereço exista na Web




    79
Exemplo
`    Ao referenciar um elemento, usa-se o namespace
     para fazer a desambiguação
`    Para encurtar, usa-se um prefixo para referenciar o
     namespace




    80
Exemplo – documento de ensino
<ensino xmlns:m="http://www.matematica.com"
        xmlns:q="http://www.quimica.com">
  <m:conjunto>
    <m:elemento>1</m:elemento>
    <m:elemento>3</m:elemento>
  </m:conjunto>
  <q:elemento>Ca</q:elemento>
</ensino>




 81
Exemplo – documento de ensino
<ensino xmlns:m="http://www.matematica.com"
        xmlns:q="http://www.quimica.com">
  <m:conjunto>                       Declaração dos namespaces
                                     (atributo xmlns)
    <m:elemento>1</m:elemento>
    <m:elemento>3</m:elemento>
  </m:conjunto>
  <q:elemento>Ca</q:elemento>
</ensino>




 82
Exemplo – documento de ensino
<ensino xmlns:m="http://www.matematica.com"
        xmlns:q="http://www.quimica.com">
  <m:conjunto> Prefixos dos namespaces
    <m:elemento>1</m:elemento>
    <m:elemento>3</m:elemento>
  </m:conjunto>
  <q:elemento>Ca</q:elemento>
</ensino>




 83
Exemplo – documento de ensino
<ensino xmlns:m="http://www.matematica.com"
        xmlns:q="http://www.quimica.com">
  <m:conjunto>
                           Elementos da matemática
    <m:elemento>1</m:elemento>
    <m:elemento>3</m:elemento>
  </m:conjunto>
  <q:elemento>Ca</q:elemento>
</ensino>




 84
Exemplo – documento de ensino
<ensino xmlns:m="http://www.matematica.com"
        xmlns:q="http://www.quimica.com">
  <m:conjunto>
    <m:elemento>1</m:elemento>
    <m:elemento>3</m:elemento>
  </m:conjunto>          Elemento da química
  <q:elemento>Ca</q:elemento>
</ensino>




 85
Múltiplos Namespaces

          <?xml version="1.0"?>
          <!-- both namespace prefixes are available throughout -->
          <bk:book xmlns:bk='urn:loc.gov:books'
                     xmlns:isbn='urn:ISBN:0-395-36341-6'>
             <bk:title>Cheaper by the Dozen</bk:title>
             <isbn:number>1568491379</isbn:number>
          </bk:book>




Material de Maria Luiza Machado Campos
Outro Exemplo
      <aaa >
         <bbb >
           <ccc />
         </bbb>
         <BBB >
           <CCC />
         </BBB>
         <x111 >
           <x222 />
         </x111>
       </aaa>

Material de Maria Luiza Machado Campos
Declarações em todos os elementos
      <lower:aaa xmlns:lower = "http://etc.org/lowercase" >
         <lower:bbb xmlns:lower = "http://etc.org/lowercase" >
            <lower:ccc xmlns:lower = "http://etc.org/lowercase" />
         </lower:bbb>
         <upper:BBB xmlns:upper = "http://etc.org/uppercase" >
            <upper:CCC xmlns:upper = "http://etc.org/uppercase" />
         </upper:BBB>
         <xnumber:x111 xmlns:xnumber = "http://etc.org/xnumber" >
            <xnumber:x222 xmlns:xnumber = "http://etc.org/xnumber" />
         </xnumber:x111>
      </lower:aaa>
                                                     ` Vamos testar com o RXP?
                                                            rxp –N <arquivo XML>
                                         `   Testem inserir erros de namespace…

Material de Maria Luiza Machado Campos
Declarações só em alguns elementos

    <lower:aaa xmlns:lower = "http://zvon.org/lowercase" >
        <lower:bbb >
             <lower:ccc />
        </lower:bbb>
        <upper:BBB xmlns:upper = "http://zvon.org/uppercase" >
              <upper:CCC />
        </upper:BBB>
        <xnumber:x111 xmlns:xnumber = "http://zvon.org/xnumber" >
               <xnumber:x222 />
        </xnumber:x111>
    </lower:aaa>




Material de Maria Luiza Machado Campos
Declararação na raiz
   <lower:aaa xmlns:lower = "http://etc.org/lowercase”
     xmlns:upper = "http://etc.org/uppercase"
     xmlns:xnumber = "http://etc.org/xnumber" >
       <lower:bbb >
             <lower:ccc />
       </lower:bbb>
       <upper:BBB >
            <upper:CCC />
       </upper:BBB>
       <xnumber:x111 >
          <xnumber:x222 />
       </xnumber:x111>
   </lower:aaa>



Material de Maria Luiza Machado Campos
Namespace Default
      `    Namespaces não têm que ser declarados explicitamente
           com prefixos
      `    O atributo xmlns define o namespace default que é
           usado para o elemento onde ele ocorre e para seus
           filhos e descendentes
             <aaa >
                <bbb xmlns = "http://etc.org/lowercase" >
                     <ccc />
                </bbb>
                <BBB xmlns = "http://etc.org/uppercase" >
                     <CCC />
                </BBB>
                <x111 xmlns = "http://etc.org/xnumber" >
                     <x222 />
                </x111>
           </aaa>

Material de Maria Luiza Machado Campos
Exemplo
      `    Elementos podem até pertencer a diferentes
           namespaces embora eles tenham os mesmos prefixos!

           <aaa >
             <lower:bbb xmlns:lower = "http://etc.org/lowercase" >
                  <lower:ccc />
             </lower:bbb>
             <lower:BBB xmlns:lower = "http://etc.org/uppercase" >
                  <lower:CCC />
             </lower:BBB>
             <lower:x111 xmlns:lower = "http://etc.org/xnumber" >
                   <lower:x222 />
             </lower:x111>
           </aaa>


                                         / Mas evite isso, para não confundir!

Material de Maria Luiza Machado Campos
Namespaces e seu uso
      `    Namespaces são amplamente usados nas diversas
           iniciativas associadas ao XML

      <xsl:stylesheet version="1.0"
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
        <xsl:template match="pattern">
          <produto><xsl:value-of select="."/></produto>
        </xsl:template>
      </xsl:stylesheet>




Material de Maria Luiza Machado Campos

Mais conteúdo relacionado

PPTX
Desenvolvimento de sistemas web com PHP Frameworks - Aula 3
PDF
Namespace
PDF
Eucalyptus uma plataforma de cloud computing para qualquer tipo de usuário - ...
DOC
Patrick Simekha resume new (1)
PDF
Firefox bookmark 並び替え
PPTX
Jugar bien el rol de project manager
PDF
Cool Zone
DOC
Programação tv copec e tv portal
Desenvolvimento de sistemas web com PHP Frameworks - Aula 3
Namespace
Eucalyptus uma plataforma de cloud computing para qualquer tipo de usuário - ...
Patrick Simekha resume new (1)
Firefox bookmark 並び替え
Jugar bien el rol de project manager
Cool Zone
Programação tv copec e tv portal

Destaque (18)

PDF
Certificate
PPTX
Powerpoint
PDF
Webinar Service Fee Manager
PDF
Babviitrigonometri 120812192418-phpapp01
PPT
presentacion
PPTX
Una ética del carácter para el project manager
PPT
Propuestas metodologicas CPR Almunia
PDF
Iodine, antioxidants, evolution 2013
PPS
MI CUENTO
PPTX
Teleclase03112013
PPT
PresentacióN11
PDF
Analyzing Performance and Thickness Compared to the Competiiton
PDF
MARIA Q
DOCX
Artigo apresentado para congresso ENAPEGS
PPTX
Makinak L.H6B 2 taldea
PPT
Afrodita1
DOCX
Nicolas Borelli Resume
Certificate
Powerpoint
Webinar Service Fee Manager
Babviitrigonometri 120812192418-phpapp01
presentacion
Una ética del carácter para el project manager
Propuestas metodologicas CPR Almunia
Iodine, antioxidants, evolution 2013
MI CUENTO
Teleclase03112013
PresentacióN11
Analyzing Performance and Thickness Compared to the Competiiton
MARIA Q
Artigo apresentado para congresso ENAPEGS
Makinak L.H6B 2 taldea
Afrodita1
Nicolas Borelli Resume
Anúncio

Semelhante a Namespaces (11)

PDF
PDF
01- Introdução ao XML
PPTX
XML: uma introdução (UNESP, GPNTI, BEAM)
PDF
XML: Uma Introdução Prática (2001)
PDF
Aplicando Transformação em XML usando XSLT e XSL-FO - 1
PDF
Curso de xml
PDF
Novas Funcionalidade no PHP 5.3
PDF
XHTML Básico
PDF
Apostila XML, DTD, XSD e XSLT
PPTX
Parte5 xml
01- Introdução ao XML
XML: uma introdução (UNESP, GPNTI, BEAM)
XML: Uma Introdução Prática (2001)
Aplicando Transformação em XML usando XSLT e XSL-FO - 1
Curso de xml
Novas Funcionalidade no PHP 5.3
XHTML Básico
Apostila XML, DTD, XSD e XSLT
Parte5 xml
Anúncio

Namespaces

  • 2. Namespaces (http://www.w3.org/TR/xml- names) ` Usual: vocabulários já definidos são usados para construir novos vocabulários (reuso) ` O que acontece se dois vocabulários que estão sendo reusados possuem nomes de marcas iguais, mas em contextos diferentes? ` Como diferenciar qual marca veio de onde? 76
  • 3. Exemplo ` Vocabulário da matemática: ` Marcas: conjunto, elemento, ... ` Vocabulário da química: ` Marcas: elemento , ... ` Vocabulário a ser criado: conceitos do ensino médio ` Serão utilizados os vocabulários da matemática e da química, entre outros 77
  • 4. Problema ` Como distinguir um elemento de um conjunto da matemática, de um elemento químico? ` Solução: uso de namespaces ` A cada vocabulário é associado um namespace, identificado por uma URI 78
  • 5. Exemplo ` Namespace da matemática: http://matematica.com ` Namespace da química: http://quimica.com ` URIs são usadas por serem identificadores únicos ` Não é necessário que o endereço exista na Web 79
  • 6. Exemplo ` Ao referenciar um elemento, usa-se o namespace para fazer a desambiguação ` Para encurtar, usa-se um prefixo para referenciar o namespace 80
  • 7. Exemplo – documento de ensino <ensino xmlns:m="http://www.matematica.com" xmlns:q="http://www.quimica.com"> <m:conjunto> <m:elemento>1</m:elemento> <m:elemento>3</m:elemento> </m:conjunto> <q:elemento>Ca</q:elemento> </ensino> 81
  • 8. Exemplo – documento de ensino <ensino xmlns:m="http://www.matematica.com" xmlns:q="http://www.quimica.com"> <m:conjunto> Declaração dos namespaces (atributo xmlns) <m:elemento>1</m:elemento> <m:elemento>3</m:elemento> </m:conjunto> <q:elemento>Ca</q:elemento> </ensino> 82
  • 9. Exemplo – documento de ensino <ensino xmlns:m="http://www.matematica.com" xmlns:q="http://www.quimica.com"> <m:conjunto> Prefixos dos namespaces <m:elemento>1</m:elemento> <m:elemento>3</m:elemento> </m:conjunto> <q:elemento>Ca</q:elemento> </ensino> 83
  • 10. Exemplo – documento de ensino <ensino xmlns:m="http://www.matematica.com" xmlns:q="http://www.quimica.com"> <m:conjunto> Elementos da matemática <m:elemento>1</m:elemento> <m:elemento>3</m:elemento> </m:conjunto> <q:elemento>Ca</q:elemento> </ensino> 84
  • 11. Exemplo – documento de ensino <ensino xmlns:m="http://www.matematica.com" xmlns:q="http://www.quimica.com"> <m:conjunto> <m:elemento>1</m:elemento> <m:elemento>3</m:elemento> </m:conjunto> Elemento da química <q:elemento>Ca</q:elemento> </ensino> 85
  • 12. Múltiplos Namespaces <?xml version="1.0"?> <!-- both namespace prefixes are available throughout --> <bk:book xmlns:bk='urn:loc.gov:books' xmlns:isbn='urn:ISBN:0-395-36341-6'> <bk:title>Cheaper by the Dozen</bk:title> <isbn:number>1568491379</isbn:number> </bk:book> Material de Maria Luiza Machado Campos
  • 13. Outro Exemplo <aaa > <bbb > <ccc /> </bbb> <BBB > <CCC /> </BBB> <x111 > <x222 /> </x111> </aaa> Material de Maria Luiza Machado Campos
  • 14. Declarações em todos os elementos <lower:aaa xmlns:lower = "http://etc.org/lowercase" > <lower:bbb xmlns:lower = "http://etc.org/lowercase" > <lower:ccc xmlns:lower = "http://etc.org/lowercase" /> </lower:bbb> <upper:BBB xmlns:upper = "http://etc.org/uppercase" > <upper:CCC xmlns:upper = "http://etc.org/uppercase" /> </upper:BBB> <xnumber:x111 xmlns:xnumber = "http://etc.org/xnumber" > <xnumber:x222 xmlns:xnumber = "http://etc.org/xnumber" /> </xnumber:x111> </lower:aaa> ` Vamos testar com o RXP? rxp –N <arquivo XML> ` Testem inserir erros de namespace… Material de Maria Luiza Machado Campos
  • 15. Declarações só em alguns elementos <lower:aaa xmlns:lower = "http://zvon.org/lowercase" > <lower:bbb > <lower:ccc /> </lower:bbb> <upper:BBB xmlns:upper = "http://zvon.org/uppercase" > <upper:CCC /> </upper:BBB> <xnumber:x111 xmlns:xnumber = "http://zvon.org/xnumber" > <xnumber:x222 /> </xnumber:x111> </lower:aaa> Material de Maria Luiza Machado Campos
  • 16. Declararação na raiz <lower:aaa xmlns:lower = "http://etc.org/lowercase” xmlns:upper = "http://etc.org/uppercase" xmlns:xnumber = "http://etc.org/xnumber" > <lower:bbb > <lower:ccc /> </lower:bbb> <upper:BBB > <upper:CCC /> </upper:BBB> <xnumber:x111 > <xnumber:x222 /> </xnumber:x111> </lower:aaa> Material de Maria Luiza Machado Campos
  • 17. Namespace Default ` Namespaces não têm que ser declarados explicitamente com prefixos ` O atributo xmlns define o namespace default que é usado para o elemento onde ele ocorre e para seus filhos e descendentes <aaa > <bbb xmlns = "http://etc.org/lowercase" > <ccc /> </bbb> <BBB xmlns = "http://etc.org/uppercase" > <CCC /> </BBB> <x111 xmlns = "http://etc.org/xnumber" > <x222 /> </x111> </aaa> Material de Maria Luiza Machado Campos
  • 18. Exemplo ` Elementos podem até pertencer a diferentes namespaces embora eles tenham os mesmos prefixos! <aaa > <lower:bbb xmlns:lower = "http://etc.org/lowercase" > <lower:ccc /> </lower:bbb> <lower:BBB xmlns:lower = "http://etc.org/uppercase" > <lower:CCC /> </lower:BBB> <lower:x111 xmlns:lower = "http://etc.org/xnumber" > <lower:x222 /> </lower:x111> </aaa> / Mas evite isso, para não confundir! Material de Maria Luiza Machado Campos
  • 19. Namespaces e seu uso ` Namespaces são amplamente usados nas diversas iniciativas associadas ao XML <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="pattern"> <produto><xsl:value-of select="."/></produto> </xsl:template> </xsl:stylesheet> Material de Maria Luiza Machado Campos