Skip to content

Instantly share code, notes, and snippets.

@osvalr
Forked from iiska/validator.py
Created February 11, 2017 21:00
Show Gist options
  • Save osvalr/f89a29aa5d4b79704a798f98745401cb to your computer and use it in GitHub Desktop.
Save osvalr/f89a29aa5d4b79704a798f98745401cb to your computer and use it in GitHub Desktop.
Simple XML Schema validator in Python using lxml library
#! /usr/bin/python
# -*- coding: utf-8 -*-
#
# Simple XML validator done while learning the use of lxml library.
# -- Juhamatti Niemelä <iiska AT iki DOT fi>
import lxml
from lxml import etree
if __name__ == "__main__":
import sys, os
if len(sys.argv) != 3:
print "Usage: %s document.xml schema.xsd" % (sys.argv[0])
exit(0)
with open(sys.argv[2]) as f:
doc = etree.parse(f)
print "Validating schema ... "
try:
schema = etree.XMLSchema(doc)
except lxml.etree.XMLSchemaParseError as e:
print e
exit(1)
print "Schema OK"
with open(sys.argv[1]) as f:
doc = etree.parse(f)
print "Validating document ..."
try:
schema.assertValid(doc)
except lxml.etree.DocumentInvalid as e:
print e
exit(1)
print "Document OK"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment