Вы находитесь на странице: 1из 23

Porqu Usar Namespaces?

e Utilizao de Namespaces ca Exemplos

Gesto e Tratamento da Informao a ca


Namespaces

Departamento de Engenharia Informtica a Instituto Superior Tcnico e

1o Semestre 2010/2011

Slides baseados nos slides ociais do livro Web Data Mining c Bing Liu, Springer, December, 2006.

Gesto e Tratamento da Informao a ca

Porqu Usar Namespaces? e Utilizao de Namespaces ca Exemplos

Outline

Porqu Usar Namespaces? e

Utilizao de Namespaces ca

Exemplos

Gesto e Tratamento da Informao a ca

Porqu Usar Namespaces? e Utilizao de Namespaces ca Exemplos

Resumo

Porqu Usar Namespaces? e Utilizao de Namespaces ca Exemplos

Gesto e Tratamento da Informao a ca

Porqu Usar Namespaces? e Utilizao de Namespaces ca Exemplos

Uma Denio ca
Denio: ca Um namespace representa um contexto particular em que est a contido um conjunto de nomes. Nomes em contextos distintos (i.e., em namespaces distintos) so sempre vistos como nomes a diferentes, no havendo, por isso, qualquer ambiguidade. a Em geral, o mesmo nome pode ser usado em vrios contextos, a com diferentes signicados
E.g., o mesmo nome de atributo pode estar associado a elementos diferentes

Neste caso, podemos dizer que os atributos de elementos diferentes pertencem a contextos diferentes, i.e. namespaces diferentes
Gesto e Tratamento da Informao a ca

Porqu Usar Namespaces? e Utilizao de Namespaces ca Exemplos

Uma Denio ca
Denio: ca Um namespace representa um contexto particular em que est a contido um conjunto de nomes. Nomes em contextos distintos (i.e., em namespaces distintos) so sempre vistos como nomes a diferentes, no havendo, por isso, qualquer ambiguidade. a Em geral, o mesmo nome pode ser usado em vrios contextos, a com diferentes signicados
E.g., o mesmo nome de atributo pode estar associado a elementos diferentes

Neste caso, podemos dizer que os atributos de elementos diferentes pertencem a contextos diferentes, i.e. namespaces diferentes
Gesto e Tratamento da Informao a ca

Porqu Usar Namespaces? e Utilizao de Namespaces ca Exemplos

Namespaces em XML

