1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
# This module contains common functionality used by xvcmd.py and xpcmd.py
import sys,string
from xml.parsers.xmlproc import xmlapp, utils
# Backwards compatibility declarations
ESISDocHandler = utils.ESISDocHandler
Canonizer = utils.Canonizer
DocGenerator = utils.DocGenerator
# Error handler
class MyErrorHandler(xmlapp.ErrorHandler):
def __init__(self, locator, parser, warnings, entstack, rawxml):
xmlapp.ErrorHandler.__init__(self,locator)
self.show_warnings=warnings
self.show_entstack=entstack
self.show_rawxml=rawxml
self.parser=parser
self.reset()
def __show_location(self,prefix,msg):
print "%s:%s: %s" % (prefix,self.get_location(),msg)
if self.show_entstack:
print " Document entity"
for item in self.parser.get_current_ent_stack():
print " %s: %s" % item
if self.show_rawxml:
raw=self.parser.get_raw_construct()
if len(raw)>50:
print " Raw construct too big, suppressed."
else:
print " '%s'" % raw
def get_location(self):
return "%s:%d:%d" % (self.locator.get_current_sysid(),\
self.locator.get_line(),
self.locator.get_column())
def warning(self,msg):
if self.show_warnings:
self.__show_location("W",msg)
self.warnings=self.warnings+1
def error(self,msg):
self.fatal(msg)
def fatal(self,msg):
self.__show_location("E",msg)
self.errors=self.errors+1
def reset(self):
self.errors=0
self.warnings=0
|