def getAttributesDeclarationXML(self) :
""" generate attributes declaration XML """
# return lxml etree element
allAttributesXML=[]
if len(self)>0 :
# iter on node and then edge atts
for attClass,atts in self.iteritems() :
# group by mode
key_mode=lambda att : att["mode"]
atts_sorted_by_mode=sorted(atts.values(),key=key_mode,reverse=True)
for mode,atts in itertools.groupby(atts_sorted_by_mode,key_mode) :
# generate on attributes by mode
attributesXML = etree.Element("attributes")
attributesXML.set("class",attClass)
attributesXML.set("mode",mode)
# generate attribute by id order
for att in sorted(atts,key=lambda att: att["id"]) :
attributeXML=etree.SubElement(attributesXML, "attribute")
attributeXML.set("id",str(att["id"]))
attributeXML.set("title",att["title"])
attributeXML.set("type",att["type"])
if att["defaultValue"] :
etree.SubElement(attributeXML, "default").text=att["defaultValue"]
allAttributesXML.append(attributesXML)
return allAttributesXML
评论列表
文章目录