xsdata-pydantic
xsdata pydantic plugin
Decision gist · record as of 2026-08-14
Yes. Low install friction, active maintenance, no known vulnerabilities, permissive MIT license, and broad Python version support. Solves a real problem for anyone working with XML schemas or WSDL in Python and wanting pydantic's validation and type safety. Suitable for production use.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires xsdata CLI to generate pydantic models from XSD/WSDL schemas first; Python 3.8 or later.
- Low friction install with only pydantic and xsdata as runtime dependencies.
- Actively maintained with recent commits and support for current Python versions.
License · maintenance · safety
MIT (permissive) — MIT license is permissive; you can use, modify, and distribute this package with minimal restrictions.
last release 2024-05-08 (828 days) · last repo commit 2026-04-01 · 89 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 313,198 downloads/mo, #7,719 on PyPI
Alternatives
Verify before relying
pip install xsdata-pydantic
from xsdata_pydantic.bindings import XmlParser
parser = XmlParser()
result = parser.parse(open('document.xml'), Rss)
print(result.channel.item[0].title)- Whether generated models handle deeply nested or recursive schema structures reliably.
- Performance characteristics when parsing very large XML or JSON documents.
- Compatibility with all pydantic v2 features and validation modes.
What it is and what it does
xsdata-pydantic bridges XML/JSON schema definitions and pydantic's type system. It uses xsdata to parse XSD, WSDL, and DTD schemas, then generates pydantic BaseModel classes that represent the document structure. Once generated, you can parse XML or JSON into typed Python objects and serialize them back, gaining IDE autocomplete, runtime validation, and type checking throughout your workflow.
The package is typically used in two phases: first, run the xsdata CLI to generate model files from a schema; then, import those models and use XmlParser or serializers from xsdata-pydantic.bindings to read and write documents. It's designed for developers who work with structured data formats and want the safety and ergonomics of pydantic's validation without manually writing model classes.
Use it for
- Parse RSS/Atom feeds or SOAP responses into typed objects with validation.
- Generate Python models from enterprise WSDL or XSD files for API integration.
- Serialize Python dataclasses back to XML with schema-aware structure and attributes.
- Build data pipelines that consume JSON or XML from external sources with type safety.
- Validate incoming XML documents against a schema before processing in your application.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
Low install friction, active maintenance, no known vulnerabilities, permissive MIT license, and broad Python version support. Solves a real problem for anyone working with XML schemas or WSDL in Python and wanting pydantic's validation and type safety. Suitable for production use.
Install
xsdata-pydantic on PyPI
Before you install
Low friction install with only pydantic and xsdata as runtime dependencies. Actively maintained with recent commits and support for current Python versions.
Requires xsdata CLI to generate pydantic models from XSD/WSDL schemas first; Python 3.8 or later.
License in practice
MIT license is permissive; you can use, modify, and distribute this package with minimal restrictions.
Quickstart
pip install xsdata-pydantic
from xsdata_pydantic.bindings import XmlParser
parser = XmlParser()
result = parser.parse(open('document.xml'), Rss)
print(result.channel.item[0].title)
Verify before relying
- Whether generated models handle deeply nested or recursive schema structures reliably.
- Performance characteristics when parsing very large XML or JSON documents.
- Compatibility with all pydantic v2 features and validation modes.
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release >=3.8 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 2 packagespydanticxsdata |
| Maintenance | Actively maintained 828 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 313,198 / month, #7,719 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Intended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseOperating 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.8Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPyTopic :: Software Development :: Code GeneratorsTopic :: Text Processing :: Markup :: XML |
Evidence: xsdata_pydantic-24.5-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 to pydantic model generator”
- xsdata-pydanticGenerates pydantic models from XML and JSON schemas, then parses and…
- datamodel-code-generatorGenerates Python data models (Pydantic, dataclasses, TypedDict,…
- pydantic-xmlPydantic-xml adds XML serialization and deserialization to pydantic…
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 pydantic-xml · xsdata · PyXB-X · xml-python · xmlschema · dydantic · py-avro-schema · pydantic-factories · pydantic_yaml