web-dev-qa-db-ja.com

XML名前空間にURIが必要なのはなぜですか?

XML名前空間にURIが必要な理由を理解しようとしていますが、その目的がわかりません。誰かが具体的な例でその使用法を示す少し私を明るくすることはできますか?

編集:

わかりました、例えば:私はこれを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>

だから何をすべきかhttp://www.w3schools.com/furniture保留?

23
Patryk

A namespaceは、「This kind of Foo」は「That kind of Foo」と同じですが、綴りは同じですが、または、「[〜#〜] my [〜#〜] Fooの種類」が「Everybody elses Fooの種類」とは異なる場合。

これの技術的な言い方は「FooのmyネームスペースのURI」は、Fooのネームスペースの他の誰のURIとも異なります。言い換えれば、URIはあなたがそう言うことができる単なる文字列です。

トリックは、「ねえ、URLは有効なURIです」と言ってから、制御下のURLに対応するURIを使用します。誰もがそうすれば、偶然の名前空間の衝突を回避できます。名前空間「A」と名前空間「B」を使用することもできますが、他の誰かが同じ名前空間を使用するリスクがあり、Fooの種類はFooと同じで、これは避けたいものです。 。

次に、URIとして使用されるURLに追加の規則を追加できます。たとえば、URLは、ドキュメントまたはXSDなどを含むページに対応する必要がありますが、これは必須ではありません。ちょうど便利です。

20
user1249

一般的に、一意の識別子は名前空間として機能します。しかし、それはglobally uniqueであると想定されているため、標準は、いくつかの仲裁機関に権限を与えるか、同時にグローバルに一意であるが保持しやすく、それが自分のものであることを証明する別のリソースを使用する必要があります。

ああ、見て!ドメインを持っている場合、それは明らかにあなたのものだけであり、それがあなたのものであることを証明するのは簡単です!

たとえば、2つの異なる書店が完全に異なる内部定義で名前空間として「books」を使用し始める状況を避けたかったのです。内部的に使用していますが、問題はありません。しかし、そのうちの1人が仕様を公開したいと考えるとすぐに、すべてが地味に解き放たれます。

代わりに、ドメインの使用を勧められた場合、誰でも(ドメインを所有している人なら誰でも)まったく同じ識別子を他の誰も使用しないという確信を持って、独自のプライベート名前空間を定義できます。

おまけとして、URIに名前空間の定義をオプションで格納して、それを自己文書化することができます。

私には素晴らしいアイデアのようです。

16
Javier

DOMレベル2は2000年後半に公開されました。これは、「getElementById」関数、イベントモデル、およびXML名前空間とCSSのサポートを導入しました。

xmlInsは何を指定していますか?
「xmlns」または「xmlns:xxx」という名前の属性ノードとして、ネームスペースがソースXMLドキュメントに記述されているとおりに。これは、DOMによって提示されるモデルです。

URIには何が含まれていますか?
XML名前空間は、予約済みのXML疑似属性xmlnsまたはxmlns:prefixを使用して宣言されます。その値は有効な名前空間名である必要があります。

たとえば、次の宣言は "xhtml:"プレフィックスをXHTML名前空間にマップします。

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

ウィキペディアの article を読んだ後、私は発見しました。 URIには、名前空間のXML形式の仕様が含まれており、要素名の競合を回避する方法を提供します。

XmlドキュメントがXML Schemaは、XMLドキュメントの要素のelement/table/class構​​造です。

何をすべきか http://www.w3schools.com/furniture 保留?

答えは、XML名前空間について学習したページにあります。小切手 Namespaces in Real UseこのW3Schoolsのセクション article

このURIが運ぶことを示すいくつかのStackoverflowのリンクを確認してください:

XML名前空間の作成および使用方法

1
Niranjan Singh