Hi
I am using libxml2 to validate an XML file using a Schema. Like this:
schema = XML::Schema.from_string(schema_string)
parser = XML::Parser.new
parser.string = xml
doc = parser.parse
result = doc.validate_schema(schema)
This works and if the XML doc is invalid the error is written to
standard output. Is there a way to capture this output? I need to
relay this information to the client application. Grateful for any
assistance.
Kindest regards
Erik
I found the solution in the libxml-ruby test cases. Viva TDD! If
anyone else is interested this is a pattern for testing it:
schema = XML::Schema.from_string(schema_string)
parser = XML::Parser.new
parser.string = xml
doc = parser.parse
messages = Hash.new
assert(!doc.validate_schema(schema) do |message, error|
messages[message] = error
end)
expected = {"Element 'customer_ip': This element is not expected.
Expected is ( password ).\n" => true}
assert_equal expected, messages
Hope it helps.
Regards
Erik