X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Frspecs%2Frspec.py;h=c282d878114d7b6ff45d64ac4f37c7dd4baace77;hb=d9a040c673216ba9f600106d36b6326af7f35b0f;hp=aeb02819944403d19306d6704a382536003b5a23;hpb=c4e54513074736c39e0dc090a373d707a830dcb2;p=sfa.git diff --git a/sfa/rspecs/rspec.py b/sfa/rspecs/rspec.py index aeb02819..c282d878 100755 --- a/sfa/rspecs/rspec.py +++ b/sfa/rspecs/rspec.py @@ -60,6 +60,17 @@ class RSpec: if opt.text == value: elem.remove(opt) + + def validate(self, schema): + relaxng_doc = etree.parse(schema) + relaxng = etree.RelaxNG(relaxng_doc) + if not relaxng(self.xml): + error = relaxng.error_log.last_error + message = "%s (line %s)" % (error.message, error.line) + raise InvalidRSpec(message) + return True + + def __str__(self): return self.toxml()