スキーマの特殊化とURN

DITA-OT DayでEliot KimberさんがRELAX NGでの特殊化の例を示しておられたので、自分も試してみようと思いました.
DTDでは本家のOASISならばtopicの公開識別子は

"-//OASIS//DTD DITA Topic//EN"

ですが、特殊化した場合はOASISのものとは異なったものであることを示すために

"-//ANTENNA HOUSE//DTD DITA Topic//EN"

などと区別した公開識別子をつけます.しかしXML SchemaRELAX NGでは公開識別子ではなくURNを使用するのが一般的なようです.例えば同じtopicでもXML Schemaでは

"urn:oasis:names:tc:dita:xsd:topic.xsd"

というURNが使用されています.ではここでも同じように

"urn:antennahouse:names:tc:dita:xsd:topic.xsd"

なんていうようにやっても良いのかと言いますと、実はこれだとURNの記法にはそぐわないようです.何故かと言いますと、URNの記法は

URN Syntax

で規定されていて、

 <URN> ::= "urn:" <NID> ":" <NSS>

というバッカス・ナウア記法で表されます.このNIDが曲者(?)で

Uniform Resource Names (URN) Namespace Definition Mechanisms

によれば、<NID>は正式な場合、IANA(Internet Assigned Number Authority)への登録が必要とされるようです.実際

Uniform Resource Names (URN) Namespaces

によれば"oasis"は

A URN Namespace for OASIS

でちゃんと登録されています.では普通の企業なんかが私的(実験的)にURNを使用する場合はどのようなことになるのでしょうか?上記のRFC3406では、"3.1  Experimental Namespaces"として、

X-<NID>

という記法が許されています.例えば私の会社だったら、

"urn:x-antennahouse:names:tc:dita:xsd:topic.xsd"

などとすれば良いように思えます.(大文字/小文字は識別されないようです)ところがまたややこしい話があり、このような"X-"という記法をdeprecatedとするRFCが存在します.

Deprecating the "X-" Prefix and Similar Constructs in Application Protocols

ここでdeprecatedとされているのはプロトコルであり、<NID>はネームスペースなのでちょっとそぐわないように思えるのですが...

この発端の議論は

Question about URN notation

にあります.KimberさんもURNが結構ややこしいことを知らなかったようです.その後、dita-usersにKimberさんが経緯をpostしているのですが、


どうも私には結論としてどうしたら良いのかがいまだによくわかりません.

という訳で特殊化したスキーマにどのようなURNをつけるかという事は結構大事なのでRELAX NGで試してみようという作業もすっかり止まってしまいました.どなたかこのあたりの事情に詳しい方がおられたら整理していただければ幸いです.