Namespace

Em geral, um namespace identifica de forma única um conjunto de nomes para que não haja ambiguidade quando objetos com origens diferentes, mas os mesmos nomes são misturados. Usando a Extensible Markup Language (XML), um espaço de nomes XML é uma coleção de nomes de atributos e tipos de elementos. Estes tipos de elementos e nomes de atributos são identificados exclusivamente pelo nome do único espaço de nomes XML do qual fazem parte. Em um documento XML, qualquer tipo de elemento ou nome de atributo pode assim ter um nome de duas partes que consiste no nome do seu espaço de nomes e depois o seu nome local (funcional).

Por exemplo, suponha que o mesmo documento XML incluiu o tipo de elemento do proprietário para proprietários de motocicletas, bem como para proprietários de automóveis. Pode ser necessário ou desejável saber que um nome de proprietário era um daqueles que possuíam um motociclo em vez de um automóvel. Ter diferentes espaços de nomes de motocicletas e automóveis tornaria isso possível. Efetivamente, seria possível rotular proprietários de motocicletas de forma diferente dos proprietários de automóveis sem ter que criar um tipo de elemento diferente para cada.

Em XML, um espaço de nomes é normalmente dado o nome de um Identificador Uniforme de Recursos (URI) - como o endereço de um website - tanto porque o espaço de nomes pode estar associado ao site ou à página desse URI (por exemplo, o nome de uma empresa) e porque um URI é convenientemente provável que seja um nome único. Note que o URI não tem necessariamente a intenção de ser usado a não ser como um nome, nem existe nenhum documento do namespace ou esquema XML que deva ser acessado; o URI é simplesmente usado como um nome (e parte do nome em duas partes de qualquer tipo de elemento ou nome de atributo para que os nomes sejam únicos dentro do documento).