Hi.
I am working on a webservice producing xml content, In my rails
functional test I would like to assert that this generated xml
(@reponse.body) conforms to a specific XSD.
What is the best approach to do this?
Jarl
Hi.
I am working on a webservice producing xml content, In my rails
functional test I would like to assert that this generated xml
(@reponse.body) conforms to a specific XSD.
What is the best approach to do this?
Jarl
On 19 Nov 2008, at 13:07, Jarl F. wrote:
Hi.
I am working on a webservice producing xml content, In my rails
functional test I would like to assert that this generated xml
(@reponse.body) conforms to a specific XSD.What is the best approach to do this?
Dunno about best approach but I recently did something along those
lines (in this particular case I was generating xml to send to a
webservice rather than your way round, but I don’t think that’s
relevant)
in the end I just popened xmllint and piped my xml in. The ruby libxml
bindings might allow you do stuff like that, I didn’t look very
closely at that.
Fred
Thanks for the reply.
Frederick C. [email protected] writes:
Dunno about best approach but I recently did something along those
lines (in this particular case I was generating xml to send to a
webservice rather than your way round, but I don’t think that’s
relevant)
in the end I just popened xmllint and piped my xml in.
Cool, but xmllint only validates against a DTD, right? I am interested
in (a more strict) validation against a XSD.
Jarl
On 20 Nov 2008, at 10:56, Jarl F. wrote:
I am working on a webservice producing xml content, In my rails
Cool, but xmllint only validates against a DTD, right? I am interested
in (a more strict) validation against a XSD.
Does both as far as I know ( I only had an xsd anyway)
Fred
On 21 Nov 2008, at 11:13, Jarl F. wrote:
stands for W3C XML schema apparently
Fred
Frederick C. [email protected] writes:
Does both as far as I know ( I only had an xsd anyway)
Thanks. the xmllint help says
–schema schema : do validation against the WXS schema
I have never seen “WXS” as an abreviation for XML Schema Definition
files.
I now made a small rails test helper like this:
require ‘open3’
class ActionController::TestCase
def assert_xsd_validity(xsd, xml = @response.body )
assert test(?e, xsd), “#{xsd} does not exist”
xml_temp_file = Tempfile.new(“xsd_helper_tempfile”)
xml_temp_file.write xml
xml_temp_file.close
command_line = “/usr/bin/env xmllint -noout --schema #{xsd}
#{xml_temp_file.path}”
err = “”
Open3.popen3(command_line){|stdin, stdout, stderr|
stdin.close
out = stdout.read
err = stderr.read
}
assert_equal “#{xml_temp_file.path} validates\n”, err
end
end
Jarl
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.
Sponsor our Newsletter | Privacy Policy | Terms of Service | Remote Ruby Jobs