Estou tentando descobrir por que precisamos de URIs para namespaces XML e não consigo encontrar um objetivo para isso. Alguém pode me alegrar um pouco mostrando seu uso em um exemplo concreto?
EDITAR:
Ok, por exemplo: eu tenho isso do w3schools
<root
xmlns:h="http://www.w3.org/TR/html4/"
xmlns:f="http://www.w3schools.com/furniture">
<h:table>
<h:tr>
<h:td>Apples</h:td>
<h:td>Bananas</h:td>
</h:tr>
</h:table>
<f:table>
<f:name>African Coffee Table</f:name>
<f:width>80</f:width>
<f:length>120</f:length>
</f:table>
</root>
Então, o que deve acontecer http://www.w3schools.com/furniture
?
Respostas:
Um espaço para nome é uma maneira de dizer "Esse tipo de Foo" é diferente de "Esse tipo de Foo", mesmo que tenham a mesma grafia. Ou, se você preferir " MY type of Foo" é diferente de " Everybody elses type of Foo".
A maneira técnica de dizer isso é "O URI do meu namespace para Foo" é diferente de todo mundo que usa o URI para seu namespace para Foo. Em outras palavras, os URIs são apenas strings que permitem que você diga.
O truque é dizer "Ei, URLs são URIs válidos" e, em seguida, use um URI correspondente a um URL sob seu controle. Se todos fizerem isso, evite colisões acidentais no espaço para nome. Você também pode ter dito o namespace "A" e o namespace "B", mas corre o risco de que outra pessoa também use o mesmo namespace, e então seu tipo de Foo não é mais diferente do Foo deles, que é exatamente o que você deseja evitar .
Você pode adicionar uma convenção adicional aos URLs usados como URIs, por exemplo, que o URL deve corresponder a uma página que contém documentação ou XSDs ou similares, mas isso não é necessário. É apenas conveniente.
fonte
a
seria totalmente válido? Estúpido, mas válido? Ou precisa ser um URI?Em termos gerais, qualquer identificador exclusivo serviria para um espaço para nome; mas como é suposto ser globalmente único , o padrão teria que exigir alguma autoridade de arbitragem ou usar outro recurso que seja ao mesmo tempo globalmente único, mas fácil de se manter e provar que é seu.
Veja! se você tem um domínio, é obviamente apenas o seu e é fácil provar que é seu!
Por exemplo, eles queriam evitar a situação em que duas livrarias diferentes começam a usar "books" como um espaço para nome, com definições internas totalmente diferentes. Enquanto eles o usam internamente, não há problema; mas assim que um deles deseja publicar suas especificações, o inferno se abre.
Em vez disso, se você for incentivado a usar seu domínio, qualquer pessoa (bem, qualquer pessoa que possua um domínio) pode definir seu próprio espaço de nome privado com a certeza de que ninguém mais usará exatamente o mesmo identificador.
Como um bônus, você pode opcionalmente armazenar a definição do seu espaço para nome no URI, tornando-o auto-documentável.
Parece uma ótima idéia para mim.
fonte
O que xmlIns especifica?
Como nós de atributo denominados "xmlns" ou "xmlns: xxx", exatamente como os espaços para nome são gravados no documento XML de origem. Este é o modelo apresentado pelo DOM.
Qual URI contém?
Um espaço para nome XML é declarado usando o pseudo-atributo XML reservado xmlns ou xmlns: prefixo, cujo valor deve ser um nome de espaço para nome válido.
Por exemplo, a seguinte declaração mapeia o prefixo "xhtml:" para o espaço de nome XHTML:
Como eu descobri depois de ler o artigo na Wikipedia. O URI contém as especificações formatadas em XML do espaço para nome e fornece um método para evitar conflitos de nome do elemento.
Pode ser que você saiba que o documento xml usa
XML Schema
a estrutura do elemento / tabela / classe dos elementos do documento XML.o que http://www.w3schools.com/furniture deve conter?
A resposta está na sua página onde você aprendeu sobre o Namespace XML. Verifique a
Namespaces in Real Use
seção deste artigo do W3Schools .Verifique o seguinte link do stackoverflow, que mostra o que esse URI carrega:
Como criar e usar o espaço para nome XML?
fonte
URI = nome ou identificador globalmente exclusivo do espaço para nome
Considere construir um banco de dados ou documento sobre o gerenciamento financeiro da logística da indústria de petróleo. Isso precisaria usar vocabulários específicos (isto é, termos controlados) para cada um dos assuntos: banco de dados, documento, gerenciamento, finanças, logística, petróleo e indústria.
Se nenhum dos termos se sobrepuser nesses sete vocabulários, será necessário apenas um URI. Mas, para cada termo que se sobrepõe a outros termos nesses vocabulários, você precisa de um vocabulário específico de um assunto adicional identificado em um URI ou IRI. Uma maneira de contornar isso é criar uma taxonomia mesclada, com termos gerais mais amplos e termos específicos de assuntos mais estreitos.
Isso poderia ser expandido para um dicionário de sinônimos que também mostra os sinônimos de jargão de um termo e permite a especificação de um termo preferido entre esses sinônimos de jargão.
fonte