はい、こんばんは。
振り返ってみたら一年ちょっとまともな記事を書いていなかったので久しぶりに書くことにしました^^;
今回はRelaxNGです。
XMLスキーマ定義言語でW3C制定のDTDじゃないやつです。
日本ではDTDの方が有名ですが、海外のXMLスキーマ定義を見てみるとRelaxNGな事が多いように思います。
なんでもDTDと比べてシンプルなんだそうな。
で、そんなRelaxNGですが実際に勉強して使おうと思うと出てくる情報が古い&英語ばかりでちょっととっつきづらい印象があります。
公式サイトに掲載されている関連ツールがWindowsXPまでしか対応してなかったりリンク切れしてたりしますし。
ということで、RelaxNGを扱っていてよく出てくるタグの説明をまとめておきます。
それではいってみましょう。
elementタグ : XMLを構成する要素を定義します
attributeタグ: 要素の属性を定義します
nameタグ: 要素・属性等の名前を定義します
interleaveタグ: このタグ内の要素は順不同で記述できます。このタグを指定しない場合、要素は定義と同じ順序で並べる必要があります。choiceタグ: このタグ内に定義された複数の値の中から一つを指定できます。
valueタグ: choiceタグなどで固定値のデータを定義します。
optionalタグ: このタグ内の要素は必須ではありません。
zeroOrMoreタグ: このタグ内の要素は0件以上記載できます。
oneOrMoreタグ: このタグ内の要素は1件以上記載できます。
textタグ: 文字列データです。
dataタグ: ユーザーがXMLに記載できる任意の型のデータです。データ型はtypeタグで指定します。
typeタグ: データ型を指定します。データ型の詳細はdatatypeLibraryタグで指定します。
datatypeLibraryタグ: データ型の定義情報をURLで指定します。
defineタグ: 任意のRelsaxNGブロックを定義します。refタグなどで参照できます。
refタグ: 指定したdefineブロックなどを記述箇所に展開します。
・おまけ
linuxのコマンドラインでRelaxNGファイルを使用したXMLファイルの検証を行う際は次のコマンドが便利です。通常、RelaxNGファイルの拡張子は「rng」です。
$ xmllint --relaxng --noout <RelaxNGファイルパス> <XMLファイルパス>
詳しくはここを参照してください。
とりあえず思いつくものを書き出してみました。
わかりづらいですよね^^;
読みづらい!とか情報が足りない!とか苦情や意見・4要望がありましたらコメント等でお知らせください。
