| 55 | _encoder: Optional['XsdElement'] = None |
| 56 | |
| 57 | def __init__(self, tag: str, |
| 58 | value: Optional[Any] = None, |
| 59 | attrib: Optional[dict[str, Any]] = None, |
| 60 | nsmap: Optional[MutableMapping[str, str]] = None, |
| 61 | xmlns: Optional[list[tuple[str, str]]] = None, |
| 62 | xsd_element: Optional['XsdElement'] = None, |
| 63 | xsd_type: Optional[BaseXsdType] = None) -> None: |
| 64 | |
| 65 | super().__init__() |
| 66 | self._children = [] |
| 67 | self.tag = tag |
| 68 | self.attrib = {} |
| 69 | self.nsmap = {} |
| 70 | |
| 71 | if value is not None: |
| 72 | self.value = value |
| 73 | if attrib is not None: |
| 74 | self.attrib.update(attrib) |
| 75 | if nsmap is not None: |
| 76 | self.nsmap.update(nsmap) |
| 77 | if xmlns is not None: |
| 78 | self.xmlns = xmlns |
| 79 | |
| 80 | if xsd_element is not None: |
| 81 | self.xsd_element = xsd_element |
| 82 | self.xsd_type = xsd_type or xsd_element.type |
| 83 | elif xsd_type is not None: |
| 84 | self.xsd_type = xsd_type |
| 85 | elif self.xsd_element is not None: |
| 86 | self._encoder = self.xsd_element |
| 87 | |
| 88 | @overload |
| 89 | def __getitem__(self, i: int) -> 'DataElement': ... # pragma: no cover |