SlideShare uma empresa Scribd logo
1 de 19
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

Destaque

Webinar Service Fee Manager
Webinar Service Fee ManagerWebinar Service Fee Manager
Webinar Service Fee Manageramadeus1a
 
Babviitrigonometri 120812192418-phpapp01
Babviitrigonometri 120812192418-phpapp01Babviitrigonometri 120812192418-phpapp01
Babviitrigonometri 120812192418-phpapp01Ana Diana
 
Una ética del carácter para el project manager
Una ética del carácter para el project managerUna ética del carácter para el project manager
Una ética del carácter para el project managerDaniel Piret
 
Propuestas metodologicas CPR Almunia
Propuestas metodologicas CPR AlmuniaPropuestas metodologicas CPR Almunia
Propuestas metodologicas CPR Almuniajaviercpr
 
Iodine, antioxidants, evolution 2013
Iodine, antioxidants, evolution 2013Iodine, antioxidants, evolution 2013
Iodine, antioxidants, evolution 2013Maria Ave Magni
 
Teleclase03112013
Teleclase03112013Teleclase03112013
Teleclase03112013lrivera0823
 
Analyzing Performance and Thickness Compared to the Competiiton
Analyzing Performance and Thickness Compared to the CompetiitonAnalyzing Performance and Thickness Compared to the Competiiton
Analyzing Performance and Thickness Compared to the CompetiitonTim Kikot
 
Artigo apresentado para congresso ENAPEGS
Artigo apresentado para congresso ENAPEGSArtigo apresentado para congresso ENAPEGS
Artigo apresentado para congresso ENAPEGSPaula Bonazzi
 
Makinak L.H6B 2 taldea
Makinak L.H6B 2 taldeaMakinak L.H6B 2 taldea
Makinak L.H6B 2 taldeamendigoiti
 

Destaque (18)

Certificate
CertificateCertificate
Certificate
 
Powerpoint
PowerpointPowerpoint
Powerpoint
 
hola
holahola
hola
 
Webinar Service Fee Manager
Webinar Service Fee ManagerWebinar Service Fee Manager
Webinar Service Fee Manager
 
Babviitrigonometri 120812192418-phpapp01
Babviitrigonometri 120812192418-phpapp01Babviitrigonometri 120812192418-phpapp01
Babviitrigonometri 120812192418-phpapp01
 
presentacion
presentacionpresentacion
presentacion
 
Una ética del carácter para el project manager
Una ética del carácter para el project managerUna ética del carácter para el project manager
Una ética del carácter para el project manager
 
Propuestas metodologicas CPR Almunia
Propuestas metodologicas CPR AlmuniaPropuestas metodologicas CPR Almunia
Propuestas metodologicas CPR Almunia
 
Iodine, antioxidants, evolution 2013
Iodine, antioxidants, evolution 2013Iodine, antioxidants, evolution 2013
Iodine, antioxidants, evolution 2013
 
MI CUENTO
MI CUENTOMI CUENTO
MI CUENTO
 
Teleclase03112013
Teleclase03112013Teleclase03112013
Teleclase03112013
 
PresentacióN11
PresentacióN11PresentacióN11
PresentacióN11
 
Analyzing Performance and Thickness Compared to the Competiiton
Analyzing Performance and Thickness Compared to the CompetiitonAnalyzing Performance and Thickness Compared to the Competiiton
Analyzing Performance and Thickness Compared to the Competiiton
 
MARIA Q
MARIA QMARIA Q
MARIA Q
 
Artigo apresentado para congresso ENAPEGS
Artigo apresentado para congresso ENAPEGSArtigo apresentado para congresso ENAPEGS
Artigo apresentado para congresso ENAPEGS
 
Makinak L.H6B 2 taldea
Makinak L.H6B 2 taldeaMakinak L.H6B 2 taldea
Makinak L.H6B 2 taldea
 
Afrodita1
Afrodita1Afrodita1
Afrodita1
 
Nicolas Borelli Resume
Nicolas Borelli ResumeNicolas Borelli Resume
Nicolas Borelli Resume
 

Semelhante a Namespaces

Hibernate efetivo (IA-2014 / Disturbing the Mind)
Hibernate efetivo (IA-2014 / Disturbing the Mind)Hibernate efetivo (IA-2014 / Disturbing the Mind)
Hibernate efetivo (IA-2014 / Disturbing the Mind)Rafael Ponte
 
don't repeat yourself front-ender
don't repeat yourself front-enderdon't repeat yourself front-ender
don't repeat yourself front-endertdc-globalcode
 
Como Perder Peso (no browser)
Como Perder Peso (no browser)Como Perder Peso (no browser)
Como Perder Peso (no browser)Zeno Rocha
 
Javascript no SAPO e libsapojs
Javascript no SAPO e libsapojsJavascript no SAPO e libsapojs
Javascript no SAPO e libsapojscodebits
 
Criando componentes interativos em páginas AMP com amp-bind
Criando componentes interativos em páginas AMP com amp-bindCriando componentes interativos em páginas AMP com amp-bind
Criando componentes interativos em páginas AMP com amp-bindMurilo Siqueira Ferreira
 
