Estoy tratando de especificar un espacio de nombres utilizando lxml similar a este ejemplo (tomado de here):Python: la adición de espacios de nombres en lxml
<TreeInventory xsi:noNamespaceSchemaLocation="Trees.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
</TreeInventory>
No estoy seguro de cómo añadir la instancia de esquema de uso y también la ubicación del esquema. El documentation me inició, haciendo algo como:
>>> NS = 'http://www.w3.org/2001/XMLSchema-instance'
>>> TREE = '{%s}' % NS
>>> NSMAP = {None: NS}
>>> tree = etree.Element(TREE + 'TreeInventory', nsmap=NSMAP)
>>> etree.tostring(tree, pretty_print=True)
'<TreeInventory xmlns="http://www.w3.org/2001/XMLSchema-instance"/>\n'
No estoy seguro de cómo especificar que una instancia sin embargo, y luego también especificar una ubicación. Parece que esto se puede hacer con nsmap
keyword-arg en etree.Element
, pero no veo cómo.
Corrección pequeña: debe ser noNamespaceSchemaLocation, no noNameSpaceSchemaLocation. –