(self, root)
| 151 | self._make_model(root) |
| 152 | |
| 153 | def _make_model(self, root): |
| 154 | enums = {} |
| 155 | for child in root.iter("{*}EnumeratedType"): |
| 156 | intenum = EnumType(child.get("Name")) |
| 157 | for xmlfield in child.iter("{*}EnumeratedValue"): |
| 158 | name = xmlfield.get("Name") |
| 159 | value = xmlfield.get("Value") |
| 160 | enumvalue = EnumeratedValue(name, value) |
| 161 | intenum.fields.append(enumvalue) |
| 162 | enums[child.get("Name")] = value |
| 163 | self.model.append(intenum) |
| 164 | |
| 165 | for child in root.iter("{*}StructuredType"): |
| 166 | struct = Struct(child.get("Name")) |
| 167 | array = False |
| 168 | for xmlfield in child.iter("{*}Field"): |
| 169 | name = xmlfield.get("Name") |
| 170 | if name.startswith("NoOf"): |
| 171 | array = True |
| 172 | continue |
| 173 | field = Field(_clean_name(name)) |
| 174 | field.uatype = xmlfield.get("TypeName") |
| 175 | if ":" in field.uatype: |
| 176 | field.uatype = field.uatype.split(":")[1] |
| 177 | field.uatype = _clean_name(field.uatype) |
| 178 | field.value = get_default_value(field.uatype, enums) |
| 179 | if array: |
| 180 | field.array = True |
| 181 | field.value = [] |
| 182 | array = False |
| 183 | struct.fields.append(field) |
| 184 | self.model.append(struct) |
| 185 | |
| 186 | def save_to_file(self, path, register=False): |
| 187 | _file = open(path, "w+") |
no test coverage detected