概要

以下の記事で、jingtrangおよびrngファイルを用いたxmlファイルの検証を行いました。

このjingtrangライブラリでは、xmlファイルからrngファイルを作成できるということで、試してみます。

Google Colabのノートブックも用意しました。

https://colab.research.google.com/github/nakamura196/ndl_ocr/blob/main/jingtrangを試す:作成編.ipynb

rngファイルを作成する

rngファイルを作成する元ファイルとして、以下を用意しました。

<root><title>aaa</title></root>

上記のファイルに対して、以下を実行します。

pytrangbase.xmlbase.rng

結果、以下のファイルが作成されました。

<<?g/xr<gmas/rlmt<samae/tmvarl<eamertee/lrar>ml<eetrsneedlm>>isnmaeeo=tetmnn"naet="ntn>"att1xmny>.meap0l=me"n"e=sr="e=o"Nn"otCchtiNot"tadt>lmipeen:""g/>/=/>"rUeTlFa-x8n"g?.>org/ns/structure/1.0"datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">

このrngファイルに対して、以下のようにテストしてみました。

OK:テキストが異なるもの

<root><title>bbb</title></root>
pyjingbase.rngex1.xml

NG:titleがない

<root><aaa>bbb</aaa></root>
p//yccjooinnnttgeennbtta//seeexx.22r..nxxgmmlle::x112::.12x28m::leerrrroorr::eelleemmeenntt""araoao"t"noitncaolmlpolweetde;anmyiwshseirneg;reexqpueicrteeddeelleemmeenntt""ttiittllee""

NG: 属性がある

<root><titlelang="en">aaa</title></root>
p/ycjoinntgenbta/seex.3r.nxgmle:x13:.2x4m:lerror:foundattribute"lang",butnoattributesallowedhere

まとめ

上記のような形で、あるxmlファイルから、rngファイルを作成することができました。rngファイルの記述方法についてはさらなる勉強が必要ですが、今回のような具体例から試行錯誤ができる仕組みは有効かと思います。

rngファイルを勉強する上で、参考になりましたら幸いです。