You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
2.3 KiB
77 lines
2.3 KiB
5 years ago
|
#!/usr/local/bin/python
|
||
|
|
||
|
import sys
|
||
|
import getopt
|
||
|
from ..genxmlif import GenXmlIfError
|
||
|
from xsvalErrorHandler import ErrorHandler, XsvalError
|
||
|
from ..minixsv import *
|
||
|
from pyxsval import parseAndValidate
|
||
|
|
||
|
|
||
|
##########################################
|
||
|
# minixsv Wrapper for calling minixsv from command line
|
||
|
|
||
|
validSyntaxText = '''\
|
||
|
minixsv XML Schema Validator
|
||
|
Syntax: minixsv [-h] [-?] [-p Parser] [-s XSD-Filename] XML-Filename
|
||
|
|
||
|
Options:
|
||
|
-h, -?: Display this help text
|
||
|
-p Parser: XML Parser to be used
|
||
|
(XMLIF_MINIDOM, XMLIF_ELEMENTTREE, XMLIF_4DOM
|
||
|
default: XMLIF_ELEMENTTREE)
|
||
|
-s XSD-FileName: specify the schema file for validation
|
||
|
(if not specified in XML-File)
|
||
|
'''
|
||
|
|
||
|
def checkShellInputParameter():
|
||
|
"""check shell input parameters."""
|
||
|
xmlInputFilename = None
|
||
|
xsdFilename = None
|
||
|
xmlParser = "XMLIF_ELEMENTTREE"
|
||
|
try:
|
||
|
(options, arguments) = getopt.getopt(sys.argv[1:], '?hp:s:')
|
||
|
|
||
|
if ('-?','') in options or ('-h','') in options:
|
||
|
print validSyntaxText
|
||
|
sys.exit(-1)
|
||
|
else:
|
||
|
if len (arguments) == 1:
|
||
|
xmlInputFilename = arguments[0]
|
||
|
for o, a in options:
|
||
|
if o == "-s":
|
||
|
xsdFilename = a
|
||
|
if o == "-p":
|
||
|
if a in (XMLIF_MINIDOM, XMLIF_ELEMENTTREE, XMLIF_4DOM):
|
||
|
xmlParser = a
|
||
|
else:
|
||
|
print 'Invalid XML parser %s!' %(a)
|
||
|
sys.exit(-1)
|
||
|
else:
|
||
|
print 'minixsv needs one argument (XML input file)!'
|
||
|
sys.exit(-1)
|
||
|
|
||
|
except getopt.GetoptError, errstr:
|
||
|
print errstr
|
||
|
sys.exit(-1)
|
||
|
return xmlInputFilename, xsdFilename, xmlParser
|
||
|
|
||
|
|
||
|
def main():
|
||
|
xmlInputFilename, xsdFileName, xmlParser = checkShellInputParameter()
|
||
|
try:
|
||
|
parseAndValidate (xmlInputFilename, xsdFile=xsdFileName, xmlIfClass=xmlParser)
|
||
|
except IOError, errstr:
|
||
|
print errstr
|
||
|
sys.exit(-1)
|
||
|
except GenXmlIfError, errstr:
|
||
|
print errstr
|
||
|
sys.exit(-1)
|
||
|
except XsvalError, errstr:
|
||
|
print errstr
|
||
|
sys.exit(-1)
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
main()
|
||
|
|