is it possible to construct a XML as this one using lxml?
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns0="http://xmlns.CLT.com/consume/ENTBUS" xmlns:ns1="http://xmlns.CLT.com/Core/ENTBUS" xmlns:ns2="http://xmlns.CLT.com/output/EBO">
<soapenv:Header/>
<soapenv:Body>
<ns0:ConsumptionRequestENTBUS>
<ns1:ENTBUSHeader>
<ns1:ENTBUSID>1</ns1:ENTBUSID>
</ns1:ENTBUSHeader>
<ns0:Zone>
<ns2:Consumption>
<ns2:BusCode>1</ns2:BusCode>
</ns2:Consumption>
</ns0:Zone>
</ns0:ConsumptionRequestENTBUS>
</soapenv:Body>
</soapenv:Envelope>
I tried building the root element as below but it fails. And almost every element needs to be namespace referenced.
>>> from lxml import etree
>>> root = etree.Element("soapenv:Envelope")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "lxml.etree.pyx", line 2811, in lxml.etree.Element (src\lxml\lxml.etree.c:65389)
File "apihelpers.pxi", line 103, in lxml.etree._makeElement (src\lxml\lxml.etree.c:13898)
File "apihelpers.pxi", line 1575, in lxml.etree._tagValidOrRaise (src\lxml\lxml.etree.c:27955)
ValueError: Invalid tag name u'soapenv:Envelope'
Thanks