gorram it lxml.
This commit is contained in:
parent
ee653e81f6
commit
7c0c7bf5c0
@ -308,19 +308,11 @@ class Conf(object):
|
||||
|
||||
def validate(self):
|
||||
# TODO: perform further validations that we can't do in XSD.
|
||||
# TODO: FIX ME. ALWAYS RETURNS INVALID:
|
||||
# lxml.etree.DocumentInvalid: Element 'bdisk': No matching global declaration available for the validation root.
|
||||
xsd = self.get_xsd()
|
||||
self.xsd = etree.XMLSchema(xsd)
|
||||
# This would return a bool if it validates or not.
|
||||
#self.xsd.validate(self.xml)
|
||||
# We want to get a more detailed exception.
|
||||
#xml = self.xml_suppl.return_full().getroottree()
|
||||
xml = self.xml_suppl.return_full()
|
||||
with open('/tmp/bdisk.xml', 'wb') as f:
|
||||
f.write(etree.tostring(xml))
|
||||
with open('/tmp/bdisk.xsd', 'wb') as f:
|
||||
f.write(etree.tostring(xsd))
|
||||
xml = etree.fromstring(self.xml_suppl.return_full())
|
||||
self.xsd.assertValid(xml)
|
||||
#print(self.xsd.validate(xml))
|
||||
return()
|
||||
|
@ -977,13 +977,14 @@ class xml_supplicant(object):
|
||||
|
||||
def return_full(self):
|
||||
#nsmap = self.return_naked_ns()
|
||||
# https://stackoverflow.com/a/22553145/733214
|
||||
local_xml = lxml.etree.Element('bdisk',
|
||||
nsmap = self.orig_xml.nsmap,
|
||||
attrib = self.orig_xml.attrib)
|
||||
local_xml.text = '\n '
|
||||
for elem in self.xml.xpath('/bdisk/profile'):
|
||||
local_xml.append(copy.deepcopy(elem))
|
||||
return(local_xml)
|
||||
return(lxml.etree.tostring(local_xml))
|
||||
|
||||
def return_naked_ns(self):
|
||||
# It's so stupid I have to do this.
|
||||
|
Loading…
Reference in New Issue
Block a user