LibXML から Nokogiri に切り替えています。私のコードには、xml ドキュメントが Dtd と一致するかどうかを確認するメソッドがあります。Dtd はデータベースから (文字列として) 読み取られます。
これはirbセッション内の例です
require 'xml'
doc = LibXML::XML::Document.string('<foo bar="baz" />') #=> <?xml version="1.0" encoding="UTF-8"?>
dtd = LibXML::XML::Dtd.new('<!ELEMENT foo EMPTY><!ATTLIST foo bar ID #REQUIRED>') #=> #<LibXML::XML::Dtd:0x000000026f53b8>
doc.validate dtd #=> true
私が理解#validate
しNokogiri::XML::Document
ているように、ドキュメント内のDTDをチェックすることしかできません。同じ結果をアーカイブするにはどうすればよいですか?