I\'m creating an XML document: I want to unit test at least to make sure it\'s well-formed. So far, I have only been able to approximate this , by using the \'hasElements\'
I use LibXML to perform xml validations, here is the basic usage:
require 'libxml'
# parse DTD
dtd = LibXML::XML::Dtd.new(<
EOF
# parse xml document to be validated
instance = LibXML::XML::Document.file('instance.xml')
# validate
instance.validate(dtd) # => true | false
from LibXML::DTD
And this is a link to the LibXML documentation main page.
If you don't want to use your custom validation rules you can still use a public DTD with something like:
require 'open-uri'
dtd = LibXML::XML::Dtd.new(open("http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd").read)
of course you can do much better :)