xmlclass/xmlclass.py
changeset 1179 3e7bd88fcff7
parent 1124 b1705000eba1
child 1290 13ee5f4ab612
equal deleted inserted replaced
1178:3e2aebc9c7c0 1179:3e7bd88fcff7
  1596         use = "required"
  1596         use = "required"
  1597         children = []
  1597         children = []
  1598         if path is not None:
  1598         if path is not None:
  1599             parts = path.split(".", 1)
  1599             parts = path.split(".", 1)
  1600             if attributes.has_key(parts[0]):
  1600             if attributes.has_key(parts[0]):
  1601                 if len(parts) != 0:
  1601                 if len(parts) != 1:
  1602                     raise ValueError("Wrong path!")
  1602                     raise ValueError("Wrong path!")
  1603                 attr_type = gettypeinfos(attributes[parts[0]]["attr_type"]["basename"], 
  1603                 attr_type = gettypeinfos(attributes[parts[0]]["attr_type"]["basename"], 
  1604                                          attributes[parts[0]]["attr_type"]["facets"])
  1604                                          attributes[parts[0]]["attr_type"]["facets"])
  1605                 value = getattr(self, parts[0], "")
  1605                 value = getattr(self, parts[0], "")
  1606             elif elements.has_key(parts[0]):
  1606             elif elements.has_key(parts[0]):
  1607                 if elements[parts[0]]["elmt_type"]["type"] == SIMPLETYPE:
  1607                 if elements[parts[0]]["elmt_type"]["type"] == SIMPLETYPE:
  1608                     if len(parts) != 0:
  1608                     if len(parts) != 1:
  1609                         raise ValueError("Wrong path!")
  1609                         raise ValueError("Wrong path!")
  1610                     attr_type = gettypeinfos(elements[parts[0]]["elmt_type"]["basename"], 
  1610                     attr_type = gettypeinfos(elements[parts[0]]["elmt_type"]["basename"], 
  1611                                              elements[parts[0]]["elmt_type"]["facets"])
  1611                                              elements[parts[0]]["elmt_type"]["facets"])
  1612                     value = getattr(self, parts[0], "")
  1612                     value = getattr(self, parts[0], "")
  1613                 elif parts[0] == "content":
  1613                 elif parts[0] == "content":
  1618                         raise ValueError("Wrong path!")
  1618                         raise ValueError("Wrong path!")
  1619                     if len(parts) == 1:
  1619                     if len(parts) == 1:
  1620                         return attr.getElementInfos(parts[0])
  1620                         return attr.getElementInfos(parts[0])
  1621                     else:
  1621                     else:
  1622                         return attr.getElementInfos(parts[0], parts[1])
  1622                         return attr.getElementInfos(parts[0], parts[1])
       
  1623             elif elements.has_key("content"):
       
  1624                 if len(parts) > 0:
       
  1625                     return self.content["value"].getElementInfos(name, path)
       
  1626             elif classinfos.has_key("base"):
       
  1627                 classinfos["base"].getElementInfos(name, path)
  1623             else:
  1628             else:
  1624                 raise ValueError("Wrong path!")
  1629                 raise ValueError("Wrong path!")
  1625         else:
  1630         else:
  1626             if not derived:
  1631             if not derived:
  1627                 children.extend(self.getElementAttributes())
  1632                 children.extend(self.getElementAttributes())