2016-07-08 3 views
2

名前空間URIはHTTP経由で利用できる実際のリソースではありませんが、XML名前空間の目的は何ですか? XMLパーサはどのようにそれに関連していますか?彼らの認識(名前空間)はどこに存在しますか?XML名前空間のHTTPアドレスはなぜですか?

答えて

1

XML名前空間の目的はW3C Recommendation: Namespaces in XML 1.0 (Third Edition)Section 1, Motivation and Summaryに明確に説明されています 単一のXML文書は、要素と属性が含まれていてもよい拡張マークアップ言語(XML)の

我々が想像するアプリケーション(ここに を言及複数のソフトウェアモジュールで定義され、複数のソフトウェアモジュールによって使用される「マークアップ語彙」として定義されています。そのためのモチベーションはモジュール性です。 マークアップ語がよく理解されていて、 が有用なソフトウェアであれば、このマークアップを再作成するのではなく、再利用する方がよいでしょう。

複数のマークアップボキャブラリを含むこのようなドキュメントでは、認識と衝突の問題 が発生します。ソフトウェアモジュールは が の処理のために設計された要素と属性を認識できる必要があります。

これらの考慮事項では、別の マークアップ語彙の名前間の衝突を避けるために、文書構造に という名前を設定する必要があります。この仕様では、XML 名前空間のメカニズムについて説明しています。これは、要素と属性にexpanded namesを割り当てることで実現します。

XML名前空間は、URIの字句形式がかかりますが、あなたはそれが検索可能である必要はないことが正しいです。 section 3, Declaring Namespacesにあたり: - 名前空間を識別する 名前空間名 - または空の文字列

属性の正規化された値は、URI参照のいずれかでなければなりません。 名前空間名は、その目的を果たすために、 の一意性と永続性の特性を持つべきです(SHOULD)。 は、スキーマの検索に直接使用できることを目標としていません( が存在する場合)。

URLを使用することの主な利点は、ドメイン名の所有者は、名前空間を定義する際に、ドメインの独特の使用を管理する権限をしていると考えることができるということです。

パーサーは、名前空間のURIをコンポーネント(要素および属性)名の字句部分と見なします。また、パーサーはxsi:schemaLocationの名前空間を使用して、ユーザーのヒントごとにXMLファイルに関連付けるXSDの場所を特定するのに役立ちます。

0

あなたのタイトルでの質問への答えは:ほとんどのソフトウェアは、任意の文字列を許可するよう仕様を解釈しても

  • 名前空間名は強く、URIになることをお勧めします。

  • URIはHTTP「アドレス」でもかまいませんが、必ずしもそうである必要はありません。

  • HTTPアドレスを名前空間URIとして使用することを推奨している人の中には、そのアドレスに名前空間に関する人間が判読可能な情報やマシンが読める情報を置くことができるので、良い考えだと思います。 (例えば、W3CはW3C定義の名前空間でこれを行います)

  • しかし、HTTPアドレスを名前空間URIとして使用すると、かなりの混乱が生じてしまいます。さらに多くのものを使う方が良いと思う人もいます識別子のように、リソースのアドレスに似ていません。

関連する問題