Tutorial visão automação de testes e casper js
Tutorial visão automação de testes e casper jsTutorial visão automação de testes e casper js
Tutorial visão automação de testes e casper js4ALL Tests
 
Tutorial - Visão sobre Automação de Testes com CasperJS
Tutorial - Visão sobre Automação de Testes com CasperJSTutorial - Visão sobre Automação de Testes com CasperJS
Tutorial - Visão sobre Automação de Testes com CasperJSFrederico Allan
 
HTML & CSS - Aula 4
HTML & CSS - Aula 4HTML & CSS - Aula 4
HTML & CSS - Aula 4lucampos_si
 
Aplicando Transformação em XML usando XSLT e XSL-FO - 2
Aplicando Transformação em XML usando XSLT e XSL-FO - 2Aplicando Transformação em XML usando XSLT e XSL-FO - 2
Aplicando Transformação em XML usando XSLT e XSL-FO - 2Vivian Motti
 
3260 php truquesmagicos %281%29
3260 php truquesmagicos %281%293260 php truquesmagicos %281%29
3260 php truquesmagicos %281%29Juliana Nascimento
 
Aula 1 linguagem html (1)
Aula 1   linguagem html (1)Aula 1   linguagem html (1)
Aula 1 linguagem html (1)Kaoru Hatake
 
SUIT CSS como padrão de escrita de estilos
SUIT CSS como padrão de escrita de estilosSUIT CSS como padrão de escrita de estilos
SUIT CSS como padrão de escrita de estilosJoão Paulo Barbosa Neto
 
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernateDesenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernateVitor Silva
 
JasperReports Tecnicas de geracao_de_relatorios1
JasperReports  Tecnicas de geracao_de_relatorios1JasperReports  Tecnicas de geracao_de_relatorios1
JasperReports Tecnicas de geracao_de_relatorios1Sliedesharessbarbosa
 

Semelhante a Namespaces (20)

Alo mundojpa
Alo mundojpaAlo mundojpa
Alo mundojpa
 
Alo mundojpa
Alo mundojpaAlo mundojpa
Alo mundojpa
 
Hibernate efetivo (IA-2014 / Disturbing the Mind)
Hibernate efetivo (IA-2014 / Disturbing the Mind)Hibernate efetivo (IA-2014 / Disturbing the Mind)
Hibernate efetivo (IA-2014 / Disturbing the Mind)
 
don't repeat yourself front-ender
don't repeat yourself front-enderdon't repeat yourself front-ender
don't repeat yourself front-ender
 
Vb
VbVb
Vb
 
Como Perder Peso (no browser)
Como Perder Peso (no browser)Como Perder Peso (no browser)
Como Perder Peso (no browser)
 
Javascript no SAPO e libsapojs
Javascript no SAPO e libsapojsJavascript no SAPO e libsapojs
Javascript no SAPO e libsapojs
 
Criando componentes interativos em páginas AMP com amp-bind
Criando componentes interativos em páginas AMP com amp-bindCriando componentes interativos em páginas AMP com amp-bind
Criando componentes interativos em páginas AMP com amp-bind
 
Tutorial visão automação de testes e casper js
Tutorial visão automação de testes e casper jsTutorial visão automação de testes e casper js
Tutorial visão automação de testes e casper js
 
Tutorial - Visão sobre Automação de Testes com CasperJS
Tutorial - Visão sobre Automação de Testes com CasperJSTutorial - Visão sobre Automação de Testes com CasperJS
Tutorial - Visão sobre Automação de Testes com CasperJS
 
HTML & CSS - Aula 4
HTML & CSS - Aula 4HTML & CSS - Aula 4
HTML & CSS - Aula 4
 
Aplicando Transformação em XML usando XSLT e XSL-FO - 2
Aplicando Transformação em XML usando XSLT e XSL-FO - 2Aplicando Transformação em XML usando XSLT e XSL-FO - 2
Aplicando Transformação em XML usando XSLT e XSL-FO - 2
 
3260 php truquesmagicos %281%29
3260 php truquesmagicos %281%293260 php truquesmagicos %281%29
3260 php truquesmagicos %281%29
 
3260 php truquesmagicos
3260 php truquesmagicos3260 php truquesmagicos
3260 php truquesmagicos
 
Aula 1 linguagem html (1)
Aula 1   linguagem html (1)Aula 1   linguagem html (1)
Aula 1 linguagem html (1)
 
SUIT CSS como padrão de escrita de estilos
SUIT CSS como padrão de escrita de estilosSUIT CSS como padrão de escrita de estilos
SUIT CSS como padrão de escrita de estilos
 
GBD Pattern
GBD PatternGBD Pattern
GBD Pattern
 
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernateDesenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
 
JasperReports Tecnicas de geracao_de_relatorios1
JasperReports  Tecnicas de geracao_de_relatorios1JasperReports  Tecnicas de geracao_de_relatorios1
JasperReports Tecnicas de geracao_de_relatorios1
 
XHTML Básico
XHTML BásicoXHTML Básico
XHTML Básico
 

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