[HOME]: [Mac OS X]: [MacPython]: [Emacs]: [生存報告記]: [MacEmacs JP Project]: [NTEmacs JP Project]:

概要

RELAX NG 日本語ポータル

RELAX NG Specification(英語)

RELAX NG 入門 (原文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を記述する

relaxng.dtd

からDTDを取得します。

.emacs

;; sgml-custom-dtdに以下追加
("RelaxNG"
    "<!DOCTYPE rng PUBLIC
    \"-//RelaxNG//DTD RelaxNG 1.0//EN\"
    \"file:////Users/sakito/etc/psgml/relaxng.dtd\">\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

http://davidashen.net/rnv.html

Jing

Jing

validator、妥当性検査ツールです。XMLの正確性をRelaxNGにしたがいチェックします。

XML文書を商用や通信、暗号化といった多様な用途に利用するには妥当性の検査は必須の物です。

妥当性が検査できなければその後の処理が不可能な場合もありえます。

このJingはRelaxNGの仕様策定の中心人物が作成しており、また完全に仕様に準拠しています。

ライセンスは旧BSDライセンス近似なため、商用利用の場合もあまり問題にならないでしょう。 RELAX NG ちなみにXMLSchemaにはまともなvalidatorが存在しない(おそらく実装不可能)という状態です。

java -jar jing.jar xxxx.rng hoge.xml

DTDinst

DTDinst

DTDからDTDinst Fomartへ変換するツール。

java -jar dtdinst.jar DTD

RELAX NGにはスタイルシート利用して変換可能。

Trang

Trang

RelaxNGからDTD、XMLSchema等へ変換するツール。

XMLSchema実装の中でもっとも仕様に忠実なXMLSchemaを吐きます。

java -jar trang.jar xxxx.rnc xxxx.xsd

Sun RELAX NG Converter

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

参考サイト

RELAX NG book

RELAX NG book CVS Repository

W3Cスキーマに対抗するXMLの新仕様「RELAX NG」

RELAX NG 私的解説メモ


CategoryXml