Skip to content

Instantly share code, notes, and snippets.

@roshangautam
Forked from iiska/validator.py
Created March 10, 2018 18:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save roshangautam/635d9f668eb28e9372c4b9386840556a to your computer and use it in GitHub Desktop.
Save roshangautam/635d9f668eb28e9372c4b9386840556a 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