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: |