1 from xml.dom
import minidom
12 self.
att_nameatt_name = name.replace(
"-",
"_").replace(
"[",
"_").replace(
"]",
"").replace(
".",
"_")
14 def to_xml(self, obj, parent: minidom.Element, dom: minidom.Document):
15 raise NotImplementedError
17 def from_xml(self, obj, parent: minidom.Element, registry: ObjectRegistry):
18 raise NotImplementedError
21 raise NotImplementedError
36 return "%s(%r)" % (self.__class__.__name__, self.
namename)
40 def __init__(self, name, type=str, default_value=None, att_name=None):
44 if att_name
is not None:
51 return self.
typetype(value)
65 return cls(id, registry.get_object(id))
69 def from_xml(self, obj, parent: minidom.Element, registry: ObjectRegistry):
70 xml_str = parent.getAttribute(self.
namename)
72 if xml_str.startswith(
":")
and xml_str[1:]
in registry.registry:
73 value = ValueReference.from_registry(xml_str[1:], registry)
78 def to_xml(self, obj, parent: minidom.Element, dom: minidom.Document):
81 if isinstance(value, ValueReference):
82 xml_str =
":" + value.id
85 parent.setAttribute(self.
namename, xml_str)
94 def to_xml(self, obj, parent: minidom.Element, dom: minidom.Document):
98 if value != self.
valuevalue:
99 raise ValueError(
"Value of %s should be %s, got %s" % (self.
namename, self.
valuevalue, value))
102 def from_xml(self, obj, parent: minidom.Element, registry: ObjectRegistry):
103 xml_str = parent.getAttribute(self.
namename)
107 return self.
valuevalue
111 def from_xml(self, obj, parent: minidom.Element, registry: ObjectRegistry):
120 def to_xml(self, obj, parent: minidom.Element, dom: minidom.Document):
122 if value
is not None:
127 def from_xml(self, obj, parent: minidom.Element, registry: ObjectRegistry):
129 if cn.getAttribute(
"name") == self.
namename:
137 def to_xml(self, obj, parent: minidom.Element, dom: minidom.Document):
139 if value
is not None:
140 meta = parent.appendChild(dom.createElement(
"meta"))
141 meta.setAttribute(
"name", self.
namename)
def from_python(self, value)
def __init__(self, name, type=str, default_value=None, att_name=None)
def from_registry(cls, id, ObjectRegistry registry)
def __init__(self, id, value=None)
def from_xml(self, obj, minidom.Element parent, ObjectRegistry registry)
def to_xml(self, obj, minidom.Element parent, minidom.Document dom)
def from_xml(self, obj, minidom.Element parent, ObjectRegistry registry)
def from_python(self, value)
def initialize_object(self, dict, obj)
def to_xml(self, obj, minidom.Element parent, minidom.Document dom)
def to_xml(self, obj, minidom.Element parent, minidom.Document dom)
def __init__(self, name, value, type=str)
def from_python(self, value)
def from_xml(self, obj, minidom.Element parent, ObjectRegistry registry)
def from_xml(self, obj, minidom.Element parent, ObjectRegistry registry)
def to_xml(self, obj, minidom.Element parent, minidom.Document dom)
def xml_first_element_child(minidom.Node xml, tagname=None, allow_none=False)
def xml_make_text(minidom.Document dom, tag_name, text)
def xml_child_elements(minidom.Node xml, tagname=None)
def value_to_xml_string(value, type)
def value_from_xml_string(xml_str, type, registry)
def value_isinstance(value, type)