http://relaxng.org/ns/compatibility/datatypes/1.0

RELAX NG (XML)

[5] RELAX NG は、 XML のスキーマ言語の1つです。 00年代 (平成時代中期) にはしばしば XML と共に使われていました。

[11] XML の衰退により、目にすることもなくなりました。

仕様書

構文

[10] 本来の XML 構文と、式言語のような構文を持つ RELAX NG Compact Syntax がありました。

[22] XML DTD (や SGML DTD) の独自構文を嫌った人達が XML Schema や RELAX のような XML ベースのスキーマ言語を作り始めた、ということだった気がしますが、 実際使ってみて面倒すぎることに気づいたのでしょう、 XML に基づかない構文が後から出てきました。


[29] 簡潔構文のこの読みにくさというか頭に入って来にくさって何なんでしょうね?

[30] DTD とそんなに変わらないはずなのに DTD の可読性に対して RNG はなんで読めないのか。構文が簡単すぎるのかなあ。

[31] RNG の方が書きやすいってのはわかるんだけど。プログラミング言語ぽい構文で技術者が嬉しそうなのもわかる。

[32] でもすっと頭に入ってこなくて謎プログラムの羅列にしか見えないんだよなあ。

[33] インデントとかの可読性のための慣習が形成されなかったせい、ということかもなあ? DTD もインデントなしでベタ書きされると読めなそう。

DTD 互換性

[19] 「DTD Compatibility」は、 XML DTD にあって RELAX NG に存在しない機能を補うもので、これによって XML DTD から RELAX NG への移行を促進するものであるとされていました。

[20] しかし RELAX NG の支持者は元々 XML Schema の PSVI を批判し、 XML DTD や XML Schema のような妥当性検証と XML情報集合の変更操作が一体となったスキーマ言語を批判していたはずです。 追加機能としてとはいえそれを再導入したことに、 果たしてどれだけの意味があったのか。 XML DTD との互換性のためと目的を設定したため、 XML情報集合の変更の記述能力は XML Schema (や XSLT その他の手段) に比べると著しく劣りますし、 XML情報集合の変更操作の適用の有無とタイミングを自由に選べることが特徴とされていますが、 裏を返せば相互運用性が保証されないということです。 そうであるなら、 操作のタイミングと結果が明確である XML DTD を使えば十分で、 RELAX NG に移行するべき動機などありません。

[21] 本機能が結局どの程度使われたのかは不明ではありますが、 RELAX NG 支持者には不要、 XML Schema 支持者には不十分、 XML DTD で満足していた人には魅力なし、 そもそもスキーマなんて使っていない大半の XML 利用者には無関係、 と利用者像がまったく見えてきませんでした。

関連

[28] RDDL

歴史

[13] RELAX と TREX が統合される形で開発されました。

[14] OASIS で標準化されました。

[15] ISO/IEC に提出されて国際標準 ISO/IEC 19757-2 となりました。 DSDL の1プロジェクトと扱われていました。


[4] XML のスキーマ言語には他に XML DTD や XML Schema があります。 XML Schema と RELAX NG の開発時にはどちらが優れているかなど XML コミュニティーでは大きな議論になりました。

[6] Web では00年代初期に W3C 近辺で XHTML などの語彙の制約を RELAX NG で記述することが流行しました。しかしその後の仕様をより厳密に記述する流れの中で RELAX NG を含むスキーマ言語では不十分であることが明確になり、 仕様の記述には使われなくなっています。

[9] 旧 HTML WG の XHTML m12n や、 SVG Tiny 1.2 などが RELAX NG を使っていました。

[16] XML コミュニティーでは XML Schema と RELAX NG の両方が使われ続けました。マーク付け言語を定義する際には、 一方が用いられることもあれば、両方が用いられることもありました。 (両者のスキーマが表現できる内容は等しくないので、 厳密には両方を用いると解釈の問題が発生しますが...)

[17] しかし結局 XML の衰退により、両者のどちらもが「スキーマ戦争」 に勝利することなく世の中から忘れ去られることになりました。

[7] RNG は、 RELAX NG の略です。

[8] RELAX NG は ISO/IEC 標準だから XML Schema より偉いのだー!! とか言ってるアフォはとっとと氏んで欲しいよね。

[12] RELAX NG home page () http://www.relaxng.org/

[18] RELAX NG DTD Compatibility () https://www.oasis-open.org/committees/relax-ng/compatibility-20011203.html

[26] RELAX NG 陣営が勝利宣言 >>23, >>24 して界隈で炎上 >>25。

[27] この事件が。 この人達が貴族だボヘミアンだとわけのわからない論争を続けている裏で、 一般人はじわじわ XML 離れをはじめていて、 JSON の存在感が高まってきていた頃だな。