Build Status Code Climate


RSpec matcher for ensuring XML validates against a given XSD


Add this line to your application's Gemfile:

group :test do
  gem 'rspec-xsd'

And then execute:

$ bundle

Or install it yourself with:

$ gem install rspec-xsd


Require the gem in your spec_helper

require 'rspec/xsd'

Now include the matcher in your specs

RSpec.configure do |config|
  config.include RSpec::XSD

You can validate either an XML string or a Nokogiri::XML::Document.

You can check that XML validates against a given schema by passing in a Nokogiri::XML::Schema object

expect(xml).to pass_validation(xsd)

or by passing in the path to your XSD

expect(xml).to pass_validation('/path/to/schema.xsd')

If you wish to give your XSD a more descriptive name you can pass this in as an optional argument

expect(xml).to pass_validation('/path/to/schema.xsd', 'My Complex XSD')

You can pass either a string or file as the XML document


  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request