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


23

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保持する必要がありますか?



7
必須w3foolsのコメント。
ヤニス

XML名前空間はURI形式である必要がありますか?または、「My.Namespace.Foo」などの文字列を使用できますか?
マス

回答:


20

名前空間は、「Fooのこの種のは、」彼らは同じに綴られているにもかかわらず、「フーのそのようなもの」と異なっているというのが方法です。あるいは、「MY kind of Foo」が「Everybody else kind of Foo」と異なる場合。

これは「のURIであるというのが技術的な方法はFooの名前空間は、」Fooのための彼らの名前空間のために皆のよそURIは異なっています。言い換えると、URIは、あなたがそう言うことができる単なる文字列です。

そのコツは、「ねえ、URLは有効なURIだ」と言ってから、あなたの管理下にあるURLに対応するURIを使用することです。誰もがそうすれば、偶発的な名前空間の衝突を避けることができます。名前空間「A」と名前空間「B」を言うこともできますが、誰かが同じ名前空間を使用するリスクがあり、あなたの種類のFooはもはやあなたのFooと変わらないので、避けたいものです。

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


わかりましたが、名前空間Aと名前空間w3.org/1999/xhtmlの違いは何ですか?ユーザーは同じ名前空間を使用したことを知らなくても、どちらも使用できます。
パトリク

1
@Patryk、だからあなたは自分がコントロールできるURLを使う。xhtml名前空間URLは、XHTML仕様を定義したW3Cの制御下にあります。

2
@ Patryk、URLを選択するのは名前空間を定義するものであることにも注意してください。その後、他の誰もがそれらを使用できます

1
名前空間aは完全に有効でしょうか?愚かですが、有効ですか?または、URIである必要がありますか?
ルディ14

5
何年も前にこの規約を使用した最初の数人が、それらのURLに自分のスキーマの簡潔なドキュメントをきちんと置いていたら、それは素晴らしいことではなかったでしょうか?MicrosoftのOpenXML名前空間schemas.openxmlformats.org/drawingml/2006/chartは何も指し示していません。
プロトタイプ

16

一般的に、一意の識別子は名前空間に使用されます。しかし、それはグローバルに一意であると想定されているため、標準は何らかの調停機関に委任するか、同時にグローバルに一意であるが手に入れて自分のものであることを証明する別のリソースを使用する必要があります。

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

たとえば、2つの異なる書店が名前空間として「書籍」を使用し始め、内部定義がまったく異なる状況を回避したかったのです。彼らはそれを内部で使用していますが、問題はありません。しかし、それらの1つが仕様を公開したいとすぐに、すべての地獄が崩れます。

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

ボーナスとして、オプションで名前空間の定義をURIに保存して、自己文書化することができます。

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


答えてくれてありがとう。これを理解するにはもっと具体的なものが必要だ。基礎となる模範的なコードを追加しました。ご覧ください。
はPatryk

1
@patryk-何も、それはアドレスではありません-それはあなたがxmlファイルを持っている可能性のある他の誰もいないと確信している唯一のユニークなトークンです。それは言っているすべては、名前<表>などが上にwww.w3.org名を持つ任意のxmlファイル内の任意の異なる意味ウィットに使用されないことである
マーティンベケット

わかりましたが、ウィキペディアがユーザーが名前空間としてインスタンスw3.org/1999/xhtmlを使用できることを言った場合、多くの人が同じ名前空間を持つことになります。私は正しいですか?
パトリク

@Patryk、同じ用途に使用する場合のみ。新しい名前空間を定義する場合は、独自のドメインを使用することをお勧めします
ハビエル

@Javier「同じ使い方」とはどういう意味ですか?
パトリク

1

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

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

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

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

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

Wikipedia の記事を読んだ後に発見したように。URIには、名前空間のXML形式の仕様が含まれ、要素名の競合を回避する方法を提供します。

XMLドキュメントがXMLドキュメントXML Schemaの要素のelement / table / class構​​造に使用することをご存知かもしれません。

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

答えは、XML名前空間について学習したページにあります。Namespaces in Real UseこのW3Schools 記事のセクションを確認してください。

次のstackoverflowのリンクをチェックしてください。このURIは、このURIが何を運ぶかを示しています

XML名前空間を作成して使用する方法


-1

URI =名前空間のグローバルに一意の名前または識別子

石油産業のロジスティクスの財務管理に関するデータベースまたは文書の構築を検討してください。データベース、ドキュメント、管理、財務、ロジスティクス、石油、および産業の各主題に対して特定の語彙(つまり、統制語)を使用する必要があります。

これらの7つの語彙で重複する用語がない場合、必要なURIは1つだけです。ただし、これらの語彙で他の用語と重複する各用語については、URIまたはIRIで識別される主題固有の追加の語彙が必要になります。これを回避する方法の1つは、より広い一般用語とより狭い主題固有の用語で、マージされた分類法を作成することです。

これは、用語の専門用語と同義語を示すシソーラスに展開でき、それらの専門用語と同義語の中で優先用語を指定できます。


2
この投稿は読みにくい(テキストの壁)。それをより良い形に編集してもいいですか?
-gnat
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.