xmlclass/xmlclass.py
changeset 1017 2925d6e49893
parent 814 5743cbdff669
child 1022 ec30c12b1d67
equal deleted inserted replaced
1016:3d79c31e4697 1017:2925d6e49893
  1667             if attributes.has_key(parts[0]):
  1667             if attributes.has_key(parts[0]):
  1668                 if len(parts) != 1:
  1668                 if len(parts) != 1:
  1669                     raise ValueError("Wrong path!")
  1669                     raise ValueError("Wrong path!")
  1670                 if attributes[parts[0]]["attr_type"]["basename"] == "boolean":
  1670                 if attributes[parts[0]]["attr_type"]["basename"] == "boolean":
  1671                     setattr(self, parts[0], value)
  1671                     setattr(self, parts[0], value)
       
  1672                 elif attributes[parts[0]]["use"] == "optional" and value == "":
       
  1673                     setattr(self, parts[0], None)
  1672                 else:
  1674                 else:
  1673                     setattr(self, parts[0], attributes[parts[0]]["attr_type"]["extract"](value, False))
  1675                     setattr(self, parts[0], attributes[parts[0]]["attr_type"]["extract"](value, False))
  1674             elif elements.has_key(parts[0]):
  1676             elif elements.has_key(parts[0]):
  1675                 if elements[parts[0]]["elmt_type"]["type"] == SIMPLETYPE:
  1677                 if elements[parts[0]]["elmt_type"]["type"] == SIMPLETYPE:
  1676                     if len(parts) != 1:
  1678                     if len(parts) != 1:
  1677                         raise ValueError("Wrong path!")
  1679                         raise ValueError("Wrong path!")
  1678                     if elements[parts[0]]["elmt_type"]["basename"] == "boolean":
  1680                     if elements[parts[0]]["elmt_type"]["basename"] == "boolean":
  1679                         setattr(self, parts[0], value)
  1681                         setattr(self, parts[0], value)
       
  1682                     elif attributes[parts[0]]["minOccurs"] == 0 and value == "":
       
  1683                         setattr(self, parts[0], None)
  1680                     else:
  1684                     else:
  1681                         setattr(self, parts[0], elements[parts[0]]["elmt_type"]["extract"](value, False))
  1685                         setattr(self, parts[0], elements[parts[0]]["elmt_type"]["extract"](value, False))
  1682                 else:
  1686                 else:
  1683                     instance = getattr(self, parts[0], None)
  1687                     instance = getattr(self, parts[0], None)
  1684                     if instance is None and elements[parts[0]]["minOccurs"] == 0:
  1688                     if instance is None and elements[parts[0]]["minOccurs"] == 0: