Metadata-Version: 2.0
Name: xml-models2
Version: 0.8.0
Summary: XML backed models queried from external REST apis
Home-page: http://github.com/alephnullplex/xml_models
Author: Geoff Ford and Chris Tarttelin and Cam McHugh
Author-email: g_ford@hotmail.ccom
License: UNKNOWN
Platform: UNKNOWN
Requires-Dist: lxml
Requires-Dist: python-dateutil
Requires-Dist: pytz
Requires-Dist: future
Requires-Dist: requests

|Build Status| |Coverage Status|

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/>`__

.. |Build Status| image:: https://travis-ci.org/alephnullplex/xml_models2.svg?branch=master
   :target: https://travis-ci.org/alephnullplex/xml_models2
.. |Coverage Status| image:: https://coveralls.io/repos/alephnullplex/xml_models2/badge.svg?branch=master
   :target: https://coveralls.io/r/alephnullplex/xml_models2?branch=master


