# Odoo abstract model generator from xsd schemas using xsdata
[](https://codecov.io/gh/akretion/xsdata-odoo)
[](https://pypi.org/pypi/xsdata-odoo/)
[](https://pypi.org/pypi/xsdata-odoo/)
- [`xsdata`](https://xsdata.readthedocs.io/) based replacement of
[generateds-odoo](https://github.com/akretion/generateds-odoo)
- heavily inspired by [xsdata-plantuml](https://github.com/tefra/xsdata-plantuml)
- explanations: [YouTube Video](https://www.youtube.com/watch?v=6gFOe7Wh8uA)
## Install
```console
$ # Install with cli support
$ pip install xsdata[cli]
$ pip install git+https://github.com/akretion/xsdata-odoo
```
## Generate Abstract Odoo Models
Odoo Abstract Models for the Microsoft Purchase Order demo schema:
```console
$ xsdata generate tests/fixtures/po/po.xsd --output=odoo
Parsing schema po.xsd
Compiling schema po.xsd
Builder: 6 main and 1 inner classes
Analyzer input: 6 main and 1 inner classes
Analyzer output: 5 main and 1 inner classes
Generating package: generated.po
```
Odoo Abstract Models for the Brazilian Electronic Invoices (NF-e):
```console
$ export XSDATA_SCHEMA=nfe; export XSDATA_VERSION=40; export XSDATA_SKIP="^ICMS.ICMS\d+|^ICMS.ICMSSN\d+"; export XSDATA_LANG="portuguese"
$ # assuming you are in an akretion/nfelib clone or you downloaded the NFe schemas in nfelib/schemas/nfe/v4_0:
$ xsdata generate nfelib/nfe/schemas/v4_0 --package nfelib.nfe.odoo.v4_0 --output=odoo
Generating package: init
Generating package: nfelib.nfe.odoo.v4_0.xmldsig_core_schema_v1_01
Generating package: nfelib.nfe.odoo.v4_0.tipos_basico_v4_00
Generating package: nfelib.nfe.odoo.v4_0.leiaute_nfe_v4_00
Generating package: nfelib.nfe.odoo.v4_0.leiaute_cons_sit_nfe_v4_00
Generating package: nfelib.nfe.odoo.v4_0.cons_reci_nfe_v4_00
Generating package: nfelib.nfe.odoo.v4_0.cons_sit_nfe_v4_00
Generating package: nfelib.nfe.odoo.v4_0.leiaute_cons_stat_serv_v4_00
Generating package: nfelib.nfe.odoo.v4_0.cons_stat_serv_v4_00
Generating package: nfelib.nfe.odoo.v4_0.envi_nfe_v4_00
Generating package: nfelib.nfe.odoo.v4_0.leiaute_inut_nfe_v4_00
Generating package: nfelib.nfe.odoo.v4_0.inut_nfe_v4_00
Generating package: nfelib.nfe.odoo.v4_0.nfe_v4_00
Generating package: nfelib.nfe.odoo.v4_0.proc_inut_nfe_v4_00
Generating package: nfelib.nfe.odoo.v4_0.proc_nfe_v4_00
Generating package: nfelib.nfe.odoo.v4_0.ret_cons_reci_nfe_v4_00
Generating package: nfelib.nfe.odoo.v4_0.ret_cons_sit_nfe_v4_00
Generating package: nfelib.nfe.odoo.v4_0.ret_cons_stat_serv_v4_00
Generating package: nfelib.nfe.odoo.v4_0.ret_envi_nfe_v4_00
Generating package: nfelib.nfe.odoo.v4_0.ret_inut_nfe_v4_0
```
Raw data
{
"_id": null,
"home_page": null,
"name": "xsdata-odoo",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "xsd, wsdl, schema, xml, uml, odoo, generator, cli",
"author": null,
"author_email": "Rapha\u00ebl Valyi <raphael.valyi@akretion.com>",
"download_url": "https://files.pythonhosted.org/packages/b8/9d/6596905d79b1d46a369127236699dcaf02197f034672b8ca7a55b79f5d5f/xsdata_odoo-1.0.0.tar.gz",
"platform": null,
"description": "# Odoo abstract model generator from xsd schemas using xsdata\n\n[](https://codecov.io/gh/akretion/xsdata-odoo)\n[](https://pypi.org/pypi/xsdata-odoo/)\n[](https://pypi.org/pypi/xsdata-odoo/)\n\n- [`xsdata`](https://xsdata.readthedocs.io/) based replacement of\n [generateds-odoo](https://github.com/akretion/generateds-odoo)\n- heavily inspired by [xsdata-plantuml](https://github.com/tefra/xsdata-plantuml)\n- explanations: [YouTube Video](https://www.youtube.com/watch?v=6gFOe7Wh8uA)\n\n## Install\n\n```console\n$ # Install with cli support\n$ pip install xsdata[cli]\n$ pip install git+https://github.com/akretion/xsdata-odoo\n```\n\n## Generate Abstract Odoo Models\n\nOdoo Abstract Models for the Microsoft Purchase Order demo schema:\n\n```console\n$ xsdata generate tests/fixtures/po/po.xsd --output=odoo\nParsing schema po.xsd\nCompiling schema po.xsd\nBuilder: 6 main and 1 inner classes\nAnalyzer input: 6 main and 1 inner classes\nAnalyzer output: 5 main and 1 inner classes\nGenerating package: generated.po\n```\n\nOdoo Abstract Models for the Brazilian Electronic Invoices (NF-e):\n\n```console\n$ export XSDATA_SCHEMA=nfe; export XSDATA_VERSION=40; export XSDATA_SKIP=\"^ICMS.ICMS\\d+|^ICMS.ICMSSN\\d+\"; export XSDATA_LANG=\"portuguese\"\n$ # assuming you are in an akretion/nfelib clone or you downloaded the NFe schemas in nfelib/schemas/nfe/v4_0:\n$ xsdata generate nfelib/nfe/schemas/v4_0 --package nfelib.nfe.odoo.v4_0 --output=odoo\nGenerating package: init\nGenerating package: nfelib.nfe.odoo.v4_0.xmldsig_core_schema_v1_01\nGenerating package: nfelib.nfe.odoo.v4_0.tipos_basico_v4_00\nGenerating package: nfelib.nfe.odoo.v4_0.leiaute_nfe_v4_00\nGenerating package: nfelib.nfe.odoo.v4_0.leiaute_cons_sit_nfe_v4_00\nGenerating package: nfelib.nfe.odoo.v4_0.cons_reci_nfe_v4_00\nGenerating package: nfelib.nfe.odoo.v4_0.cons_sit_nfe_v4_00\nGenerating package: nfelib.nfe.odoo.v4_0.leiaute_cons_stat_serv_v4_00\nGenerating package: nfelib.nfe.odoo.v4_0.cons_stat_serv_v4_00\nGenerating package: nfelib.nfe.odoo.v4_0.envi_nfe_v4_00\nGenerating package: nfelib.nfe.odoo.v4_0.leiaute_inut_nfe_v4_00\nGenerating package: nfelib.nfe.odoo.v4_0.inut_nfe_v4_00\nGenerating package: nfelib.nfe.odoo.v4_0.nfe_v4_00\nGenerating package: nfelib.nfe.odoo.v4_0.proc_inut_nfe_v4_00\nGenerating package: nfelib.nfe.odoo.v4_0.proc_nfe_v4_00\nGenerating package: nfelib.nfe.odoo.v4_0.ret_cons_reci_nfe_v4_00\nGenerating package: nfelib.nfe.odoo.v4_0.ret_cons_sit_nfe_v4_00\nGenerating package: nfelib.nfe.odoo.v4_0.ret_cons_stat_serv_v4_00\nGenerating package: nfelib.nfe.odoo.v4_0.ret_envi_nfe_v4_00\nGenerating package: nfelib.nfe.odoo.v4_0.ret_inut_nfe_v4_0\n```\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "xsdata Odoo abstract model generator plugin",
"version": "1.0.0",
"project_urls": {
"Source": "https://github.com/akretion/xsdata-odoo"
},
"split_keywords": [
"xsd",
" wsdl",
" schema",
" xml",
" uml",
" odoo",
" generator",
" cli"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "30048a5116de8b835fc2b616ab6cd5f23c34809ea5cefefcc01a775dd7d8db4b",
"md5": "c52e635503632e347c56912e95c8ba4f",
"sha256": "e752b4fe58c7a6c42b810bae6e18503237f89acbea2eaefd23af1aa4d072cfde"
},
"downloads": -1,
"filename": "xsdata_odoo-1.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c52e635503632e347c56912e95c8ba4f",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 20385,
"upload_time": "2025-09-07T14:29:53",
"upload_time_iso_8601": "2025-09-07T14:29:53.897997Z",
"url": "https://files.pythonhosted.org/packages/30/04/8a5116de8b835fc2b616ab6cd5f23c34809ea5cefefcc01a775dd7d8db4b/xsdata_odoo-1.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b89d6596905d79b1d46a369127236699dcaf02197f034672b8ca7a55b79f5d5f",
"md5": "d4d881338e90519093cd696dd7c4dfde",
"sha256": "f1f827f96776708f9a5d8b55654b80d12d006d85dd6f57083976a9da320eae18"
},
"downloads": -1,
"filename": "xsdata_odoo-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "d4d881338e90519093cd696dd7c4dfde",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 20090,
"upload_time": "2025-09-07T14:29:55",
"upload_time_iso_8601": "2025-09-07T14:29:55.110828Z",
"url": "https://files.pythonhosted.org/packages/b8/9d/6596905d79b1d46a369127236699dcaf02197f034672b8ca7a55b79f5d5f/xsdata_odoo-1.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-09-07 14:29:55",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "akretion",
"github_project": "xsdata-odoo",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "xsdata-odoo"
}