概要
あるスキーマに従ったXMLファイルを作成する機会があったのですが、そのスキーマに合致したXMLファイルを作成できているか、確認する必要がありました。
上記の要件に対して、RELAX NGスキーマを操作するライブラリjingtrangを使ってみましたので、その備忘録です。
https://pypi.org/project/jingtrang/
Google Colabのノートブックも用意しました。
https://colab.research.google.com/github/nakamura196/ndl_ocr/blob/main/jingtrangを試す.ipynb
Validationを試す
OKな例
以下のように実行すると、何も出力されませんでした。
NGな例
一方、TEIのスキーマに合致しない以下のようなxmlファイルを用意しました。
その実行結果は以下です。a要素ではなく、TEIまたはteiCorpus要素が必要と出力されました。このように、スキーマに合致するか否かのチェックができました。
まとめ
無事に検証を行うことができました。
ただ今回のニーズはTEI/XMLの以外のスキーマに適合するかを検証する必要がありましたので、このrngファイルの作成方法や内容について、別の記事にまとめたいと思います。