[XML-SIG] setFeature(feature_validation, 1) causes misfire on endElement()

Remy C. Cool dev-xml@smartology.nl
Fri, 6 Dec 2002 15:35:33 +0100


On Friday 06 December 2002 13:53, Martin v. Löwis wrote:

> "Remy C. Cool" <dev-xml@smartology.nl> writes:

> > When feature_validation is set to true ... the endElement handler
> > does not work. When feature_validation is set to false,
> > endElement works and validation is still enabled.
>
> What do you mean by "does not work"?

When the above feature is set to 1 (true)  the parser does not call 
the  endElement(self) function. 

Example code:

class myParser(ContentHandler):
	def __init__(self):
		pass

	def startElement(self, name):
		print 'start:', name
	
	def endElement(self, name):
		print 'end:', name
  

With feature_validation set to false (o) or removing the line 
completely ... the result is:

start: taga
start: tagb
end: tagb
end: taga

With feature_validation set to true (1) the result is:

start: taga
start: tagb

> > An other problem (not related) is that the locator function:
> >
> > def setDocumentLocator(self, locator):
> >       self.locator = locator
> >
> > doesn't work
>
> Again, what do you mean by "doesn't work"?

Example code:

class myParser(ContentHandler):
	def __init__(self):
		pass

	def setDocumentLocator(self, locator):
		self.locator = locator

	def startElement(self, name):
		print 'start:', name
		print self.locator.getLineNumber()
	
	def endElement(self, name):
		print 'end:', name
		
Running the above results in a self.locator does not have the property 
getLineNumber() error.

Regards, 
Remy Cool