def test_startElementNS_handlerootelement():
    schemacontext = SchemaContext()

    directorytype = XmlElementType(None, None)
    directoryhandler = directorytype.create_elementhandler("directory")

    namespace = XmlNamespace("somename.org")
    namespace.root_elementhandlers[directoryhandler.name] = directoryhandler
    schemacontext.namespaces[namespace.name] = namespace

    xmldochandler = XmlDocHandler()
    xmldochandler.schemacontext = schemacontext

    xmldochandler.startElementNS(("somename.org", "directory"), None, None)
Exemplo n.º 2
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