At agora, no t e a nhamos maneira de separar os nomes dos elementos em espaos diferentes c Isto pode levar ` ocorrncia de colises entre nomes a e o
e.g., ao integrar dados provenientes de diversas fontes ou ao combinar vocabulrios XML (MathML, XHTML, ...) a

O que introduz a ambiguidades e torna o processamento mais complexo Por isso, a W3C recomendou o use de namespaces em XML

Gesto e Tratamento da Informao a ca

Porqu Usar Namespaces? e Utilizao de Namespaces ca Exemplos

Um Exemplo

Queremos usar XHMTL, MathML e SVG num unico documento XML Vrios elementos causam ambiguidade a
o elemento div representa uma seco em XHMTL ou uma ca diviso em MathML? a o elemento square representa um quadrado em SVG ou uma potncia em MathML? e

Namespaces permitem evitar a ocorrncia de colises entre e o nomes de elementos com signicados distintos XML permite escolher o namespaces de acordo com o contexto a ser utilizado

Gesto e Tratamento da Informao a ca

Porqu Usar Namespaces? e Utilizao de Namespaces ca Exemplos

Um Exemplo (cont.)

<html xmlns="http://www.w3.org/1999/xhtml" ...> ... <svg:svg xmlns:svg="http://www.w3.org/2000/svg" ...> ... <math xmlns="http://www.w3.org/1998/Math/MathML"> ... </math> ... </svg:svg> ... </html>

Gesto e Tratamento da Informao a ca

Porqu Usar Namespaces? e Utilizao de Namespaces ca Exemplos

Outro Exemplo

<book> <title>Media Control</title> <author> <name>Noam Chomsky</name> <title>Professor</title> </author> </book> Combinao de informao sobre livros e pessoas ca ca O elemento title pode ter diferentes signicados

Gesto e Tratamento da Informao a ca

Porqu Usar Namespaces? e Utilizao de Namespaces ca Exemplos

Resumo

Porqu Usar Namespaces? e Utilizao de Namespaces ca Exemplos

Gesto e Tratamento da Informao a ca

Porqu Usar Namespaces? e Utilizao de Namespaces ca Exemplos

Utilizao de Namespaces ca

Namespaces permitem qualicar nomes de elementos com URIs As URIs so, por denio, identicadores unicos a ca Um nome qualicado tem duas partes namespace:nome-local

Nota URI (Universal Resource Identier) so identicadores un a vocos de recursos na Web. Uma URL (Uniform Resource Locator) um tipo particular de URI. e

Gesto e Tratamento da Informao a ca

Porqu Usar Namespaces? e Utilizao de Namespaces ca Exemplos

Exemplo
<book> <title>Media Control</title> <author> <name>Noam Chomsky</name> <http://www.persons.com:title> Professor </http://www.persons.com:title> </author> </book> http://www.persons.com a URI que dene o respectivo e namespace.
Gesto e Tratamento da Informao a ca

Porqu Usar Namespaces? e Utilizao de Namespaces ca Exemplos

Declarao de Namespaces ca

No prtico usar URIs a e a Namespaces so usados indirectamente atravs de a e


declaraes de namespaces e co associao de prexos ca

No necessrio que a URI faa referncia a um recurso Web a e a c e real


Serve apenas para desambiguar os nomes

Nota DTDs no suportam namespaces a

Gesto e Tratamento da Informao a ca

Porqu Usar Namespaces? e Utilizao de Namespaces ca Exemplos

Exemplo

<book xmlns:person="http://www.person.com"> <title>Media Control</title> <author> <name>Noam Chomsky</name> <person:title>Professor</person:title> </author> </book> O atributo xmlns:person
declara o namespace http://www.person.com e associa-lhe o prexo person

Gesto e Tratamento da Informao a ca

Porqu Usar Namespaces? e Utilizao de Namespaces ca Exemplos

Validade de um Namespace

A validade de um namespaces e
o elemento que contm a declarao e todos os seus e ca descendentes mas pode ser sobreposto por declaraes aninhadas co

Tanto elementos como atributos podem ser qualicados por namespaces Elementos sem prexo recebem um namespace por omisso a (default namespace) Default namespaces so declarados como a xmlns = "URI"

Gesto e Tratamento da Informao a ca

Porqu Usar Namespaces? e Utilizao de Namespaces ca Exemplos

Namespaces para Atributos


Nomes de atributos podem ser qualicados com namespaces Um atributo no qualicado a
no pertence ao default namespace a no pertence ao namespace do elemento associado a pertence ao namespace denido pelo nome do elemento associado Exemplo <house style="Georgian" html:style="color:red"> O elemento house est no default namespace a O primeiro style est no namespace denido por house a O segundo style est no namespace html a
Gesto e Tratamento da Informao a ca

Porqu Usar Namespaces? e Utilizao de Namespaces ca Exemplos

Namespaces para Atributos


Nomes de atributos podem ser qualicados com namespaces Um atributo no qualicado a
no pertence ao default namespace a no pertence ao namespace do elemento associado a pertence ao namespace denido pelo nome do elemento associado Exemplo <house style="Georgian" html:style="color:red"> O elemento house est no default namespace a O primeiro style est no namespace denido por house a O segundo style est no namespace html a
Gesto e Tratamento da Informao a ca

Porqu Usar Namespaces? e Utilizao de Namespaces ca Exemplos

Resumo

Porqu Usar Namespaces? e Utilizao de Namespaces ca Exemplos

Gesto e Tratamento da Informao a ca

Porqu Usar Namespaces? e Utilizao de Namespaces ca Exemplos

Exemplo de Utilizao ca

<book xmlns="http://www.b..." xmlns:person="http://www.p..."> <title>Media Control</title> <author> <person:name>Noam Chomsky</person:name> <person:title>Professor</person:title> </author> </book> book e o primeiro title usam o default namespace name e o segundo title usam o namespace www.person...

Gesto e Tratamento da Informao a ca

Porqu Usar Namespaces? e Utilizao de Namespaces ca Exemplos

Sobreposio de Namespaces ca
<book xmlns="http://www.book.com"> <title>Media Control</title> <author xmlns="http://www.person.com"> <name>Noam Chomsky</name> <title>Professor</title> </author> <year>1999</year> </book> O default namespace sobreposto em author e book, o primeiro title e year usam o default namespace author, name e o segundo title usam o namespace www.person...
Gesto e Tratamento da Informao a ca

Porqu Usar Namespaces? e Utilizao de Namespaces ca Exemplos

Um Exemplo Real

Exemplo de utilizao de XHMTL, MathML e SVG ca


O default namespace para o elemento html e http://www.w3.org/1999/xhtml O namespace para os elementos SVG e http://www.w3.org/2000/svg; o prexo svg e O default namespace sobreposto por e http://www.w3.org/1998/Math/MathML para os elementos MathML

Gesto e Tratamento da Informao a ca

Porqu Usar Namespaces? e Utilizao de Namespaces ca Exemplos

Referncias e

Recomendao do W3C: ca http://www.w3.org/TR/REC-xml-names/

Gesto e Tratamento da Informao a ca

Porqu Usar Namespaces? e Utilizao de Namespaces ca Exemplos

Perguntas?

Gesto e Tratamento da Informao a ca