def build_schema(self, stream): """ Builds a schema object from a stream of XML Schema (\*.xsd) data. """ generated_schemacontext = schemaelementhandlers.SchemaContext() schemadochandler = XmlDocHandler() schemadochandler.onstartprefixmapping = generated_schemacontext.startprefixmapping schemacontext = SchemaBuilder.build_schemacontext(generated_schemacontext) schemadochandler.schemacontext = schemacontext parser = make_parser() parser.setFeature(feature_namespaces, 1) parser.setContentHandler(schemadochandler) parser.parse(stream) return generated_schemacontext.schema
def test_prefixmapping(): """ The function set to onstartprefixmapping should be called for every prefix mapping. """ namespaceuri = "somenamespace.org" prefix = "ns" class MappingHandler: def __init__(self): self.prefixmappings = {} def startprefixmapping(self, prefix, uri): self.prefixmappings[prefix] = uri mock_mappinghandler = MappingHandler() xmldochandler = XmlDocHandler() xmldochandler.onstartprefixmapping = mock_mappinghandler.startprefixmapping xmldochandler.startPrefixMapping(prefix, namespaceuri) assert mock_mappinghandler.prefixmappings[prefix] == namespaceuri