object
| 302 | |
| 303 | |
| 304 | class Element(object): |
| 305 | """ |
| 306 | <xsd:element> object |
| 307 | """ |
| 308 | def __init__(self, element_elm, nsprefix): |
| 309 | super(Element, self).__init__() |
| 310 | self.nsprefix = nsprefix |
| 311 | self.name = element_elm.get('name') |
| 312 | self.tag = '%s:%s' % (self.nsprefix, self.name) |
| 313 | self.typename = element_elm.get('type') |
| 314 | if self.typename.startswith('a:'): |
| 315 | self.typename = self.typename[2:] |
| 316 | self.default = element_elm.get('default') |
| 317 | self.form = element_elm.get('form') |
| 318 | self.minOccurs = element_elm.get('minOccurs', '1') |
| 319 | self.maxOccurs = element_elm.get('maxOccurs', '1') |
| 320 | if self.form is not None: |
| 321 | raise TypeError('found xsd:element with form="%s"' % self.form) |
| 322 | |
| 323 | def __str__(self): |
| 324 | tmpl = 'xsd:element %s %s %s%s' |
| 325 | default = (' default="%s"' % self.default) if self.default else '' |
| 326 | return tmpl % (self.cardinality, self.name, self.typename, default) |
| 327 | |
| 328 | @property |
| 329 | def cardinality(self): |
| 330 | if self.minOccurs == '0': |
| 331 | cardinality = '?' if self.maxOccurs == '1' else '*' |
| 332 | elif self.minOccurs == '1': |
| 333 | cardinality = '1' if self.maxOccurs == '1' else '+' |
| 334 | else: |
| 335 | cardinality = '{%s:%s}' % (self.minOccurs, self.maxOccurs) |
| 336 | return cardinality |
| 337 | |
| 338 | |
| 339 | def element_defs(tags): |
no outgoing calls
no test coverage detected
searching dependent graphs…