2010-11-19 8 views
1

私は広く使われることを望むXMLに基づいて(ドメイン固有の)言語を作成しました。それを実装するために私はxsdファイルを使用しています。新しいXML言語の名前空間名の選択方法は?

は、今まで私は、XML言語の名前空間として、このようなURLを使用しました:今

http://languagemainsite.org/lang/1.0/ 

、私はそれが長期的に、名前空間を選択するのが最善の方法だか分からない。

  1. おそらくネームスペースのバージョン番号が過剰ですか?すでに "バージョン"属性にも定義されていますが、バージョンごとに異なるURLを使用するといいですね。
  2. これにはURLを使用するのが常に良いですか?
  3. ????

xmlベースの言語の名前空間の名前についてのアドバイスはありますか?

答えて

2

、名前空間は異なっている必要があります。彼らはラング-1.1-ない場合であればfooはちょうどLang-1.0 fooであるかもしれません。それらは同じ名前空間にある必要があります。

XHTML 1.0、XHTMの例では、<p> L 1.1およびXHTML5。 XHTMLのすべてのバージョンでは意味的に同じ(段落)なので、異なる言語バージョンで異なる機能を持っていても、すべてがhttp://www.w3.org/1999/xhtml名前空間に存在することができます。

名前空間にバージョン番号を含めると、後方互換性が非常に難しくなります。 2つのバージョンの言語をサポートするアプリケーションでは、同じ名前の要素に対処するために名前空間を切り替える必要があり、バージョン1対応アプリケーションではバージョン2のドキュメントを実際に読み取ることはできません。

したがって、故意に下位互換性を完全に削除する新しい「メジャーバージョン」の更新には、バージョン化された名前空間のみを使用してください。それ以外の場合は、ルート要素の属性versionが一般的にはより良いアイデアです。

はい、他人の名前空間との衝突を避けるために、URLを使用する必要があります。あなたが使っているURLに説明的な情報を入れるのは礼儀正しいことです。

+0

たとえば、http://languagemainsite.org/lang/1.x/のようなものを使用し、同じ言語バージョンのすべての互換性のある進化のために1つの名前空間を使用することをお勧めします。それから、インターフェイスを壊す必要がある場合は、http://languagemainsite.org/lang/2.x/のような新しい名前空間から始めますか? – Klaim

+0

ありがとう私はlanguagemainsite.org/lang/1.xへのアプローチを行っています – Klaim

+0

うん、それは事のようなものです。一般に '.../lang1'対' '.../lang2'です。 – bobince

0

私は妥当な名前空間URIのように思えます。

バージョン番号については、それは良い考えだと思う。 xml宣言のバージョン番号は使用できません(1.0または1.1でもかまいません)。xml解析自体がどのように動作するのか、含まれているデータや言語のバージョンではないのかが決まります。これはよく使われる方法です。名前空間http://languagemainsite.org/lang/1.0/foo要素が意味的に名前空間http://languagemainsite.org/lang/1.1/foo要素に異なる概念である場合はそこにそれを含めないで。