Mappings#

Local attributes#

Field of a mapping type is bound to a local element attributes.

Model
class Company(BaseXmlModel):
    properties: Dict[str, str]
Document
<Company trade-name="SpaceX" type="Private"/>
{
    "properties": {
        "trade-name": "SpaceX",
        "type": "Private"
    }
}

Sub-element attributes#

Field of a mapping type marked as pydantic_xml.element() is bound to a sub-element attributes. Parameter tag of pydantic_xml.element() is used as a sub-element tag to which attribute the field is bound. If it is omitted field name is used (respecting pydantic field aliases).

Model
class Company(BaseXmlModel):
    founder: Dict[str, str] = element(tag='Founder')
Document
<Company>
    <Founder name="Elon" surname="Musk"/>
</Company>
{
    "founder": {
        "name": "Elon",
        "surname": "Musk"
    }
}