bases
xsdata.formats.dataclass.parsers.bases
NodeParser
dataclass
Bases: PushParser
Bind xml nodes to data classes.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
context | XmlContext | The models context instance | XmlContext() |
handler | type[XmlHandler] | The xml handler class | EventsHandler |
Attributes:
Name | Type | Description |
---|---|---|
ns_map | dict[Optional[str], str] | The parsed namespace prefix-URI map |
Source code in xsdata/formats/dataclass/parsers/bases.py
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 |
|
parse(source, clazz=None, ns_map=None)
Parse the input file or stream into the target class type.
If no clazz is provided, the binding context will try to locate it from imported dataclasses.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
source | Any | The source file or stream object to parse | required |
clazz | Optional[type[T]] | The target class type to parse the source bytes object | None |
ns_map | Optional[dict[Optional[str], str]] | A namespace prefix-URI map to record prefixes during parsing | None |
Returns:
Type | Description |
---|---|
T | An instance of the specified class representing the parsed content. |
Source code in xsdata/formats/dataclass/parsers/bases.py
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
|
start(clazz, queue, objects, qname, attrs, ns_map)
Build and queue the XmlNode for the starting element.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
clazz | Optional[type] | The target class type, auto locate if omitted | required |
queue | list[XmlNode] | The XmlNode queue list | required |
objects | list[Parsed] | The list of all intermediate parsed objects | required |
qname | str | The element qualified name | required |
attrs | dict | The element attributes | required |
ns_map | dict | The element namespace prefix-URI map | required |
Source code in xsdata/formats/dataclass/parsers/bases.py
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 |
|
end(queue, objects, qname, text, tail)
Parse the last xml node and bind any intermediate objects.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
queue | list[XmlNode] | The XmlNode queue list | required |
objects | list[Parsed] | The list of all intermediate parsed objects | required |
qname | str | The element qualified name | required |
text | Optional[str] | The element text content | required |
tail | Optional[str] | The element tail content | required |
Returns:
Type | Description |
---|---|
bool | Whether the binding process was successful. |
Source code in xsdata/formats/dataclass/parsers/bases.py
131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 |
|
find_root_clazz(clazz, qname, attrs, ns_map, xsi_type)
Obtain the root clazz, maybe from the provided clazz.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
clazz | Optional[type] | The root class type, auto locate if omitted | required |
qname | str | Qualified name | required |
attrs | dict | Attribute key-value map | required |
ns_map | dict | Namespace prefix-URI map | required |
xsi_type | Optional[str] | The xsi:type of the object | required |
Returns: The root class.
Source code in xsdata/formats/dataclass/parsers/bases.py
154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 |
|
RecordParser
dataclass
Bases: NodeParser
Bind xml nodes to dataclasses and store the intermediate events.
Attributes:
Name | Type | Description |
---|---|---|
events | list | The list of recorded events |
Source code in xsdata/formats/dataclass/parsers/bases.py
184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 |
|
start(clazz, queue, objects, qname, attrs, ns_map)
Build and queue the XmlNode for the starting element.
Record the start event for later processing.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
clazz | Optional[type] | The target class type, auto locate if omitted | required |
queue | list[XmlNode] | The XmlNode queue list | required |
objects | list[Parsed] | The list of all intermediate parsed objects | required |
qname | str | The element qualified name | required |
attrs | dict | The element attributes | required |
ns_map | dict | The element namespace prefix-URI map | required |
Source code in xsdata/formats/dataclass/parsers/bases.py
194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 |
|
end(queue, objects, qname, text, tail)
Parse the last xml node and bind any intermediate objects.
Record the end event for later processing
Parameters:
Name | Type | Description | Default |
---|---|---|---|
queue | list[XmlNode] | The XmlNode queue list | required |
objects | list[Parsed] | The list of all intermediate parsed objects | required |
qname | str | The element qualified name | required |
text | Optional[str] | The element text content | required |
tail | Optional[str] | The element tail content | required |
Returns:
Type | Description |
---|---|
Any | Whether the binding process was successful. |
Source code in xsdata/formats/dataclass/parsers/bases.py
218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 |
|
register_namespace(ns_map, prefix, uri)
Register the uri prefix in the namespace prefix-URI map.
Record the start-ns event for later processing.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
ns_map | dict[Optional[str], str] | The namespace prefix-URI map | required |
prefix | Optional[str] | The namespace prefix | required |
uri | str | The namespace uri | required |
Source code in xsdata/formats/dataclass/parsers/bases.py
243 244 245 246 247 248 249 250 251 252 253 254 255 256 |
|