[XML-SIG] problem with parser.setFeature(feature_validation, 1)

Remy C. Cool dev-xml@smartology.nl
Tue, 17 Dec 2002 17:35:59 +0100


I have the following code:

from xml.sax import make_parser
from xml.sax.handler import feature_namespaces, feature_validation
from xml.sax.handler import ContentHandler, ErrorHandler, DTDHandler

class validation(ContentHandler):
	...
        ...


   # create a parser
   parser = make_parser('xml.sax.drivers2.drv_xmlproc')
   # tell parser we are not interested in XML namespaces
   parser.setFeature(feature_namespaces, 0)
   # tell parser to enable validation
   parser.setFeature(feature_validation, 1)
   # create the handler
   valxml = validator()
   # tell the parser to use our handler
   parser.setContentHandler(valxml)
   parser.setErrorHandler(valxml)
   parser.setDTDHandler(valxml)
   # Parse the input
   parser.parse(xml_file)
   
When I use this ... the parser validates, but closing tags are not 
processed with the endElement(self, name) function in the class 
validator. When I remove the feature_validation line or set it to 0 
... I don't get a validation error: Element 'tag' not declared
when I use the following xml

<tag>This is a test</tag>

Is this normal behaviour ?

Regards, 
Remy Cool