it-swarm-eu.dev

Warum benötigen wir URIs für XML-Namespaces?

Ich versuche herauszufinden, warum wir URIs für XML-Namespaces benötigen, und ich kann keinen Zweck dafür finden. Kann mich jemand ein wenig aufhellen, um ihre Verwendung an einem konkreten Beispiel zu zeigen?

EDIT :

Ok also zum Beispiel: Ich habe das von 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>

Also, was soll http://www.w3schools.com/furniture halt ?

23
Patryk

A Namespace ist eine Art zu sagen, dass "Diese Art von Foo" sich von "Diese Art von Foo" unterscheidet, obwohl sie gleich geschrieben sind. Oder, wenn Sie " MEINE Art von Foo" bevorzugen, unterscheidet sich von "Alle anderen Art von Foo".

Die technische Art, dies zu sagen, ist "Die URI von my Namespace für Foo" unterscheidet sich von jeder anderen URI für ihren Namespace für Foo. Mit anderen Worten, URIs sind nur Zeichenfolgen, mit denen Sie dies sagen können.

Der Trick besteht dann darin, zu sagen: "Hey, URLs sind gültige URIs" und dann einen URI zu verwenden, der einer von Ihnen kontrollierten URL entspricht. Wenn alle das tun, vermeiden Sie versehentliche Namespace-Kollisionen. Sie hätten genauso gut den Namespace "A" und den Namespace "B" sagen können, aber Sie riskieren, dass jemand anderes denselben Namespace verwendet, und dann unterscheidet sich Ihre Art von Foo nicht mehr von ihrem Foo, was genau das ist, was Sie vermeiden möchten .

Sie können dann den als URIs verwendeten URLs zusätzliche Konventionen hinzufügen, z. B. dass die URL einer Seite entsprechen muss, die Dokumentation oder XSDs oder ähnliches enthält. Dies ist jedoch nicht erforderlich. Es ist einfach bequem.

20
user1249

Im Allgemeinen würde jede eindeutige Kennung für einen Namespace dienen. Da es jedoch global einzigartig sein soll, müsste der Standard entweder eine Schiedsbehörde beauftragen oder eine andere Ressource verwenden, die gleichzeitig global einzigartig, aber leicht zu beschaffen und zu beweisen ist, dass es Ihre ist.

Oh schau! Wenn Sie eine Domain haben, gehört diese offensichtlich nur Ihnen und es ist einfach zu beweisen, dass sie Ihnen gehört!

Zum Beispiel wollten sie die Situation vermeiden, in der zwei verschiedene Buchhandlungen "Bücher" als Namespace mit völlig unterschiedlichen internen Definitionen verwenden. Während sie es intern verwenden, gibt es kein Problem; Aber sobald einer von ihnen seine Spezifikation veröffentlichen will, bricht die Hölle los.

Wenn Sie stattdessen dazu ermutigt werden, Ihre Domain zu verwenden, kann jeder (also jeder, der eine Domain besitzt) seinen eigenen privaten Namespace mit der Gewissheit definieren, dass niemand anderes genau dieselbe Kennung verwendet.

Als Bonus können Sie die Definition Ihres Namespace optional im URI speichern und so selbstdokumentieren.

Scheint mir eine großartige Idee zu sein.

16
Javier

DOM Level 2 wurde Ende 2000 veröffentlicht. Es führte die Funktion "getElementById" sowie ein Ereignismodell und Unterstützung für XML-Namespaces und CSS ein.

Welche xmlIns gibt an?
Als Attributknoten mit den Namen "xmlns" oder "xmlns: xxx" genau so, wie die Namespaces im XML-Quelldokument geschrieben sind. Dies ist das von DOM vorgestellte Modell.

Welche URI enthält?
Ein XML-Namespace wird mit dem reservierten XML-Pseudoattribut xmlns oder xmlns: prefix deklariert, dessen Wert ein gültiger Namespace-Name sein muss.

In der folgenden Deklaration wird beispielsweise das Präfix "xhtml:" dem XHTML-Namespace zugeordnet:

xmlns: xhtml = "http://www.w3.org/1999/xhtml"

WIE ich nach dem Lesen des Artikels auf Wikipedia entdeckt habe. URI enthält die XML-formatierten Spezifikationen des Namespace. Sie bieten eine Methode zur Vermeidung von Elementnamenkonflikten.

Möglicherweise wissen Sie, dass das XML-Dokument XML Schema Für die Element-/Tabellen-/Klassenstruktur von Elementen des XML-Dokuments verwendet.

Was soll http://www.w3schools.com/furniture halten?

Die Antwort finden Sie auf Ihrer Seite, auf der Sie mehr über den XML-Namespace erfahren haben. Überprüfen Sie den Abschnitt Namespaces in Real Use In dieser W3Schools Artikel .

Überprüfen Sie den folgenden Link des Stapelüberlaufs, der zeigt, was dieser URI enthält:

Wie erstelle und verwende ich einen XML-Namespace?

1
Niranjan Singh