#!/usr/bin/env python
# -*- coding: utf8 -*-

import sys
from lxml import etree

def main():
    if len(sys.argv) != 3:
        print >>sys.stderr, 'Usage: %s XML-file XSD-file' % sys.argv[0]
        sys.exit(3)

    schema_root = etree.parse(sys.argv[2])
    try:
        schema = etree.XMLSchema(schema_root)
    except etree.XMLSchemaParseError, e:
        print 'Parsing XML Schema failed'
        print e
        sys.exit(2)

    parser = etree.XMLParser(schema=schema)
    try:
        etree.parse(sys.argv[1], parser=parser)
    except etree.XMLSyntaxError, e:
        print 'Validation failed'
        print e
        sys.exit(1)
    else:
        #print 'Validation succeeded'
        sys.exit(0)

if __name__ == '__main__':
    main()

