xsdata
Python XML Binding
Decision gist · record as of 2026-08-14
Yes. xsdata is actively maintained, has no known vulnerabilities, installs with minimal friction, and solves a real problem for anyone working with XML schemas or WSDL in Python. The MIT license imposes no restrictions. It is suitable for production use in data binding, schema-driven code generation, and XML/JSON serialization workflows.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later.
- Optional CLI and SOAP support require additional dependencies (lxml, etc.).
- Low friction: pure Python wheel with a single runtime dependency (typing-extensions).
License · maintenance · safety
MIT (permissive) — MIT license permits commercial and private use with minimal restrictions—you may use, modify, and distribute xsdata freely provided you retain the license notice.
last release 2026-02-15 (180 days) · last repo commit 2026-07-18 · 446 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 3,481,970 downloads/mo, #2,606 on PyPI
Alternatives
Verify before relying
pip install xsdata
xsdata generate schema.xsd --package models
from xsdata.formats.dataclass.parsers import XmlParser
parser = XmlParser()
obj = parser.parse('data.xml', MyElement)- Performance characteristics when parsing or generating code for very large schemas or documents.
- Completeness of W3C XML Schema 1.1 test suite coverage beyond the stated testing claim.
- Whether generated dataclasses work seamlessly with type checkers and IDE autocomplete.
What it is and what it does
xsdata is a data binding library that bridges the gap between XML and JSON documents and Python code. It works in two phases: first, a code generator reads XML schemas, WSDL definitions, DTD files, or sample XML and JSON documents and produces strongly-typed Python dataclasses with metadata; second, optimized parsers and serializers let you load and save those documents as instances of the generated classes, avoiding manual DOM manipulation.
The library targets developers who work with structured XML or JSON data and want type safety. It includes a CLI tool for code generation, supports namespace-qualified elements and attributes, handles wildcards and xinclude statements, and offers multiple handler backends. The generated code is pure Python with type hints, making it compatible with modern tooling.
Use it for
- Generate Python models from an existing XSD schema and parse XML documents into typed objects.
- Convert WSDL service definitions into Python dataclasses for SOAP client integration.
- Infer Python dataclasses directly from sample XML or JSON files without a formal schema.
- Serialize Python objects back to XML or JSON with full namespace support.
- Build tools that consume structured XML configuration or data files with type safety.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
xsdata is actively maintained, has no known vulnerabilities, installs with minimal friction, and solves a real problem for anyone working with XML schemas or WSDL in Python. The MIT license imposes no restrictions. It is suitable for production use in data binding, schema-driven code generation, and XML/JSON serialization workflows.
Install
xsdata on PyPI
Before you install
Low friction: pure Python wheel with a single runtime dependency (typing-extensions). The package is actively maintained with recent releases and no known vulnerabilities.
Requires Python 3.10 or later. Optional CLI and SOAP support require additional dependencies (lxml, etc.).
License in practice
MIT license permits commercial and private use with minimal restrictions—you may use, modify, and distribute xsdata freely provided you retain the license notice.
Quickstart
pip install xsdata
xsdata generate schema.xsd --package models
from xsdata.formats.dataclass.parsers import XmlParser
parser = XmlParser()
obj = parser.parse('data.xml', MyElement)
Verify before relying
- Performance characteristics when parsing or generating code for very large schemas or documents.
- Completeness of W3C XML Schema 1.1 test suite coverage beyond the stated testing claim.
- Whether generated dataclasses work seamlessly with type checkers and IDE autocomplete.
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 1 packagetyping-extensions |
| Maintenance | Actively maintained 180 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 3,481,970 / month, #2,606 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Intended Audience :: DevelopersOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPyTopic :: Software Development :: Code GeneratorsTopic :: Text Processing :: Markup :: XML |
Evidence: xsdata-26.2-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “xml schema to python dataclass”
- xsdataxsdata generates Python dataclasses from XML schemas, WSDL, DTD, and…
- datamodel-code-generatorGenerates Python data models (Pydantic, dataclasses, TypedDict,…
- warchant_dc_schemaGenerates JSON Schema (2020-12 draft) from Python dataclasses with no…
Give your agent the search over MCP, or paste the wish link into any chat.
More Code Generators packages
Proto Plus wraps protocol buffers to provide Python classes that behave like native Python types while maintaining protocol buffer serialization and schema validation.
Install it if you're working with protocol buffers in Python and want a more Pythonic interface, or if you're using Google Cloud libraries that depend on it.
Cython is a source code translator that compiles Python code to C, enabling optional static typing and direct C/C++ interoperability to generate efficient native extensions.
Install it if you need to optimize Python performance, wrap C/C++ libraries, or build fast native extensions.
Annotates Python abstract syntax trees with the positions of tokens and source code text, enabling tools to map AST nodes back to their originating code for refactoring, analysis, and transformation.
Beartype is a runtime type checker that validates Python type hints at function call time, catching type violations before they cause downstream bugs.
Install it if you want runtime type safety for your annotated code or need to validate type hints on third-party packages.
llvmlite provides a lightweight Python binding to LLVM's IR builder, optimizer, and JIT compiler APIs, enabling you to write JIT compilers and code generators without needing the full LLVM C++ API surface.
astor converts Python abstract syntax trees (ASTs) back to readable source code and provides tools for AST manipulation, inspection, and non-recursive tree traversal.
Install it if you need AST round-tripping or advanced tree inspection.
See also xsdata-pydantic · PyXB-X · xml-python · xmlschema · cybox · xmlunittest · ome-types · sepaxml · lxml · pydantic-xml