Skip to main content
[![Build Status](https://travis-ci.org/alephnullplex/xml_models2.svg?branch=master)](https://travis-ci.org/alephnullplex/xml_models2)
[![Coverage Status](https://coveralls.io/repos/alephnullplex/xml_models2/badge.svg?branch=master)](https://coveralls.io/r/alephnullplex/xml_models2?branch=master)

[Read The Docs](http://xml-models2.readthedocs.org/en/latest/)

# XmlModels2

XmlModels allows you to define Models similar in nature to Django models that are backed by XML endpoints rather than a
database. Using a familiar declarative definition, the fields map to values in the XML document by means of XPath
expressions. With support for querying external REST APIs using a django-esque approach, we have strived to make
writing and using xml backed models as close to django database models as we can, within the limitations of the
available API calls.

# Installation

The simplest approach is to to use `pip install xml_models2`

# A simple example

Just to get started, this is an example of taking an XML representation of an Address that might be returned from a
GET request to an external REST api.

<Address id="2">
<number>22</number>
<street>Acacia Avenue</street>
<city>Maiden</city>
<country>England</country>
<postcode>IM6 66B</postcode>
</Address>

class Address(xml_models.Model):
id=xml_models.IntField(xpath="/Address/@id")
number = xml_models.IntField(xpath="/Address/number")
street = xml_models.CharField(xpath="/Address/street")
city = xml_models.CharField(xpath="/Address/city")
country = xml_models.CharField(xpath="/Address/country")
postcode = xml_models.CharField(xpath="/Address/postcode")

finders = {(id,): 'http://adresses/%s'}

This example would be used as follows:-

>>> address = Address.objects.get(id=2)
>>> print "address is %s, %s" % (address.number, address.street)
"22, Acacia Avenue"

# Heritage

This project is a fork of [Django REST Models](http://djangorestmodel.sourceforge.net/)

Release files for xml_models2 0.11.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for xml_models2 0.11.1
File Size Uploaded
xml_models2-0.11.1.zip 13.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for xml_models2 0.11.1
File Interpreter ABI Platform
xml_models2-0.11.1-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size:26.6 kB

Release files / xml_models2-0.11.1.zip

Download URL xml_models2-0.11.1.zip
Size 13.5 kB
Tags Source
SHA-256 checksum
How to use checksums
45a1704fef9c03962da40b2c4a535eb974fc108c2977f856fcbbd4dae4a8cecd
BLAKE2b-256 checksum
How to use checksums
5679202fe19e3fe8b3c43fc77b74c5f1e9a7106e5060242996ba46ef2093ef89
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / xml_models2-0.11.1-py2.py3-none-any.whl

Download URL xml_models2-0.11.1-py2.py3-none-any.whl
Size 13.1 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
a801a9f0fb2598745b0039d3b88eb4830214d75275906f013055dde81a22e214
BLAKE2b-256 checksum
How to use checksums
b169060b5b9c61538173c356e02d679bce0958e373aec4ab3349a50b5badd2a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.11.1 This release

2 release files

0.11.0

2 release files

0.10.0

2 release files

0.9.2

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.1

2 release files

0.7.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page