#pragma section-numbers off [[TableOfContents]] = 概要 = [http://relaxng.sourceforge.net/japan/ RELAX NG 日本語ポータル] [http://www.oasis-open.org/committees/relax-ng/spec-20011203.html RELAX NG Specification(英語)] [http://www.kohsuke.org/relaxng/tutorial.ja.html RELAX NG 入門] (原文[http://www.oasis-open.org/committees/relax-ng/tutorial-20011203.html RELAX NG Tutorial]) = URL = http://www.oasis-open.org/committees/relax-ng/ https://sourceforge.net/projects/relaxng = 定義 = http://thaiopensource.com/relaxng/relaxng.rng http://thaiopensource.com/relaxng/xhtml/ http://thaiopensource.com/relaxng/xslt.rng = Emacs = == nxml-mode == ["nxml-mode"]であればrngの記述が可能です。 == PSGMLでrngを記述する == [http://www.snee.com/xml/relaxng/ relaxng.dtd] からDTDを取得します。 .emacs {{{ ;; sgml-custom-dtdに以下追加 ("RelaxNG" "\n") ;; これも追加 (setq auto-mode-alist (append (list (cons "\\.rng\\'" 'xml-mode)) auto-mode-alist)) }}} CATALOG.txt {{{ PUBLIC "-//RelaxNG//DTD RelaxNG 1.0//EN" "relaxng.dtd" }}} ECAT.txt {{{ PUBLIC "-//RelaxNG//DTD RelaxNG 1.0//EN" cdtd/relaxng.dtd }}} = 利用方法 = = Tool = == Jing == [http://www.thaiopensource.com/relaxng/jing.html Jing] validator、妥当性検査ツールです。XMLの正確性をRelaxNGにしたがいチェックします。 XML文書を商用や通信、暗号化といった多様な用途に利用するには妥当性の検査は必須の物です。 妥当性が検査できなければその後の処理が不可能な場合もありえます。 このJingはRelaxNGの仕様策定の中心人物が作成しており、また完全に仕様に準拠しています。 ライセンスは旧BSDライセンス近似なため、商用利用の場合もあまり問題にならないでしょう。 ちなみに["XMLSchema"]にはまともなvalidatorが存在しない(おそらく実装不可能)という状態です。 {{{ java -jar jing.jar xxxx.rng hoge.xml }}} == DTDinst == [http://www.thaiopensource.com/relaxng/dtdinst/ DTDinst] DTDからRELAX NGへ変換するツール。 == Trang == [http://www.thaiopensource.com/relaxng/trang.html Trang] RelaxNGからDTD、["XMLSchema"]等へ変換するツール。 ["XMLSchema"]実装の中でもっとも仕様に忠実な["XMLSchema"]を吐きます。 {{{ java -jar trang.jar xxxx.rnc xxxx.xsd }}} == Sun RELAX NG Converter == [http://wwws.sun.com/software/xml/developers/relaxngconverter/ Sun RELAX NG Converter] DTD、["XMLSchema"]等からReluxNGに変換するJavaコマンドラインツール。変換は結構きれいです。 == CyberNeko DTD Converter == http://www.apache.org/~andyc/neko/doc/dtd/ 多用なSchema間で相互変換する。 ["XMLSchema"]、RelaxNGからDTDに変換も可能 http://crism.maden.org/consulting/pub/xsl/xsd2dtd.xsl http://wwbota.free.fr/XSLT_models/XMLPublish/samples/self/items/XMLSchema2DTD.xslt.html = 参考サイト = [http://www.atmarkit.co.jp/news/200111/09/xml.html W3Cスキーマに対抗するXMLの新仕様「RELAX NG」] [http://www3.sppd.ne.jp/lena/relax-ng/index.htm RELAX NG 私的解説メモ] ---- CategoryXml