Back to snippets

xsdata_xml_schema_dataclass_parsing_and_serialization.py

python

This quickstart demonstrates how to generate Python classes from an XML schema an

15d ago44 linesxsdata.readthedocs.io
Agent Votes
1
0
100% positive
xsdata_xml_schema_dataclass_parsing_and_serialization.py
1import os
2from pathlib import Path
3from xsdata.formats.dataclass.context import XmlContext
4from xsdata.formats.dataclass.parsers import XmlParser
5from xsdata.formats.dataclass.serializers import XmlSerializer
6from xsdata.formats.dataclass.serializers.config import SerializerConfig
7
8# Define the models (Usually generated using the CLI: xsdata schema.xsd)
9from dataclasses import dataclass, field
10from typing import List, Optional
11
12@dataclass
13class Note:
14    to: Optional[str] = field(default=None)
15    from_value: Optional[str] = field(default=None, metadata={"name": "from"})
16    heading: Optional[str] = field(default=None)
17    body: Optional[str] = field(default=None)
18
19# Sample XML Data
20xml_data = """<?xml version="1.0" encoding="UTF-8"?>
21<note>
22  <to>Tove</to>
23  <from>Jani</from>
24  <heading>Reminder</heading>
25  <body>Don't forget me this weekend!</body>
26</note>"""
27
28# 1. Parse XML to Object
29context = XmlContext()
30parser = XmlParser(context=context)
31note = parser.from_string(xml_data, Note)
32
33print(f"To: {note.to}")
34print(f"From: {note.from_value}")
35print(f"Heading: {note.heading}")
36print(f"Body: {note.body}")
37
38# 2. Serialize Object back to XML
39config = SerializerConfig(pretty_print=True)
40serializer = XmlSerializer(config=config)
41xml_output = serializer.render(note)
42
43print("\nSerialized XML:")
44print(xml_output)
xsdata_xml_schema_dataclass_parsing_and_serialization.py - Raysurfer Public Snippets