Exemplo n.º 1
0
    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