Coder Social home page Coder Social logo

python-pyodata's Introduction

Build Status Lint Status PyPI version codecov REUSE status

Python OData Client - pyodata

Python OData client which provides comfortable Python agnostic way for communication with OData services.

The goal of this Python module is to hide all OData protocol implementation details.

Supported features

  • OData V2

Requirements

Download and Installation

Install and update using pip:

pip install -U pyodata

Configuration

You can start building your OData projects straight away after installing the Python module without any additional configuration steps needed.

Limitations

There have been no limitations discovered yet.

Known Issues

There are no known issues at this time.

How to obtain support

We accept bug reports, feature requests, questions and comments via GitHub issues

Usage

The only thing you need to do is to import the pyodata Python module and provide an object implementing interface compatible with Session Object for the library Requests.

import requests
import pyodata

SERVICE_URL = 'http://services.odata.org/V2/Northwind/Northwind.svc/'

# Create instance of OData client
client = pyodata.Client(SERVICE_URL, requests.Session())

Find more sophisticated examples in The User Guide.

Contributing

Please, go through the Contributing guideline.

Authoring a patch

Here's an example workflow for a project PyOData hosted on Github Your username is yourname and you're submitting a basic bugfix or feature.

  • Hit 'fork' on Github, creating e.g. yourname/PyOData.
  • git clone [email protected]:yourname/PyOData
  • git checkout -b foo_the_bars to create new local branch named foo_the_bars
  • Hack, hack, hack
  • Run python3 -m pytest or make check
  • git status
  • git add
  • git commit -s -m "Foo the bars"
  • git push -u origin HEAD to create foo_the_bars branch in your fork
  • Visit your fork at Github and click handy "Pull request" button.
  • In the description field, write down issue number (if submitting code fixing an existing issue) or describe the issue + your fix (if submitting a wholly new bugfix).
  • Hit 'submit'! And please be patient - the maintainers will get to you when they can.

License

Copyright (c) 2023 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file

python-pyodata's People

Contributors

allan-cedric avatar bartonip avatar cvakiitho avatar fedarsialitski avatar filak-sap avatar inxonic avatar jfilak avatar ksaito1125 avatar linda-sap avatar lkurija12 avatar lubosmj avatar mamiksik avatar manuelseeger avatar masterchen09 avatar mnezerka avatar omnitroid avatar phanak-sap avatar rettichschnidi avatar s7oev avatar sephii avatar sergeibershadsky avatar simonbru avatar sti0 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

python-pyodata's Issues

differentiate empty date

Hi,
Recently i am using pyodata to retrieve backend data.

Issue is that i still receive a datetime object (2000,01,01) for a date that is empty at the backend. And i saw this is the default date set during initialization.
Is there a way to tell whether the date i received is empty or it's a real date that is 2000 jan 1st.

Thanks.

Issue - TypeError: replace() got an unexpected keyword argument 'tzinfo'

I got the below-mentioned error while passing DateTime during post-operation (create entity set)
TypeError: replace() got an unexpected keyword argument 'tzinfo'

I am trying to pass date time in a pandas data frame with the following statement
dt.datetime.utcnow()

Here is the Code Snippets


def prepare_data():
df = pd.DataFrame({"DealerCode":["D01"],
"DateTime":[dt.datetime.utcnow()],
"YearMonth" :["052020"],
"TransactionCode":["T01"],
"Type":["DR"],
"Amount":[24],
"Currency":["AUD"]
})
return df


data = prepare_data()
create_request = service.entity_sets.Transaction.create_entity()
create_request.set(**data)
new_data = create_request.execute()

Getting "KeyError: 'd'" when reading XML OData

I'm trying to read from this site:
http://knesset.gov.il/Odata/ParliamentInfo.svc/

The site is in XML and every table is saved in XML too.
For example:
http://knesset.gov.il/Odata/ParliamentInfo.svc/KNS_Agenda

When reading with python-pyodata, there is a key error when trying to get entities.

Code:

import requests
import pyodata

SERVICE_URL = 'http://knesset.gov.il/Odata/ParliamentInfo.svc/'

# Create instance of OData client
client = pyodata.Client(SERVICE_URL, requests.Session())

# This is the problematic line
a = client.entity_sets.KNS_Agenda.get_entities().execute()

The exception:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/ubuntu/.local/lib/python3.6/site-packages/pyodata/v2/service.py", line 305, in execute
    return self._handler(response)
  File "/home/ubuntu/.local/lib/python3.6/site-packages/pyodata/v2/service.py", line 1102, in get_entities_handler
    entities = content['d']['results']
KeyError: 'd'

Is there a way to fix this?

Thanks in advance,

nullable is incorrectly parsed from metadata

The following code is used to parse 'nullable' parameter from metadata:
self._nullable = bool(nullable) (VariableDeclaration line #606)

The problem is that 'nullable' parameter is passed as a string value ("true" or "false") or None. So bool(nullable) treats both "true" and "false" values as True. Moreover, the default or missing value (None) should be treated as nullable, but it's not.

Handle partial success of a batch request

Hi everyone. I work on a big project that uses pyodata library for making batch requests and some times only one or more sub requests have failed and others are successful but the library throws an error and the problem here that I can't handle successful responses but I really need to. For my own use I've created a tricky solution for this but I'd like to know if there's a proper way to deal with such situations? Can this situation be handled with the current version of the library? If answers for the above questions are no I can prepare PR from what I have in production ( which will give user a choice between old and new behaviour) of course if such functionality is something that the library can adopt

PyPi

Code, downloaded by pip install doesn't match with code from this repository. Because of this I had an error with checking if metadata is XML

Using pyodata with old MS CRM 2015

Hi,

Thank you for this wonderfull piece of code.
pyodata can also be used successfully with MS CRM 2015 with 2 minors changes :

  • the first one is to change PATCH method by MERGE Method in service.py (MS CRM 365 is now using PATCH)
  • the second one is a small try/catch in EdmStructTypeSerializer.from_json to avoid some None result
    that raise an exception (At the end of this report)

Is there a way to integrate these changes in a vendor specific python file as it exists for SAP ?

Change made in def from_json(edm_type, value):

            if type_prop.name in value:
>               try:
                   result[type_prop.name] = type_prop.typ.traits.from_json(value[type_prop.name])
>               except (TypeError, AttributeError):
>                  modlog().warning(value)
        return result

This catchs the following errors in MS CRM 2015 to trap None 'Value' :

WARNING:pyodata.model:{'__metadata': {'type': 'Microsoft.Crm.Sdk.Data.Services.EntityReference'}, 'Id': 'f3d1cca6-0313-e711-80be-005056011e04', 'LogicalName': 'systemuser', 'Name': None} WARNING:pyodata.model:{'__metadata': {'type': 'Microsoft.Crm.Sdk.Data.Services.EntityReference'}, 'Id': None, 'LogicalName': None, 'Name': None} WARNING:pyodata.model:{'__metadata': {'type': 'Microsoft.Crm.Sdk.Data.Services.OptionSetValue'}, 'Value': None}

More than 1000 records

I'm using pyodata to get data from odata service but but I'm getting only the first 1000 records. help me how to get it:

count = theservice.entity_sets.Resources.get_entities().count().execute()
print(count)

7909

BUT

recursos = theservice.entity_sets.Resources.get_entities().skip(100).top(8000).execute()
df2_recursos = pd.DataFrame(columns=['ResourceId', 'ResourceEmailAddress','ResourceName'])
for i,recurso in enumerate(recursos):
        df2_recursos.loc[i] = {'ResourceId': recurso.ResourceId, 'ResourceEmailAddress': recurso.ResourceEmailAddress, 'ResourceName': recurso.ResourceName}

df2_recursos.shape

(1000, 3)

Query returns valid json but gives an error

I'm using pyodata to query a web service and the service responds with a valid Json but I still get an error message on the test script:

Traceback (most recent call last):
  File "C:\python\navodata.py", line 30, in <module>
    result = navservice.entity_sets.Customer_Card.get_entity('123456').execute()
  File "C:\Python\Python37-32\lib\site-packages\pyodata\v2\service.py", line 305, in execute
    return self._handler(response)
  File "C:\Python\Python37-32\lib\site-packages\pyodata\v2\service.py", line 1074, in get_entity_handler
    entity = response.json()['d']
KeyError: 'd'

Included in the whole debug output.
output.txt

Unable to get list of keys from entity

How can I get all available keys for an entity? Problem is that sometimes keys are not available so I get an AttributeError.

example:
order[0].entity_key returns the key, e.g. '005056BA7CF71ED8A99DE9B1C85DAAF6'
order[0].ZPoMaterial gives the value for the attribute material number, e.g. 'N000000004700'
Sometimes Material number is not given. I want to check for all the available attributes/keys

Help - effective dated data

Hello, I'm hoping someone can help me. I've having an issue with Pyodata and using it to pull effective-dated Position entries from SAP SuccessFactors. For example, I'd like to be able to say give me all Position entries since 12/31/2018 for position '1795.' In my case it should return 3 entries, one effective 1/15/2019, one effective 12/8/2019, and one effective 3/14/2020. The data on each row may be slightly different depending on what was changed on those dates.

With a REST client called Postman, I successfully get the three expected entries using the following URL:
"https://xxx.successfactors.com/odata/v2/Position?$filter=code+eq+'1795'&fromDate=2018-12-31"

Unfortunately, I can't get the same result from PyOData, no matter what I do. I'm able to get the latest entry without issue, but once I start specifying dates, it still only seems to pull the latest entry. I've tried an embarrassing number of variations on the code below, but I still can't seem to get it to work.

SERVICE_URL = "https://xxx.successfactors.com/odata/v2
session = requests.Session()
session.auth = ('xxx', 'xxx')
mySF = pyodata.Client(SERVICE_URL, session)
myRequest = mySF.entity_sets.Position.get_entities().filter("code eq '1795' and fromDate=2018-12-31").execute()

Things I've tried:

  • Changing "=" to "eq" or "gt" or "ge" or even "ne" and choosing a date I don't want in hope that all the others will be returned
  • Using effectiveStartDate instead of fromDate. According to Successfactors docs, fromDate is a "global Employee Central parameter and not a standard OData parameter." When I use fromDate, I get and HTTP 500 error because whatever request pyodata is submitting, it doesn't like the name fromtDate. When I use an actual field in the entity, effectiveStartDate, I only get the latest effective dated row - not all of them.
  • Many changes to the date/datetime format
  • Adding the filter in the URL itself, but then I run into metadata issues
  • So many other things, really.

At any rate, I'm about to give up. Pyodata could really be useful for some additional SF reporting, but only if I can get access to effective dated rows. Any ideas that I could try?

Date value out of range

I'm using pyodata to get data from an url. Since the url contains a too far date in the past like "<d:StartDate>0001-01-01T00:00:00</d:StartDate>" I'm geting this error :"
value = datetime.datetime(1970, 1, 1, tzinfo=datetime.timezone.utc) + datetime.timedelta(milliseconds=int(value))
OverflowError: date value out of range"

Any help please

Asma

Update .gitignore

Gitignore should be updated to include the following files or folders:

  • .coverage - coverage report file
  • ./htmlcov - coverage html report
  • .idea - PyCharm stuff
  • ./venv - python virtual enviroment

Unable to create/post record through odata service

I was able the read the data, but
Tried Creating the record in SAP Hana db using this code, but unsuccessful

create_request = theservice.entity_sets.STAFF.create_entity()
create_request.set(
    STAFFID = '55243',
    STAFFNAME = 'Rodert Jane',
    EMAIL = '[email protected]'
)

getting this error


File "C:\PythonProgram\lib\site-packages\pyodata\v2\service.py", line 1105, in create_entity_handler
.format(self._name, response.status_code), response)
pyodata.exceptions.HttpError: HTTP POST for Entity Set STAFF failed with status code 403

Please help

No entities loaded from metadata

I'm trying to use pyodata to read a webservice published in dynamics nav 2018. It seems to have successfully loaded the metadata but when I try to print the entites it comes up empty.

Here's the code:

import requests
import pyodata
from requests_ntlm import HttpNtlmAuth
from pyodata.v2.model import Config

odatav2 = 'http://localhost/testing/OData/'

namespaces = {
    'edm': 'http://localhost/testing/OData/$metadata'
}
custom_config = Config(xml_namespaces=namespaces)

session = requests.Session()
session.auth = HttpNtlmAuth('username', 'password'')

navservice = pyodata.Client(odatav2, session, config=custom_config)

for es in navservice.schema.entity_sets:
    print(es.name)

print('End of script')

Enclosed is the metadata as is shown in a browser. The script simply prints no entities.

metadata.zip

HttpError: Metadata request did not return XML (Again)

Hi there! Running into an issue that you've encountered before but the fixes from #7 and #11 aren't working for me.

OS: Windows 10 Pro
Python 3.6.6 |Anaconda, Inc.| (default, Jun 28 2018, 11:27:44) [MSC v.1900 64 bit (AMD64)] on win32

certifi 2018.10.15
chardet 3.0.4
enum34 1.1.6
idna 2.7
lxml 4.2.5
pip 19.2.3
pyodata 1.2.3
requests 2.19.1
setuptools 28.8.0
urllib 1.23

Steps to reproduce:
import pyodata
import requests

samples_url = "https://soil-chem.information.qld.gov.au/odata/Samples"

api = pyodata.Client(samples_url, requests.Session())

Expected results:
A new client object

Actual result:
File "", line 1, in
runfile('file path', wdir='C:/Users/Ryan Joshua LI/Desktop/DSM Datathon/Code')

File "file path\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 668, in runfile
execfile(filename, namespace)

File "file path\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 108, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)

File "file path", line 8, in
api = pyodata.Client(results_url, requests.Session())

File "file path\Anaconda3\lib\site-packages\pyodata\client.py", line 43, in new
resp)

HttpError: Metadata request did not return XML, MIME type: text/html, body:
...... (adding anymore loses a lot of it)

Same error returned by the following URLs:
https://soil-chem.information.qld.gov.au/odata/SiteLabMethod
https://soil-chem.information.qld.gov.au/odata/SiteLabMethodResults

Any help would be very much appreciated! Thanks!

Custom config does not allow bypassing of erroneous service metadata

Hi,
I'm running off commit d218e80 (sourced from GitHub repo, not PyPI; on 13 Oct 2019).

My SAP service metadata appears to have errors, and I want to bypass the erroneous service metadata (I don't use those erroneous parts).

I understand that the objective of having custom config is to allow us to get around erroneous service metadata which we do not control. To achieve this purpose, is it possible to not have the system dump, but to still return the Client object?

Below is an excerpt of the error, with full source and output in attached Word document.

GitHub Issue - Custom config does not allow bypassing of erroneous service metadata.docx

WARNING: Ignoring qualified Annotations of RE_CN_CONTRACT_ODATA.VL_SH_REMMMNC/RESPONSIBLE
WARNING: Ignoring qualified Annotations of RE_CN_CONTRACT_ODATA.VL_SH_REMMMNC/RESPONSIBLE
WARNING: Ignoring qualified Annotations of RE_CN_CONTRACT_ODATA.VL_SH_REMMMNC/RESPONSIBLE

KeyError Traceback (most recent call last)
C:\ProgramData\Anaconda3\lib\site-packages\pyodata\v2\model.py in proprty(self, value)
2101 try:
-> 2102 param.local_property = etype.proprty(param.local_property_name)
2103 except KeyError:

C:\ProgramData\Anaconda3\lib\site-packages\pyodata\v2\model.py in proprty(self, property_name)
1193 def proprty(self, property_name):
-> 1194 return self._properties[property_name]
1195

KeyError: 'Recntype'

During handling of the above exception, another exception occurred:

RuntimeError Traceback (most recent call last)
in
20 )
21
---> 22 service = pyodata.Client(SERVICE_URL, session, config=custom_config)

C:\ProgramData\Anaconda3\lib\site-packages\pyodata\client.py in new(cls, url, connection, odata_version, namespaces, config)
57 # create model instance from received metadata
58 logger.info('Creating OData Schema (version: %d)', odata_version)
---> 59 schema = pyodata.v2.model.MetadataBuilder(resp.content, config=config).build()
60
61 # create service instance based on model we have

C:\ProgramData\Anaconda3\lib\site-packages\pyodata\v2\model.py in build(self)
2458
2459 edm_schemas = xml.xpath('/edmx:Edmx/edmx:DataServices/edm:Schema', namespaces=self._config.namespaces)
-> 2460 schema = Schema.from_etree(edm_schemas, self._config)
2461 return schema
2462

C:\ProgramData\Anaconda3\lib\site-packages\pyodata\v2\model.py in from_etree(schema_nodes, config)
1168 config.err_policy(ParserError.ANNOTATION).resolve(ex)
1169 else:
-> 1170 annotation.proprty = target_proprty
1171 target_proprty.value_helper = annotation
1172

C:\ProgramData\Anaconda3\lib\site-packages\pyodata\v2\model.py in proprty(self, value)
2103 except KeyError:
2104 raise RuntimeError('{0} of {1} points to an non existing LocalDataProperty {2} of {3}'.format(
-> 2105 param, self, param.local_property_name, etype))
2106
2107 @Property

RuntimeError: ValueHelperParameter(Recntype) of ValueHelper(ContractObjectData/Objid_IS) points to an non existing LocalDataProperty Recntype of EntityType(ContractObjectData)

EDM.Float not known

Hello everybody,
I'm using pyodata to read a custom odata service implemented in the SAP Salescloud.
One of my attributes has the datatype Float and it seems, pyodata cannot handle it.
I got the following error message:

"pyodata.exceptions.PyODataModelError: Neither primitive types nor types parsed from service metadata contain requested type Edm.Float"

from the following module
File "C:\Anaconda3\lib\site-packages\pyodata\v2\model.py", line 1009, in from_etree
prop.typ = schema.get_type(prop.type_info)
File "C:\Anaconda3\lib\site-packages\pyodata\v2\model.py", line 843, in get_type
.format(type_info.name))

Can you please fix this as soon as possible? I want to use this package to migrate data from an old non SAP system into the Salescloud for our customer.

Thanks in advance
Thorsten

Be able to turn of "Unsupported Annotation" warning

That warning is useful only for Metadata validation purposes when you need to make sure all your Annontations were checked.

Example:

WARNING:pyodata.model:Unsupported Annotation(Common.SemanticKey)
WARNING:pyodata.model:Unsupported Annotation(Common.SemanticObject)
WARNING:pyodata.model:Unsupported Annotation(UI.HeaderInfo)

HttpError: Metadata request did not return XML

OS: Win 7 x64
Python 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:04:45) [MSC v.1900 32 bit (Intel)] on win32

Package Version


certifi 2018.11.29
chardet 3.0.4
enum34 1.1.6
idna 2.8
lxml 3.7.3
pip 19.0.3
pyodata 1.1.1
requests 2.21.0
setuptools 28.8.0
urllib3 1.24.1

Steps to reproduce:

import requests
import pyodata

client = pyodata.Client('http://services.odata.org/V4/Northwind/Northwind.svc/', requests.Session())

expected result:

A new client object

actual result:

Traceback (most recent call last):
File "", line 1, in
File "D:\Workspace\PythonAPIDemo\lib\site-packages\pyodata\client.py", line 43
, in new
resp)
pyodata.exceptions.HttpError: Metadata request did not return XML, MIME type: application/xml;charset=utf-8, body:
b'\r\n<edmx:Edmx Version="1.0" xmlns:edmx="http://schemas.microsoft.com/ado/2007/06/edmx">\r\n <edmx:DataServices xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" m:DataServiceVersion="1.0">\r\n \r\n ...

404 error on initial $metadata query?

hi, just starting to try to use your OData client for a Legistar service here in Oakland.

but http://webapi.legistar.com/v1/oakland/$metadata fails, and it seems getting this metadata is key to the rest of your library.

(note, queries like http://webapi.legistar.com/v1/oakland/events work as expected.)

thanks for any pointers, Rik

MS Dynamics 2015 use MERGE instead of PATCH

Hi Filak,

To update data, MS Dynamics 2015 use MERGE method instead PATCH (Latest version are now using PATCH method).

Hack is very easy in service.py :
`

   # pylint: disable=no-self-use
    #return 'PATCH'
    return 'MERGE'

`

But is there a way to integrate these changes in a vendor specific python file as it exists for SAP
instead of breaking the lib ?

requests missing in requirements.txt

The mandatory library requests is missing in requirements (after installing pyodata over pip install pyodata):

Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 17:00:18) [MSC v.1900 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> import pyodata
Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    import pyodata
  File "C:\Program Files\Python 3.6.5\lib\site-packages\pyodata\__init__.py", line 3, in <module>
    from .client import Client
  File "C:\Program Files\Python 3.6.5\lib\site-packages\pyodata\client.py", line 7, in <module>
    import pyodata.v2.service
  File "C:\Program Files\Python 3.6.5\lib\site-packages\pyodata\v2\service.py", line 17, in <module>
    import requests
ModuleNotFoundError: No module named 'requests'

Boolean is not supported

CalculatePoEScore c4codata.SellingPointValuation TypeInfo(namespace='c4codata', name='SellingPointValuation', is_collection=False)
CalculateScore c4codata.StoreValuation TypeInfo(namespace='c4codata', name='StoreValuation', is_collection=False)
CheckAppointmentByGroupwareID Collection(c4codata.Boolean) TypeInfo(namespace='c4codata', name='Boolean', is_collection=True)
Traceback (most recent call last):
File "C:/dev/PyOdataTest/pyodata_test.py", line 19, in
my_service = pyodata.Client(SERVICE_URL, session)
File "C:\dev\python-pyodata\pyodata\client.py", line 68, in new
schema = pyodata.v2.model.MetadataBuilder(metadata, config=config).build()
File "C:\dev\python-pyodata\pyodata\v2\model.py", line 2499, in build
schema = Schema.from_etree(edm_schemas, self._config)
File "C:\dev\python-pyodata\pyodata\v2\model.py", line 1139, in from_etree
efn.return_type = schema.get_type(efn.return_type_info)
File "C:\dev\python-pyodata\pyodata\v2\model.py", line 878, in get_type
raise PyODataModelError(
pyodata.exceptions.PyODataModelError: Neither primitive types nor types parsed from service metadata contain requested type Boolean

'NoneType' object has no attribute 'split'

Hi,

I'm trying to make a connection to the Reporting API from Topdesk, but it doesn't seem to work.

OS: Windows 10 Pro
Python: 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 22:45:29) [MSC v.1916 32 bit (Intel)]

certifi | 2019.11.28 | 2019.11.28
chardet | 3.0.4 | 3.0.4
idna | 2.9 | 2.9
lxml | 4.5.0 | 4.5.0
pip | 19.2.3 | 20.0.2
pyodata | 1.3.0 | 1.3.0
requests | 2.23.0 | 2.23.0
setuptools | 41.2.0 | 45.2.0
urllib3 | 1.25.8 | 1.25.8

Code:

import pyodata
import requests

url = 'https://.topdesk.net/services/reporting/v2/odata/'
session = requests.Session()
session.auth = ('','')

client = pyodata.Client(url, session)

Expected:

A new client object

Result:
Traceback (most recent call last):
File "C:/Users//first.py", line 8, in
client = pyodata.Client(url, session)
File "C:\Users<my-user>\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pyodata\client.py", line 59, in new
schema = pyodata.v2.model.MetadataBuilder(resp.content, config=config).build()
File "C:\Users<my-user>\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pyodata\v2\model.py", line 2460, in build
schema = Schema.from_etree(edm_schemas, self._config)
File "C:\Users<my-user>\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pyodata\v2\model.py", line 991, in from_etree
config.err_policy(ParserError.ENTITY_TYPE).resolve(ex)
File "C:\Users<my-user>\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pyodata\v2\model.py", line 59, in resolve
raise ekseption
File "C:\Users<my-user>\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pyodata\v2\model.py", line 989, in from_etree
etype = EntityType.from_etree(entity_type, config)
File "C:\Users<my-user>\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pyodata\v2\model.py", line 1388, in from_etree
navp = NavigationTypeProperty.from_etree(proprty)
File "C:\Users<my-user>\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pyodata\v2\model.py", line 1705, in from_etree
node.get('Name'), node.get('FromRole'), node.get('ToRole'), Identifier.parse(node.get('Relationship')))
File "C:\Users<my-user>\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pyodata\v2\model.py", line 156, in parse
parts = value.split('.')
AttributeError: 'NoneType' object has no attribute 'split'

Note: I'm using PyCharm without any virtual environment

As I think you will understand, I've had to replace some things. As a result you will not be able to reproduce my situation, but I still hope you'll be able to find out if I'm doing something wrong or if there is any bug in the library.

Thank you!

Permissive parser

Currently, the $metadata parser terminates parsing for any issue it finds in the input. We need to identify non-critical problems which we can report & ignore.

We need to support 2 use cases:

  • parse any $metadata with reporting problems but without termination
  • strict validation of $metadata

Delete Request in Batch Mode, need header

Hello,

when we run delete requests in Batch Mode, it raises an exception:

...service.py", line 57, in encode_multipart
for hdr, hdr_val in req.get_headers().items():
AttributeError: 'NoneType' object has no attribute 'items'

So we need to define the get_header() method for EntityDeleteRequest(ODataHttpRequest), e.g. like this:

def get_headers(self):
return {'Accept': 'application/json'}

I would like to pull a request and do the bugfix.

Unable to import Policies - PIP package not up to date

Using version 1.2.3 from PIP. I have a problem with accessing a specific API. I'm receiving an error:

.virtualenvs/project/lib/python3.6/site-packages/pyodata/v2/model.py", line 138, in parse_type_name
    is_collection = type_name.lower().startswith('collection(') and type_name.endswith(')')
AttributeError: 'NoneType' object has no attribute 'lower'

In the docs I found information that this can be due to invalid metadata. I've tried to overcome the issue as advised in the docs:

import pyodata
from pyodata.v2.model import PolicyFatal, PolicyWarning, PolicyIgnore, ParserError, Config
import requests

SERVICE_URL = 'http://services.odata.org/V2/Northwind/Northwind.svc/'

namespaces = {
    'edmx': 'customEdmxUrl.com',
    'edm': 'customEdmUrl.com'
}

custom_config = Config(
    xml_namespaces=namespaces,
    default_error_policy=PolicyFatal(),
    custom_error_policies={
         ParserError.ANNOTATION: PolicyWarning(),
         ParserError.ASSOCIATION: PolicyIgnore()
    })

northwind = pyodata.Client(SERVICE_URL, requests.Session(), config=custom_config)

The problem is that PolicyFatal, PolicyWarning and PolicyIgnore are not in the model.py, so I can't import them. Is it a bug or am I using a wrong version? I installed it from PIP, it's pyodata 1.2.3.

ubale to connect

Hi,

I am unable to connect and below is the error message and my code .

my code.
import requests
import pyodata

urllink = 'http://citrixdc.bluepedia.com/Citrix/Monitor/OData/v3/Data/'
client = pyodata.Client(urllink,requests.Session()

and below is the error message

Traceback (most recent call last):
File "C:/Users/administrator/PycharmProjects/citrixodata/citrixodata.py", line 5, in
client = pyodata.Client(urllink,requests.Session())
File "C:\Users\administrator\PycharmProjects\citrixodata\venv\lib\site-packages\pyodata\client.py", line 37, in new
'Metadata request failed, status code: {}, body:\n{}'.format(resp.status_code, resp.content), resp)
pyodata.exceptions.HttpError: Metadata request failed, status code: 401, body:
b''

and the url preview is as below.

-

-

atom:titleDefault</atom:title>

-

atom:titleApplicationActivitySummaries</atom:title>

-

atom:titleApplications</atom:title>

-

atom:titleApplicationInstances</atom:title>

-

atom:titleSessions</atom:title>

-

atom:titleApplicationErrors</atom:title>

-

atom:titleMachines</atom:title>

-

atom:titleApplicationFaults</atom:title>

-

atom:titleCatalogs</atom:title>

-

atom:titleLoadIndexes</atom:title>

-

atom:titleDesktopGroups</atom:title>

-

atom:titleResourceUtilization</atom:title>

-

atom:titleResourceUtilizationSummary</atom:title>

-

atom:titleHypervisors</atom:title>

-

atom:titleMachineFailureLogs</atom:title>

-

atom:titleMachineHotfixLogs</atom:title>

-

atom:titleHotfixes</atom:title>

-

atom:titleMachineMetric</atom:title>

-

atom:titleMachineMetricSummary</atom:title>

-

atom:titleProcesses</atom:title>

-

atom:titleProcessUtilization</atom:title>

-

atom:titleProcessUtilizationDaySummary</atom:title>

-

atom:titleProcessUtilizationHourSummary</atom:title>

-

atom:titleProcessUtilizationMinuteSummary</atom:title>

-

atom:titleConnectionFailureLogs</atom:title>

-

atom:titleConnections</atom:title>

-

atom:titleConnectionFailureCategories</atom:title>

-

atom:titleSessionMetrics</atom:title>

-

atom:titleUsers</atom:title>

-

atom:titleDesktopOSDesktopSummaries</atom:title>

-

atom:titleFailureLogSummaries</atom:title>

-

atom:titleLoadIndexSummaries</atom:title>

-

atom:titleNotificationActionEmails</atom:title>

-

atom:titleNotificationRuleActions</atom:title>

-

atom:titleNotificationRules</atom:title>

-

atom:titleNotificationRuleGroups</atom:title>

-

atom:titleNotificationRuleParameters</atom:title>

-

atom:titleNotificationRuleParameterChangeLogs</atom:title>

-

atom:titleNotificationRuleTargets</atom:title>

-

atom:titleNotificationRuleTargetValues</atom:title>

-

atom:titleNotificationEmailAddresses</atom:title>

-

atom:titleNotificationEmailServerConfigurations</atom:title>

-

atom:titleNotifications</atom:title>

-

atom:titleNotificationsLogs</atom:title>

-

atom:titleNotificationTargets</atom:title>

-

atom:titleNotificationTargetValues</atom:title>

-

atom:titleNotificationSnmpConfigurations</atom:title>

-

atom:titleServerOSDesktopSummaries</atom:title>

-

atom:titleSessionActivitySummaries</atom:title>

-

atom:titleTaskLogs</atom:title>

Can't parse $metadata

The following $metadata does not seem to be able to be parsed by pyodata. Any ideas on what makes it problematic? It may be related to #16.

<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
  <edmx:DataServices>
    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="ODataService">
      <EntityType Name="Office">
        <Key>
          <PropertyRef Name="OfficeKey"/>
        </Key>
        <Property Name="BridgeModificationTimestamp" Type="Edm.DateTimeOffset" Precision="27">
          <Annotation Term="RESO.OData.Metadata.TEST"/>
        </Property>
        <Property Name="Media" Type="ODataService.Media">
          <Annotation Term="RESO.OData.Metadata.TEST"/>
        </Property>
        <Property Name="FranchiseAffiliation" Type="Edm.String" MaxLength="50"/>
        <Property Name="IDXOfficeParticipationYN" Type="Edm.Boolean"/>
        <Property Name="MainOfficeKey" Type="Edm.String" MaxLength="255"/>
        <Property Name="MainOfficeKeyNumeric" Type="Edm.Int64" Precision="255"/>
        <Property Name="MainOfficeMlsId" Type="Edm.String" MaxLength="25"/>
        <Property Name="ModificationTimestamp" Type="Edm.DateTimeOffset" Precision="27"/>
        <Property Name="OfficeAOR" Type="OfficeEnums.OfficeAOR" MaxLength="50"/>
        <Property Name="OfficeAORMlsId" Type="Edm.String" MaxLength="25"/>
        <Property Name="OfficeAORkey" Type="Edm.String" MaxLength="255"/>
        <Property Name="OfficeAORkeyNumeric" Type="Edm.Int64" Precision="255"/>
        <Property Name="OfficeAddress1" Type="Edm.String" MaxLength="50"/>
        <Property Name="OfficeAddress2" Type="Edm.String" MaxLength="50"/>
        <Property Name="OfficeAssociationComments" Type="Edm.String" MaxLength="500"/>
        <Property Name="OfficeBranchType" Type="OfficeEnums.OfficeBranchType" MaxLength="50"/>
        <Property Name="OfficeBrokerKey" Type="Edm.String" MaxLength="255"/>
        <Property Name="OfficeBrokerKeyNumeric" Type="Edm.Int64" Precision="255"/>
        <Property Name="OfficeBrokerMlsId" Type="Edm.String" MaxLength="25"/>
        <Property Name="OfficeCity" Type="Edm.String" MaxLength="50"/>
        <Property Name="OfficeCorporateLicense" Type="Edm.String" MaxLength="50"/>
        <Property Name="OfficeCountyOrParish" Type="OfficeEnums.OfficeCountyOrParish" MaxLength="50"/>
        <Property Name="OfficeEmail" Type="Edm.String" MaxLength="80"/>
        <Property Name="OfficeFax" Type="Edm.String" MaxLength="16"/>
        <Property Name="OfficeKey" Type="Edm.String" MaxLength="255"/>
        <Property Name="OfficeKeyNumeric" Type="Edm.Int64" Precision="255"/>
        <Property Name="OfficeManagerKey" Type="Edm.String" MaxLength="255"/>
        <Property Name="OfficeManagerKeyNumeric" Type="Edm.Int64" Precision="255"/>
        <Property Name="OfficeManagerMlsId" Type="Edm.String" MaxLength="25"/>
        <Property Name="OfficeMlsId" Type="Edm.String" MaxLength="25"/>
        <Property Name="OfficeName" Type="Edm.String" MaxLength="255"/>
        <Property Name="OfficeNationalAssociationId" Type="Edm.String" MaxLength="25"/>
        <Property Name="OfficePhone" Type="Edm.String" MaxLength="16"/>
        <Property Name="OfficePhoneExt" Type="Edm.String" MaxLength="10"/>
        <Property Name="OfficePostalCode" Type="Edm.String" MaxLength="10"/>
        <Property Name="OfficePostalCodePlus4" Type="Edm.String" MaxLength="4"/>
        <Property Name="OfficeStateOrProvince" Type="OfficeEnums.OfficeStateOrProvince" MaxLength="2"/>
        <Property Name="OfficeStatus" Type="OfficeEnums.OfficeStatus" MaxLength="25"/>
        <Property Name="OfficeType" Type="OfficeEnums.OfficeType" MaxLength="50"/>
        <Property Name="OriginalEntryTimestamp" Type="Edm.DateTimeOffset" Precision="27"/>
        <Property Name="OriginatingSystemID" Type="Edm.String" MaxLength="25"/>
        <Property Name="OriginatingSystemName" Type="Edm.String" MaxLength="255"/>
        <Property Name="OriginatingSystemOfficeKey" Type="Edm.String" MaxLength="255"/>
        <Property Name="SocialMediaType" Type="OfficeEnums.SocialMediaType" MaxLength="25"/>
        <Property Name="SourceSystemID" Type="Edm.String" MaxLength="25"/>
        <Property Name="SourceSystemName" Type="Edm.String" MaxLength="255"/>
        <Property Name="SourceSystemOfficeKey" Type="Edm.String" MaxLength="255"/>
        <Property Name="SyndicateAgentOption" Type="OfficeEnums.SyndicateAgentOption" MaxLength="50"/>
        <Property Name="SyndicateTo" Type="OfficeEnums.SyndicateTo" MaxLength="1024"/>
      </EntityType>
      <EntityType Name="Member">
        <Key>
          <PropertyRef Name="MemberKey"/>
        </Key>
        <Property Name="BridgeModificationTimestamp" Type="Edm.DateTimeOffset" Precision="27">
          <Annotation Term="RESO.OData.Metadata.TEST"/>
        </Property>
        <Property Name="Media" Type="ODataService.Media">
          <Annotation Term="RESO.OData.Metadata.TEST"/>
        </Property>
        <Property Name="JobTitle" Type="Edm.String" MaxLength="50"/>
        <Property Name="LastLoginTimestamp" Type="Edm.DateTimeOffset" Precision="27"/>
        <Property Name="MemberAOR" Type="MemberEnums.MemberAOR" MaxLength="50"/>
        <Property Name="MemberAORMlsId" Type="Edm.String" MaxLength="25"/>
        <Property Name="MemberAORkey" Type="Edm.String" MaxLength="255"/>
        <Property Name="MemberAORkeyNumeric" Type="Edm.Int64" Precision="255"/>
        <Property Name="MemberAddress1" Type="Edm.String" MaxLength="50"/>
        <Property Name="MemberAddress2" Type="Edm.String" MaxLength="50"/>
        <Property Name="MemberAssociationComments" Type="Edm.String" MaxLength="500"/>
        <Property Name="MemberCarrierRoute" Type="Edm.String" MaxLength="9"/>
        <Property Name="MemberCity" Type="Edm.String" MaxLength="50"/>
        <Property Name="MemberCountry" Type="MemberEnums.MemberCountry" MaxLength="2"/>
        <Property Name="MemberCountyOrParish" Type="MemberEnums.MemberCountyOrParish" MaxLength="50"/>
        <Property Name="MemberDesignation" Type="MemberEnums.MemberDesignation" MaxLength="50"/>
        <Property Name="MemberDirectPhone" Type="Edm.String" MaxLength="16"/>
        <Property Name="MemberEmail" Type="Edm.String" MaxLength="80"/>
        <Property Name="MemberFax" Type="Edm.String" MaxLength="16"/>
        <Property Name="MemberFirstName" Type="Edm.String" MaxLength="50"/>
        <Property Name="MemberFullName" Type="Edm.String" MaxLength="150"/>
        <Property Name="MemberHomePhone" Type="Edm.String" MaxLength="16"/>
        <Property Name="MemberIsAssistantTo" Type="Edm.String" MaxLength="50"/>
        <Property Name="MemberKey" Type="Edm.String" MaxLength="255"/>
        <Property Name="MemberKeyNumeric" Type="Edm.Int64" Precision="255"/>
        <Property Name="MemberLanguages" Type="MemberEnums.MemberLanguages" MaxLength="1024"/>
        <Property Name="MemberLastName" Type="Edm.String" MaxLength="50"/>
        <Property Name="MemberLoginId" Type="Edm.String" MaxLength="25"/>
        <Property Name="MemberMiddleName" Type="Edm.String" MaxLength="50"/>
        <Property Name="MemberMlsAccessYN" Type="Edm.Boolean"/>
        <Property Name="MemberMlsId" Type="Edm.String" MaxLength="25"/>
        <Property Name="MemberMlsSecurityClass" Type="MemberEnums.MemberMlsSecurityClass" MaxLength="25"/>
        <Property Name="MemberMobilePhone" Type="Edm.String" MaxLength="16"/>
        <Property Name="MemberNamePrefix" Type="Edm.String" MaxLength="10"/>
        <Property Name="MemberNameSuffix" Type="Edm.String" MaxLength="10"/>
        <Property Name="MemberNationalAssociationId" Type="Edm.String" MaxLength="25"/>
        <Property Name="MemberNickname" Type="Edm.String" MaxLength="50"/>
        <Property Name="MemberOtherPhoneType" Type="MemberEnums.MemberOtherPhoneType" MaxLength="25"/>
        <Property Name="MemberOfficePhone" Type="Edm.String" MaxLength="16"/>
        <Property Name="MemberOfficePhoneExt" Type="Edm.String" MaxLength="10"/>
        <Property Name="MemberPager" Type="Edm.String" MaxLength="16"/>
        <Property Name="MemberPassword" Type="Edm.String" MaxLength="25"/>
        <Property Name="MemberPhoneTTYTDD" Type="Edm.String" MaxLength="16"/>
        <Property Name="MemberPostalCode" Type="Edm.String" MaxLength="10"/>
        <Property Name="MemberPostalCodePlus4" Type="Edm.String" MaxLength="4"/>
        <Property Name="MemberPreferredPhone" Type="Edm.String" MaxLength="16"/>
        <Property Name="MemberPreferredPhoneExt" Type="Edm.String" MaxLength="10"/>
        <Property Name="MemberStateLicense" Type="Edm.String" MaxLength="50"/>
        <Property Name="MemberStateLicenseState" Type="MemberEnums.MemberStateLicenseState" MaxLength="2"/>
        <Property Name="MemberStateOrProvince" Type="MemberEnums.MemberStateOrProvince" MaxLength="2"/>
        <Property Name="MemberStatus" Type="MemberEnums.MemberStatus" MaxLength="25"/>
        <Property Name="MemberTollFreePhone" Type="Edm.String" MaxLength="16"/>
        <Property Name="MemberType" Type="MemberEnums.MemberType" MaxLength="25"/>
        <Property Name="MemberVoiceMail" Type="Edm.String" MaxLength="16"/>
        <Property Name="MemberVoiceMailExt" Type="Edm.String" MaxLength="10"/>
        <Property Name="ModificationTimestamp" Type="Edm.DateTimeOffset" Precision="27"/>
        <Property Name="OfficeKey" Type="Edm.String" MaxLength="255"/>
        <Property Name="OfficeKeyNumeric" Type="Edm.Int64" Precision="255"/>
        <Property Name="OfficeMlsId" Type="Edm.String" MaxLength="25"/>
        <Property Name="OfficeName" Type="Edm.String" MaxLength="255"/>
        <Property Name="OriginalEntryTimestamp" Type="Edm.DateTimeOffset" Precision="27"/>
        <Property Name="OriginatingSystemID" Type="Edm.String" MaxLength="25"/>
        <Property Name="OriginatingSystemMemberKey" Type="Edm.String" MaxLength="255"/>
        <Property Name="OriginatingSystemName" Type="Edm.String" MaxLength="255"/>
        <Property Name="SocialMediaType" Type="MemberEnums.SocialMediaType" MaxLength="25"/>
        <Property Name="SourceSystemID" Type="Edm.String" MaxLength="25"/>
        <Property Name="SourceSystemMemberKey" Type="Edm.String" MaxLength="255"/>
        <Property Name="SourceSystemName" Type="Edm.String" MaxLength="255"/>
        <Property Name="SyndicateTo" Type="MemberEnums.SyndicateTo" MaxLength="1024"/>
      </EntityType>
      <EntityType Name="Property">
        <Key>
          <PropertyRef Name="ListingKey"/>
        </Key>
        <Property Name="BridgeModificationTimestamp" Type="Edm.DateTimeOffset" Precision="27">
          <Annotation Term="RESO.OData.Metadata.TEST"/>
        </Property>
        <Property Name="IDXParticipationYN" Type="Edm.Boolean">
          <Annotation Term="RESO.OData.Metadata.TEST"/>
        </Property>
        <Property Name="MaloneId" Type="Edm.Int64" Precision="255">
          <Annotation Term="RESO.OData.Metadata.TEST"/>
        </Property>
        <Property Name="Media" Type="ODataService.Media">
          <Annotation Term="RESO.OData.Metadata.TEST"/>
        </Property>
        <Property Name="ListingInputOriginalMedia" Type="ODataService.ListingInputOriginalMedia">
          <Annotation Term="RESO.OData.Metadata.TEST"/>
        </Property>
        <Property Name="VirtualTourURLZillow" Type="Edm.String" MaxLength="8000">
          <Annotation Term="RESO.OData.Metadata.TEST"/>
        </Property>
        <Property Name="AboveGradeFinishedArea" Type="Edm.Double" Precision="14"/>
        <Property Name="AboveGradeFinishedAreaSource" Type="PropertyEnums.AboveGradeFinishedAreaSource" MaxLength="50"/>
        <Property Name="AboveGradeFinishedAreaUnits" Type="PropertyEnums.AboveGradeFinishedAreaUnits" MaxLength="25"/>
        <Property Name="AccessCode" Type="Edm.String" MaxLength="25"/>
        <Property Name="AccessibilityFeatures" Type="PropertyEnums.AccessibilityFeatures" MaxLength="1024"/>
        <Property Name="AdditionalParcelsDescription" Type="Edm.String" MaxLength="255"/>
        <Property Name="AdditionalParcelsYN" Type="Edm.Boolean"/>
        <Property Name="AnchorsCoTenants" Type="Edm.String" MaxLength="1024"/>
        <Property Name="Appliances" Type="PropertyEnums.Appliances" MaxLength="1024"/>
        <Property Name="ArchitecturalStyle" Type="PropertyEnums.ArchitecturalStyle" MaxLength="1024"/>
        <Property Name="AssociationAmenities" Type="PropertyEnums.AssociationAmenities" MaxLength="1024"/>
        <Property Name="AssociationFee" Type="Edm.Double" Precision="14"/>
        <Property Name="AssociationFee2" Type="Edm.Double" Precision="14"/>
        <Property Name="AssociationFee2Frequency" Type="PropertyEnums.AssociationFee2Frequency" MaxLength="25"/>
        <Property Name="AssociationFeeFrequency" Type="PropertyEnums.AssociationFeeFrequency" MaxLength="25"/>
        <Property Name="AssociationFeeIncludes" Type="PropertyEnums.AssociationFeeIncludes" MaxLength="1024"/>
        <Property Name="AssociationName" Type="Edm.String" MaxLength="50"/>
        <Property Name="AssociationName2" Type="Edm.String" MaxLength="50"/>
        <Property Name="AssociationPhone" Type="Edm.String" MaxLength="16"/>
        <Property Name="AssociationPhone2" Type="Edm.String" MaxLength="16"/>
        <Property Name="AssociationYN" Type="Edm.Boolean"/>
        <Property Name="AttachedGarageYN" Type="Edm.Boolean"/>
        <Property Name="AvailabilityDate" Type="Edm.Date" MaxLength="10"/>
        <Property Name="Basement" Type="PropertyEnums.Basement" MaxLength="1024"/>
        <Property Name="BathroomsFull" Type="Edm.Int64" Precision="3"/>
        <Property Name="BathroomsHalf" Type="Edm.Int64" Precision="3"/>
        <Property Name="BathroomsOneQuarter" Type="Edm.Int64" Precision="3"/>
        <Property Name="BathroomsPartial" Type="Edm.Int64" Precision="3"/>
        <Property Name="BathroomsThreeQuarter" Type="Edm.Int64" Precision="3"/>
        <Property Name="BathroomsTotalInteger" Type="Edm.Int64" Precision="3"/>
        <Property Name="BathroomsTotalDecimal" Type="Edm.Double" Precision="5">
          <Annotation Term="RESO.OData.Metadata.TEST"/>
        </Property>
        <Property Name="BedroomsPossible" Type="Edm.Int64" Precision="3"/>
        <Property Name="BedroomsTotal" Type="Edm.Int64" Precision="3"/>
        <Property Name="BelowGradeFinishedArea" Type="Edm.Double" Precision="14"/>
        <Property Name="BelowGradeFinishedAreaSource" Type="PropertyEnums.BelowGradeFinishedAreaSource" MaxLength="50"/>
        <Property Name="BelowGradeFinishedAreaUnits" Type="PropertyEnums.BelowGradeFinishedAreaUnits" MaxLength="25"/>
        <Property Name="BodyType" Type="PropertyEnums.BodyType" MaxLength="1024"/>
        <Property Name="BuilderModel" Type="Edm.String" MaxLength="50"/>
        <Property Name="BuilderName" Type="Edm.String" MaxLength="50"/>
        <Property Name="BuildingAreaSource" Type="PropertyEnums.BuildingAreaSource" MaxLength="50"/>
        <Property Name="BuildingAreaTotal" Type="Edm.Double" Precision="14"/>
        <Property Name="BuildingAreaUnits" Type="PropertyEnums.BuildingAreaUnits" MaxLength="25"/>
        <Property Name="BuildingFeatures" Type="PropertyEnums.BuildingFeatures" MaxLength="1024"/>
        <Property Name="BuildingName" Type="Edm.String" MaxLength="50"/>
        <Property Name="BusinessName" Type="Edm.String" MaxLength="255"/>
        <Property Name="BusinessType" Type="PropertyEnums.BusinessType" MaxLength="1024"/>
        <Property Name="BuyerAgencyCompensation" Type="Edm.String" MaxLength="25"/>
        <Property Name="BuyerAgencyCompensationType" Type="PropertyEnums.BuyerAgencyCompensationType" MaxLength="25"/>
        <Property Name="BuyerAgentAOR" Type="PropertyEnums.BuyerAgentAOR" MaxLength="50"/>
        <Property Name="BuyerAgentDesignation" Type="PropertyEnums.BuyerAgentDesignation" MaxLength="50"/>
        <Property Name="BuyerAgentDirectPhone" Type="Edm.String" MaxLength="16"/>
        <Property Name="BuyerAgentEmail" Type="Edm.String" MaxLength="80"/>
        <Property Name="BuyerAgentFax" Type="Edm.String" MaxLength="16"/>
        <Property Name="BuyerAgentFirstName" Type="Edm.String" MaxLength="50"/>
        <Property Name="BuyerAgentFullName" Type="Edm.String" MaxLength="150"/>
        <Property Name="BuyerAgentHomePhone" Type="Edm.String" MaxLength="16"/>
        <Property Name="BuyerAgentKey" Type="Edm.String" MaxLength="255"/>
        <Property Name="BuyerAgentKeyNumeric" Type="Edm.Int64" Precision="255"/>
        <Property Name="BuyerAgentLastName" Type="Edm.String" MaxLength="50"/>
        <Property Name="BuyerAgentMiddleName" Type="Edm.String" MaxLength="50"/>
        <Property Name="BuyerAgentMlsId" Type="Edm.String" MaxLength="25"/>
        <Property Name="BuyerAgentMobilePhone" Type="Edm.String" MaxLength="16"/>
        <Property Name="BuyerAgentNamePrefix" Type="Edm.String" MaxLength="10"/>
        <Property Name="BuyerAgentNameSuffix" Type="Edm.String" MaxLength="10"/>
        <Property Name="BuyerAgentOfficePhone" Type="Edm.String" MaxLength="16"/>
        <Property Name="BuyerAgentOfficePhoneExt" Type="Edm.String" MaxLength="10"/>
        <Property Name="BuyerAgentPager" Type="Edm.String" MaxLength="16"/>
        <Property Name="BuyerAgentPreferredPhone" Type="Edm.String" MaxLength="16"/>
        <Property Name="BuyerAgentPreferredPhoneExt" Type="Edm.String" MaxLength="10"/>
        <Property Name="BuyerAgentStateLicense" Type="Edm.String" MaxLength="50"/>
        <Property Name="BuyerAgentTollFreePhone" Type="Edm.String" MaxLength="16"/>
        <Property Name="BuyerAgentURL" Type="Edm.String" MaxLength="8000"/>
        <Property Name="BuyerAgentVoiceMail" Type="Edm.String" MaxLength="16"/>
        <Property Name="BuyerAgentVoiceMailExt" Type="Edm.String" MaxLength="10"/>
        <Property Name="BuyerFinancing" Type="PropertyEnums.BuyerFinancing" MaxLength="1024"/>
        <Property Name="BuyerOfficeAOR" Type="PropertyEnums.BuyerOfficeAOR" MaxLength="50"/>
        <Property Name="BuyerOfficeEmail" Type="Edm.String" MaxLength="80"/>
        <Property Name="BuyerOfficeFax" Type="Edm.String" MaxLength="16"/>
        <Property Name="BuyerOfficeKey" Type="Edm.String" MaxLength="255"/>
        <Property Name="BuyerOfficeKeyNumeric" Type="Edm.Int64" Precision="255"/>
        <Property Name="BuyerOfficeMlsId" Type="Edm.String" MaxLength="25"/>
        <Property Name="BuyerOfficeName" Type="Edm.String" MaxLength="255"/>
        <Property Name="BuyerOfficePhone" Type="Edm.String" MaxLength="16"/>
        <Property Name="BuyerOfficePhoneExt" Type="Edm.String" MaxLength="10"/>
        <Property Name="BuyerOfficeURL" Type="Edm.String" MaxLength="8000"/>
        <Property Name="BuyerTeamKey" Type="Edm.String" MaxLength="255"/>
        <Property Name="BuyerTeamKeyNumeric" Type="Edm.Int64" Precision="255"/>
        <Property Name="BuyerTeamName" Type="Edm.String" MaxLength="50"/>
        <Property Name="CableTvExpense" Type="Edm.Double" Precision="14"/>
        <Property Name="CancelationDate" Type="Edm.Date" MaxLength="10"/>
        <Property Name="CapRate" Type="Edm.Double" Precision="5"/>
        <Property Name="CarportSpaces" Type="Edm.Double" Precision="14"/>
        <Property Name="CarportYN" Type="Edm.Boolean"/>
        <Property Name="CarrierRoute" Type="Edm.String" MaxLength="9"/>
        <Property Name="City" Type="PropertyEnums.City" MaxLength="50"/>
        <Property Name="CityRegion" Type="Edm.String" MaxLength="150"/>
        <Property Name="CloseDate" Type="Edm.Date" MaxLength="10"/>
        <Property Name="ClosePrice" Type="Edm.Double" Precision="14"/>
        <Property Name="CoBuyerAgentAOR" Type="PropertyEnums.CoBuyerAgentAOR" MaxLength="50"/>
        <Property Name="CoBuyerAgentDesignation" Type="PropertyEnums.CoBuyerAgentDesignation" MaxLength="50"/>
        <Property Name="CoBuyerAgentDirectPhone" Type="Edm.String" MaxLength="16"/>
        <Property Name="CoBuyerAgentEmail" Type="Edm.String" MaxLength="80"/>
        <Property Name="CoBuyerAgentFax" Type="Edm.String" MaxLength="16"/>
        <Property Name="CoBuyerAgentFirstName" Type="Edm.String" MaxLength="50"/>
        <Property Name="CoBuyerAgentFullName" Type="Edm.String" MaxLength="150"/>
        <Property Name="CoBuyerAgentHomePhone" Type="Edm.String" MaxLength="16"/>
        <Property Name="CoBuyerAgentKey" Type="Edm.String" MaxLength="255"/>
        <Property Name="CoBuyerAgentKeyNumeric" Type="Edm.Int64" Precision="255"/>
        <Property Name="CoBuyerAgentLastName" Type="Edm.String" MaxLength="50"/>
        <Property Name="CoBuyerAgentMiddleName" Type="Edm.String" MaxLength="50"/>
        <Property Name="CoBuyerAgentMlsId" Type="Edm.String" MaxLength="25"/>
        <Property Name="CoBuyerAgentMobilePhone" Type="Edm.String" MaxLength="16"/>
        <Property Name="CoBuyerAgentNamePrefix" Type="Edm.String" MaxLength="10"/>
        <Property Name="CoBuyerAgentNameSuffix" Type="Edm.String" MaxLength="10"/>
        <Property Name="CoBuyerAgentOfficePhone" Type="Edm.String" MaxLength="16"/>
        <Property Name="CoBuyerAgentOfficePhoneExt" Type="Edm.String" MaxLength="10"/>
        <Property Name="CoBuyerAgentPager" Type="Edm.String" MaxLength="16"/>
        <Property Name="CoBuyerAgentPreferredPhone" Type="Edm.String" MaxLength="16"/>
        <Property Name="CoBuyerAgentPreferredPhoneExt" Type="Edm.String" MaxLength="10"/>
        <Property Name="CoBuyerAgentStateLicense" Type="Edm.String" MaxLength="50"/>
        <Property Name="CoBuyerAgentTollFreePhone" Type="Edm.String" MaxLength="16"/>
        <Property Name="CoBuyerAgentURL" Type="Edm.String" MaxLength="8000"/>
        <Property Name="CoBuyerAgentVoiceMail" Type="Edm.String" MaxLength="16"/>
        <Property Name="CoBuyerAgentVoiceMailExt" Type="Edm.String" MaxLength="10"/>
        <Property Name="CoBuyerOfficeAOR" Type="PropertyEnums.CoBuyerOfficeAOR" MaxLength="50"/>
        <Property Name="CoBuyerOfficeEmail" Type="Edm.String" MaxLength="80"/>
        <Property Name="CoBuyerOfficeFax" Type="Edm.String" MaxLength="16"/>
        <Property Name="CoBuyerOfficeKey" Type="Edm.String" MaxLength="255"/>
        <Property Name="CoBuyerOfficeKeyNumeric" Type="Edm.Int64" Precision="255"/>
        <Property Name="CoBuyerOfficeMlsId" Type="Edm.String" MaxLength="25"/>
        <Property Name="CoBuyerOfficeName" Type="Edm.String" MaxLength="255"/>
        <Property Name="CoBuyerOfficePhone" Type="Edm.String" MaxLength="16"/>
        <Property Name="CoBuyerOfficePhoneExt" Type="Edm.String" MaxLength="10"/>
        <Property Name="CoBuyerOfficeURL" Type="Edm.String" MaxLength="8000"/>
        <Property Name="CoListAgentAOR" Type="PropertyEnums.CoListAgentAOR" MaxLength="50"/>
        <Property Name="CoListAgentDesignation" Type="PropertyEnums.CoListAgentDesignation" MaxLength="50"/>
        <Property Name="CoListAgentDirectPhone" Type="Edm.String" MaxLength="16"/>
        <Property Name="CoListAgentEmail" Type="Edm.String" MaxLength="80"/>
        <Property Name="CoListAgentFax" Type="Edm.String" MaxLength="16"/>
        <Property Name="CoListAgentFirstName" Type="Edm.String" MaxLength="50"/>
        <Property Name="CoListAgentFullName" Type="Edm.String" MaxLength="150"/>
        <Property Name="CoListAgentHomePhone" Type="Edm.String" MaxLength="16"/>
        <Property Name="CoListAgentKey" Type="Edm.String" MaxLength="255"/>
        <Property Name="CoListAgentKeyNumeric" Type="Edm.Int64" Precision="255"/>
        <Property Name="CoListAgentLastName" Type="Edm.String" MaxLength="50"/>
        <Property Name="CoListAgentMiddleName" Type="Edm.String" MaxLength="50"/>
        <Property Name="CoListAgentMlsId" Type="Edm.String" MaxLength="25"/>
        <Property Name="CoListAgentMobilePhone" Type="Edm.String" MaxLength="16"/>
        <Property Name="CoListAgentNamePrefix" Type="Edm.String" MaxLength="10"/>
        <Property Name="CoListAgentNameSuffix" Type="Edm.String" MaxLength="10"/>
        <Property Name="CoListAgentOfficePhone" Type="Edm.String" MaxLength="16"/>
        <Property Name="CoListAgentOfficePhoneExt" Type="Edm.String" MaxLength="10"/>
        <Property Name="CoListAgentPager" Type="Edm.String" MaxLength="16"/>
        <Property Name="CoListAgentPreferredPhone" Type="Edm.String" MaxLength="16"/>
        <Property Name="CoListAgentPreferredPhoneExt" Type="Edm.String" MaxLength="10"/>
        <Property Name="CoListAgentStateLicense" Type="Edm.String" MaxLength="50"/>
        <Property Name="CoListAgentTollFreePhone" Type="Edm.String" MaxLength="16"/>
        <Property Name="CoListAgentURL" Type="Edm.String" MaxLength="8000"/>
        <Property Name="CoListAgentVoiceMail" Type="Edm.String" MaxLength="16"/>
        <Property Name="CoListAgentVoiceMailExt" Type="Edm.String" MaxLength="10"/>
        <Property Name="CoListOfficeAOR" Type="PropertyEnums.CoListOfficeAOR" MaxLength="50"/>
        <Property Name="CoListOfficeEmail" Type="Edm.String" MaxLength="80"/>
        <Property Name="CoListOfficeFax" Type="Edm.String" MaxLength="16"/>
        <Property Name="CoListOfficeKey" Type="Edm.String" MaxLength="255"/>
        <Property Name="CoListOfficeKeyNumeric" Type="Edm.Int64" Precision="255"/>
        <Property Name="CoListOfficeMlsId" Type="Edm.String" MaxLength="25"/>
        <Property Name="CoListOfficeName" Type="Edm.String" MaxLength="255"/>
        <Property Name="CoListOfficePhone" Type="Edm.String" MaxLength="16"/>
        <Property Name="CoListOfficePhoneExt" Type="Edm.String" MaxLength="10"/>
        <Property Name="CoListOfficeURL" Type="Edm.String" MaxLength="8000"/>
        <Property Name="CommonInterest" Type="PropertyEnums.CommonInterest" MaxLength="25"/>
        <Property Name="CommonWalls" Type="PropertyEnums.CommonWalls" MaxLength="1024"/>
        <Property Name="CommunityFeatures" Type="PropertyEnums.CommunityFeatures" MaxLength="1024"/>
        <Property Name="Concessions" Type="PropertyEnums.Concessions" MaxLength="25"/>
        <Property Name="ConcessionsAmount" Type="Edm.Int64" Precision="11"/>
        <Property Name="ConcessionsComments" Type="Edm.String" MaxLength="200"/>
        <Property Name="ConstructionMaterials" Type="PropertyEnums.ConstructionMaterials" MaxLength="1024"/>
        <Property Name="ContinentRegion" Type="Edm.String" MaxLength="150"/>
        <Property Name="Contingency" Type="Edm.String" MaxLength="1024"/>
        <Property Name="ContingentDate" Type="Edm.Date" MaxLength="10"/>
        <Property Name="ContractStatusChangeDate" Type="Edm.Date" MaxLength="10"/>
        <Property Name="Cooling" Type="PropertyEnums.Cooling" MaxLength="1024"/>
        <Property Name="CoolingYN" Type="Edm.Boolean"/>
        <Property Name="Coordinates" Type="Edm.GeographyPoint">
          <Annotation Term="RESO.OData.Metadata.TEST"/>
        </Property>
        <Property Name="CopyrightNotice" Type="Edm.String" MaxLength="500"/>
        <Property Name="Country" Type="PropertyEnums.Country" MaxLength="2"/>
        <Property Name="CountryRegion" Type="Edm.String" MaxLength="150"/>
        <Property Name="CountyOrParish" Type="PropertyEnums.CountyOrParish" MaxLength="50"/>
        <Property Name="CoveredSpaces" Type="Edm.Double" Precision="14"/>
        <Property Name="CropsIncludedYN" Type="Edm.Boolean"/>
        <Property Name="CrossStreet" Type="Edm.String" MaxLength="50"/>
        <Property Name="CultivatedArea" Type="Edm.Double" Precision="14"/>
        <Property Name="CumulativeDaysOnMarket" Type="Edm.Int64" Precision="4"/>
        <Property Name="CurrentFinancing" Type="PropertyEnums.CurrentFinancing" MaxLength="1024"/>
        <Property Name="CurrentUse" Type="PropertyEnums.CurrentUse" MaxLength="1024"/>
        <Property Name="DOH1" Type="Edm.String" MaxLength="25"/>
        <Property Name="DOH2" Type="Edm.String" MaxLength="25"/>
        <Property Name="DOH3" Type="Edm.String" MaxLength="25"/>
        <Property Name="DaysOnMarket" Type="Edm.Int64" Precision="4"/>
        <Property Name="DevelopmentStatus" Type="PropertyEnums.DevelopmentStatus" MaxLength="1024"/>
        <Property Name="DirectionFaces" Type="PropertyEnums.DirectionFaces" MaxLength="25"/>
        <Property Name="Directions" Type="Edm.String" MaxLength="1024"/>
        <Property Name="Disclaimer" Type="Edm.String" MaxLength="500"/>
        <Property Name="Disclosures" Type="PropertyEnums.Disclosures" MaxLength="4000"/>
        <Property Name="DistanceToBusComments" Type="Edm.String" MaxLength="255"/>
        <Property Name="DistanceToBusNumeric" Type="Edm.Int64" Precision="16"/>
        <Property Name="DistanceToBusUnits" Type="PropertyEnums.DistanceToBusUnits" MaxLength="25"/>
        <Property Name="DistanceToElectricComments" Type="Edm.String" MaxLength="255"/>
        <Property Name="DistanceToElectricNumeric" Type="Edm.Int64" Precision="16"/>
        <Property Name="DistanceToElectricUnits" Type="PropertyEnums.DistanceToElectricUnits" MaxLength="25"/>
        <Property Name="DistanceToFreewayComments" Type="Edm.String" MaxLength="255"/>
        <Property Name="DistanceToFreewayNumeric" Type="Edm.Int64" Precision="16"/>
        <Property Name="DistanceToFreewayUnits" Type="PropertyEnums.DistanceToFreewayUnits" MaxLength="25"/>
        <Property Name="DistanceToGasComments" Type="Edm.String" MaxLength="255"/>
        <Property Name="DistanceToGasNumeric" Type="Edm.Int64" Precision="16"/>
        <Property Name="DistanceToGasUnits" Type="PropertyEnums.DistanceToGasUnits" MaxLength="25"/>
        <Property Name="DistanceToPhoneServiceComments" Type="Edm.String" MaxLength="255"/>
        <Property Name="DistanceToPhoneServiceNumeric" Type="Edm.Int64" Precision="16"/>
        <Property Name="DistanceToPhoneServiceUnits" Type="PropertyEnums.DistanceToPhoneServiceUnits" MaxLength="25"/>
        <Property Name="DistanceToPlaceofWorshipComments" Type="Edm.String" MaxLength="255"/>
        <Property Name="DistanceToPlaceofWorshipNumeric" Type="Edm.Int64" Precision="16"/>
        <Property Name="DistanceToPlaceofWorshipUnits" Type="PropertyEnums.DistanceToPlaceofWorshipUnits" MaxLength="25"/>
        <Property Name="DistanceToSchoolBusComments" Type="Edm.String" MaxLength="255"/>
        <Property Name="DistanceToSchoolBusNumeric" Type="Edm.Int64" Precision="16"/>
        <Property Name="DistanceToSchoolBusUnits" Type="PropertyEnums.DistanceToSchoolBusUnits" MaxLength="25"/>
        <Property Name="DistanceToSchoolsComments" Type="Edm.String" MaxLength="255"/>
        <Property Name="DistanceToSchoolsNumeric" Type="Edm.Int64" Precision="16"/>
        <Property Name="DistanceToSchoolsUnits" Type="PropertyEnums.DistanceToSchoolsUnits" MaxLength="25"/>
        <Property Name="DistanceToSewerComments" Type="Edm.String" MaxLength="255"/>
        <Property Name="DistanceToSewerNumeric" Type="Edm.Int64" Precision="16"/>
        <Property Name="DistanceToSewerUnits" Type="PropertyEnums.DistanceToSewerUnits" MaxLength="25"/>
        <Property Name="DistanceToShoppingComments" Type="Edm.String" MaxLength="255"/>
        <Property Name="DistanceToShoppingNumeric" Type="Edm.Int64" Precision="16"/>
        <Property Name="DistanceToShoppingUnits" Type="PropertyEnums.DistanceToShoppingUnits" MaxLength="25"/>
        <Property Name="DistanceToStreetComments" Type="Edm.String" MaxLength="255"/>
        <Property Name="DistanceToStreetNumeric" Type="Edm.Int64" Precision="16"/>
        <Property Name="DistanceToStreetUnits" Type="PropertyEnums.DistanceToStreetUnits" MaxLength="25"/>
        <Property Name="DistanceToWaterComments" Type="Edm.String" MaxLength="255"/>
        <Property Name="DistanceToWaterNumeric" Type="Edm.Int64" Precision="16"/>
        <Property Name="DistanceToWaterUnits" Type="PropertyEnums.DistanceToWaterUnits" MaxLength="25"/>
        <Property Name="DocumentsAvailable" Type="PropertyEnums.DocumentsAvailable" MaxLength="1024"/>
        <Property Name="DocumentsChangeTimestamp" Type="Edm.DateTimeOffset" Precision="27"/>
        <Property Name="DocumentsCount" Type="Edm.Int64" Precision="2"/>
        <Property Name="DoorFeatures" Type="PropertyEnums.DoorFeatures" MaxLength="1024"/>
        <Property Name="DualVariableCompensationYN" Type="Edm.Boolean"/>
        <Property Name="Electric" Type="PropertyEnums.Electric" MaxLength="1024"/>
        <Property Name="ElectricExpense" Type="Edm.Double" Precision="14"/>
        <Property Name="ElectricOnPropertyYN" Type="Edm.Boolean"/>
        <Property Name="ElementarySchool" Type="PropertyEnums.ElementarySchool" MaxLength="50"/>
        <Property Name="ElementarySchoolDistrict" Type="PropertyEnums.ElementarySchoolDistrict" MaxLength="50"/>
        <Property Name="Elevation" Type="Edm.Int64" Precision="5"/>
        <Property Name="ElevationUnits" Type="PropertyEnums.ElevationUnits" MaxLength="10"/>
        <Property Name="EntryLevel" Type="Edm.Int64" Precision="4"/>
        <Property Name="EntryLocation" Type="Edm.String" MaxLength="50"/>
        <Property Name="Exclusions" Type="Edm.String" MaxLength="1024"/>
        <Property Name="ExistingLeaseType" Type="PropertyEnums.ExistingLeaseType" MaxLength="75"/>
        <Property Name="ExpirationDate" Type="Edm.Date" MaxLength="10"/>
        <Property Name="ExteriorFeatures" Type="PropertyEnums.ExteriorFeatures" MaxLength="1024"/>
        <Property Name="FarmCreditServiceInclYN" Type="Edm.Boolean"/>
        <Property Name="FarmLandAreaSource" Type="PropertyEnums.FarmLandAreaSource" MaxLength="50"/>
        <Property Name="FarmLandAreaUnits" Type="PropertyEnums.FarmLandAreaUnits" MaxLength="25"/>
        <Property Name="Fencing" Type="PropertyEnums.Fencing" MaxLength="1024"/>
        <Property Name="FinancialDataSource" Type="PropertyEnums.FinancialDataSource" MaxLength="75"/>
        <Property Name="FireplaceFeatures" Type="PropertyEnums.FireplaceFeatures" MaxLength="1024"/>
        <Property Name="FireplaceYN" Type="Edm.Boolean"/>
        <Property Name="FireplacesTotal" Type="Edm.Int64" Precision="3"/>
        <Property Name="Flooring" Type="PropertyEnums.Flooring" MaxLength="1024"/>
        <Property Name="FoundationArea" Type="Edm.Double" Precision="14"/>
        <Property Name="FoundationDetails" Type="PropertyEnums.FoundationDetails" MaxLength="1024"/>
        <Property Name="FrontageLength" Type="Edm.String" MaxLength="255"/>
        <Property Name="FrontageType" Type="PropertyEnums.FrontageType" MaxLength="1024"/>
        <Property Name="FuelExpense" Type="Edm.Double" Precision="14"/>
        <Property Name="Furnished" Type="PropertyEnums.Furnished" MaxLength="50"/>
        <Property Name="FurnitureReplacementExpense" Type="Edm.Double" Precision="14"/>
        <Property Name="GarageSpaces" Type="Edm.Double" Precision="14"/>
        <Property Name="GarageYN" Type="Edm.Boolean"/>
        <Property Name="GardenerExpense" Type="Edm.Double" Precision="14"/>
        <Property Name="GrazingPermitsBlmYN" Type="Edm.Boolean"/>
        <Property Name="GrazingPermitsForestServiceYN" Type="Edm.Boolean"/>
        <Property Name="GrazingPermitsPrivateYN" Type="Edm.Boolean"/>
        <Property Name="GreenBuildingVerificationType" Type="PropertyEnums.GreenBuildingVerificationType" MaxLength="1024"/>
        <Property Name="GreenEnergyEfficient" Type="PropertyEnums.GreenEnergyEfficient" MaxLength="1024"/>
        <Property Name="GreenEnergyGeneration" Type="PropertyEnums.GreenEnergyGeneration" MaxLength="1024"/>
        <Property Name="GreenIndoorAirQuality" Type="PropertyEnums.GreenIndoorAirQuality" MaxLength="1024"/>
        <Property Name="GreenLocation" Type="PropertyEnums.GreenLocation" MaxLength="1024"/>
        <Property Name="GreenSustainability" Type="PropertyEnums.GreenSustainability" MaxLength="1024"/>
        <Property Name="GreenWaterConservation" Type="PropertyEnums.GreenWaterConservation" MaxLength="1024"/>
        <Property Name="GrossIncome" Type="Edm.Double" Precision="14"/>
        <Property Name="GrossScheduledIncome" Type="Edm.Double" Precision="14"/>
        <Property Name="HabitableResidenceYN" Type="Edm.Boolean"/>
        <Property Name="Heating" Type="PropertyEnums.Heating" MaxLength="1024"/>
        <Property Name="HeatingYN" Type="Edm.Boolean"/>
        <Property Name="HighSchool" Type="PropertyEnums.HighSchool" MaxLength="50"/>
        <Property Name="HighSchoolDistrict" Type="PropertyEnums.HighSchoolDistrict" MaxLength="50"/>
        <Property Name="HomeWarrantyYN" Type="Edm.Boolean"/>
        <Property Name="HorseAmenities" Type="PropertyEnums.HorseAmenities" MaxLength="1024"/>
        <Property Name="HorseYN" Type="Edm.Boolean"/>
        <Property Name="HoursDaysOfOperation" Type="PropertyEnums.HoursDaysOfOperation" MaxLength="1024"/>
        <Property Name="HoursDaysOfOperationDescription" Type="Edm.String" MaxLength="255"/>
        <Property Name="Inclusions" Type="Edm.String" MaxLength="1024"/>
        <Property Name="IncomeIncludes" Type="PropertyEnums.IncomeIncludes" MaxLength="1024"/>
        <Property Name="InsuranceExpense" Type="Edm.Double" Precision="14"/>
        <Property Name="InteriorFeatures" Type="PropertyEnums.InteriorFeatures" MaxLength="1024"/>
        <Property Name="InternetAddressDisplayYN" Type="Edm.Boolean"/>
        <Property Name="InternetAutomatedValuationDisplayYN" Type="Edm.Boolean"/>
        <Property Name="InternetConsumerCommentYN" Type="Edm.Boolean"/>
        <Property Name="InternetEntireListingDisplayYN" Type="Edm.Boolean"/>
        <Property Name="IrrigationSource" Type="PropertyEnums.IrrigationSource" MaxLength="1024"/>
        <Property Name="IrrigationWaterRightsAcres" Type="Edm.Double" Precision="16"/>
        <Property Name="IrrigationWaterRightsYN" Type="Edm.Boolean"/>
        <Property Name="LaborInformation" Type="PropertyEnums.LaborInformation" MaxLength="1024"/>
        <Property Name="LandLeaseAmount" Type="Edm.Double" Precision="14"/>
        <Property Name="LandLeaseAmountFrequency" Type="PropertyEnums.LandLeaseAmountFrequency" MaxLength="25"/>
        <Property Name="LandLeaseExpirationDate" Type="Edm.Date" MaxLength="10"/>
        <Property Name="LandLeaseYN" Type="Edm.Boolean"/>
        <Property Name="Latitude" Type="Edm.Double" Precision="12"/>
        <Property Name="LaundryFeatures" Type="PropertyEnums.LaundryFeatures" MaxLength="1024"/>
        <Property Name="LeasableArea" Type="Edm.Double" Precision="14"/>
        <Property Name="LeasableAreaUnits" Type="PropertyEnums.LeasableAreaUnits" MaxLength="25"/>
        <Property Name="LeaseAmount" Type="Edm.Double" Precision="14"/>
        <Property Name="LeaseAmountFrequency" Type="PropertyEnums.LeaseAmountFrequency" MaxLength="25"/>
        <Property Name="LeaseAssignableYN" Type="Edm.Boolean"/>
        <Property Name="LeaseConsideredYN" Type="Edm.Boolean"/>
        <Property Name="LeaseExpiration" Type="Edm.Date" MaxLength="10"/>
        <Property Name="LeaseRenewalCompensation" Type="PropertyEnums.LeaseRenewalCompensation" MaxLength="255"/>
        <Property Name="LeaseRenewalOptionYN" Type="Edm.Boolean"/>
        <Property Name="LeaseTerm" Type="PropertyEnums.LeaseTerm" MaxLength="25"/>
        <Property Name="Levels" Type="PropertyEnums.Levels" MaxLength="1024"/>
        <Property Name="License1" Type="Edm.String" MaxLength="25"/>
        <Property Name="License2" Type="Edm.String" MaxLength="25"/>
        <Property Name="License3" Type="Edm.String" MaxLength="25"/>
        <Property Name="LicensesExpense" Type="Edm.Double" Precision="14"/>
        <Property Name="ListAOR" Type="PropertyEnums.ListAOR" MaxLength="50"/>
        <Property Name="ListAgentAOR" Type="PropertyEnums.ListAgentAOR" MaxLength="50"/>
        <Property Name="ListAgentDesignation" Type="PropertyEnums.ListAgentDesignation" MaxLength="50"/>
        <Property Name="ListAgentDirectPhone" Type="Edm.String" MaxLength="16"/>
        <Property Name="ListAgentEmail" Type="Edm.String" MaxLength="80"/>
        <Property Name="ListAgentFax" Type="Edm.String" MaxLength="16"/>
        <Property Name="ListAgentFirstName" Type="Edm.String" MaxLength="50"/>
        <Property Name="ListAgentFullName" Type="Edm.String" MaxLength="150"/>
        <Property Name="ListAgentHomePhone" Type="Edm.String" MaxLength="16"/>
        <Property Name="ListAgentKey" Type="Edm.String" MaxLength="255"/>
        <Property Name="ListAgentKeyNumeric" Type="Edm.Int64" Precision="255"/>
        <Property Name="ListAgentLastName" Type="Edm.String" MaxLength="50"/>
        <Property Name="ListAgentMiddleName" Type="Edm.String" MaxLength="50"/>
        <Property Name="ListAgentMlsId" Type="Edm.String" MaxLength="25"/>
        <Property Name="ListAgentMobilePhone" Type="Edm.String" MaxLength="16"/>
        <Property Name="ListAgentNamePrefix" Type="Edm.String" MaxLength="10"/>
        <Property Name="ListAgentNameSuffix" Type="Edm.String" MaxLength="10"/>
        <Property Name="ListAgentOfficePhone" Type="Edm.String" MaxLength="16"/>
        <Property Name="ListAgentOfficePhoneExt" Type="Edm.String" MaxLength="10"/>
        <Property Name="ListAgentPager" Type="Edm.String" MaxLength="16"/>
        <Property Name="ListAgentPreferredPhone" Type="Edm.String" MaxLength="16"/>
        <Property Name="ListAgentPreferredPhoneExt" Type="Edm.String" MaxLength="10"/>
        <Property Name="ListAgentStateLicense" Type="Edm.String" MaxLength="50"/>
        <Property Name="ListAgentTollFreePhone" Type="Edm.String" MaxLength="16"/>
        <Property Name="ListAgentURL" Type="Edm.String" MaxLength="8000"/>
        <Property Name="ListAgentVoiceMail" Type="Edm.String" MaxLength="16"/>
        <Property Name="ListAgentVoiceMailExt" Type="Edm.String" MaxLength="10"/>
        <Property Name="ListOfficeAOR" Type="PropertyEnums.ListOfficeAOR" MaxLength="50"/>
        <Property Name="ListOfficeEmail" Type="Edm.String" MaxLength="80"/>
        <Property Name="ListOfficeFax" Type="Edm.String" MaxLength="16"/>
        <Property Name="ListOfficeKey" Type="Edm.String" MaxLength="255"/>
        <Property Name="ListOfficeKeyNumeric" Type="Edm.Int64" Precision="255"/>
        <Property Name="ListOfficeMlsId" Type="Edm.String" MaxLength="25"/>
        <Property Name="ListOfficeName" Type="Edm.String" MaxLength="255"/>
        <Property Name="ListOfficePhone" Type="Edm.String" MaxLength="16"/>
        <Property Name="ListOfficePhoneExt" Type="Edm.String" MaxLength="10"/>
        <Property Name="ListOfficeURL" Type="Edm.String" MaxLength="8000"/>
        <Property Name="ListPrice" Type="Edm.Double" Precision="14"/>
        <Property Name="ListPriceLow" Type="Edm.Double" Precision="14"/>
        <Property Name="ListTeamKey" Type="Edm.String" MaxLength="255"/>
        <Property Name="ListTeamKeyNumeric" Type="Edm.Int64" Precision="255"/>
        <Property Name="ListTeamName" Type="Edm.String" MaxLength="50"/>
        <Property Name="ListingAgreement" Type="PropertyEnums.ListingAgreement" MaxLength="25"/>
        <Property Name="ListingContractDate" Type="Edm.Date" MaxLength="10"/>
        <Property Name="ListingId" Type="Edm.String" MaxLength="255"/>
        <Property Name="ListingKey" Type="Edm.String" MaxLength="255"/>
        <Property Name="ListingKeyNumeric" Type="Edm.Int64" Precision="255"/>
        <Property Name="ListingService" Type="PropertyEnums.ListingService" MaxLength="25"/>
        <Property Name="ListingTerms" Type="PropertyEnums.ListingTerms" MaxLength="1024"/>
        <Property Name="LivingArea" Type="Edm.Double" Precision="14"/>
        <Property Name="LivingAreaSource" Type="PropertyEnums.LivingAreaSource" MaxLength="50"/>
        <Property Name="LivingAreaUnits" Type="PropertyEnums.LivingAreaUnits" MaxLength="25"/>
        <Property Name="LockBoxLocation" Type="Edm.String" MaxLength="255"/>
        <Property Name="LockBoxSerialNumber" Type="Edm.String" MaxLength="25"/>
        <Property Name="LockBoxType" Type="PropertyEnums.LockBoxType" MaxLength="1024"/>
        <Property Name="Longitude" Type="Edm.Double" Precision="12"/>
        <Property Name="LotDimensionsSource" Type="PropertyEnums.LotDimensionsSource" MaxLength="50"/>
        <Property Name="LotFeatures" Type="PropertyEnums.LotFeatures" MaxLength="1024"/>
        <Property Name="LotSizeAcres" Type="Edm.Double" Precision="16"/>
        <Property Name="LotSizeArea" Type="Edm.Double" Precision="16"/>
        <Property Name="LotSizeDimensions" Type="Edm.String" MaxLength="150"/>
        <Property Name="LotSizeSource" Type="PropertyEnums.LotSizeSource" MaxLength="50"/>
        <Property Name="LotSizeSquareFeet" Type="Edm.Double" Precision="14"/>
        <Property Name="LotSizeUnits" Type="PropertyEnums.LotSizeUnits" MaxLength="25"/>
        <Property Name="MLSAreaMajor" Type="PropertyEnums.MLSAreaMajor" MaxLength="50"/>
        <Property Name="MLSAreaMinor" Type="PropertyEnums.MLSAreaMinor" MaxLength="50"/>
        <Property Name="MainLevelBathrooms" Type="Edm.Int64" Precision="3"/>
        <Property Name="MainLevelBedrooms" Type="Edm.Int64" Precision="3"/>
        <Property Name="MaintenanceExpense" Type="Edm.Double" Precision="14"/>
        <Property Name="MajorChangeTimestamp" Type="Edm.DateTimeOffset" Precision="27"/>
        <Property Name="MajorChangeType" Type="PropertyEnums.MajorChangeType" MaxLength="255"/>
        <Property Name="Make" Type="Edm.String" MaxLength="50"/>
        <Property Name="ManagerExpense" Type="Edm.Double" Precision="14"/>
        <Property Name="MapCoordinate" Type="Edm.String" MaxLength="25"/>
        <Property Name="MapCoordinateSource" Type="Edm.String" MaxLength="25"/>
        <Property Name="MapURL" Type="Edm.String" MaxLength="8000"/>
        <Property Name="MiddleOrJuniorSchool" Type="PropertyEnums.MiddleOrJuniorSchool" MaxLength="50"/>
        <Property Name="MiddleOrJuniorSchoolDistrict" Type="PropertyEnums.MiddleOrJuniorSchoolDistrict" MaxLength="50"/>
        <Property Name="MlsStatus" Type="PropertyEnums.MlsStatus" MaxLength="50"/>
        <Property Name="MobileDimUnits" Type="PropertyEnums.MobileDimUnits" MaxLength="25"/>
        <Property Name="MobileHomeRemainsYN" Type="Edm.Boolean"/>
        <Property Name="MobileLength" Type="Edm.Int64" Precision="4"/>
        <Property Name="MobileWidth" Type="Edm.Int64" Precision="4"/>
        <Property Name="Model" Type="Edm.String" MaxLength="50"/>
        <Property Name="ModificationTimestamp" Type="Edm.DateTimeOffset" Precision="27"/>
        <Property Name="NetOperatingIncome" Type="Edm.Double" Precision="14"/>
        <Property Name="NewConstructionYN" Type="Edm.Boolean"/>
        <Property Name="NewTaxesExpense" Type="Edm.Double" Precision="14"/>
        <Property Name="NumberOfBuildings" Type="Edm.Int64" Precision="3"/>
        <Property Name="NumberOfFullTimeEmployees" Type="Edm.Int64" Precision="10"/>
        <Property Name="NumberOfLots" Type="Edm.Int64" Precision="3"/>
        <Property Name="NumberOfPads" Type="Edm.Int64" Precision="3"/>
        <Property Name="NumberOfPartTimeEmployees" Type="Edm.Int64" Precision="10"/>
        <Property Name="NumberOfSeparateElectricMeters" Type="Edm.Int64" Precision="3"/>
        <Property Name="NumberOfSeparateGasMeters" Type="Edm.Int64" Precision="3"/>
        <Property Name="NumberOfSeparateWaterMeters" Type="Edm.Int64" Precision="3"/>
        <Property Name="NumberOfUnitsInCommunity" Type="Edm.Int64" Precision="5"/>
        <Property Name="NumberOfUnitsLeased" Type="Edm.Int64" Precision="5"/>
        <Property Name="NumberOfUnitsMoMo" Type="Edm.Int64" Precision="5"/>
        <Property Name="NumberOfUnitsTotal" Type="Edm.Int64" Precision="3"/>
        <Property Name="NumberOfUnitsVacant" Type="Edm.Int64" Precision="5"/>
        <Property Name="OccupantName" Type="Edm.String" MaxLength="50"/>
        <Property Name="OccupantPhone" Type="Edm.String" MaxLength="16"/>
        <Property Name="OccupantType" Type="PropertyEnums.OccupantType" MaxLength="50"/>
        <Property Name="OffMarketDate" Type="Edm.Date" MaxLength="10"/>
        <Property Name="OffMarketTimestamp" Type="Edm.DateTimeOffset" Precision="27"/>
        <Property Name="OnMarketDate" Type="Edm.Date" MaxLength="10"/>
        <Property Name="OnMarketTimestamp" Type="Edm.DateTimeOffset" Precision="27"/>
        <Property Name="OpenParkingSpaces" Type="Edm.Double" Precision="14"/>
        <Property Name="OpenParkingYN" Type="Edm.Boolean"/>
        <Property Name="OperatingExpense" Type="Edm.Double" Precision="14"/>
        <Property Name="OperatingExpenseIncludes" Type="PropertyEnums.OperatingExpenseIncludes" MaxLength="1024"/>
        <Property Name="OriginalEntryTimestamp" Type="Edm.DateTimeOffset" Precision="27"/>
        <Property Name="OriginalListPrice" Type="Edm.Double" Precision="14"/>
        <Property Name="OriginatingSystemID" Type="Edm.String" MaxLength="25"/>
        <Property Name="OriginatingSystemKey" Type="Edm.String" MaxLength="255"/>
        <Property Name="OriginatingSystemName" Type="Edm.String" MaxLength="255"/>
        <Property Name="OtherEquipment" Type="PropertyEnums.OtherEquipment" MaxLength="1024"/>
        <Property Name="OtherExpense" Type="Edm.Double" Precision="14"/>
        <Property Name="OtherParking" Type="Edm.String" MaxLength="1024"/>
        <Property Name="OtherStructures" Type="PropertyEnums.OtherStructures" MaxLength="1024"/>
        <Property Name="OwnerName" Type="Edm.String" MaxLength="50"/>
        <Property Name="OwnerPays" Type="PropertyEnums.OwnerPays" MaxLength="1024"/>
        <Property Name="OwnerPhone" Type="Edm.String" MaxLength="16"/>
        <Property Name="Ownership" Type="Edm.String" MaxLength="1024"/>
        <Property Name="OwnershipType" Type="PropertyEnums.OwnershipType" MaxLength="50"/>
        <Property Name="ParcelNumber" Type="Edm.String" MaxLength="50"/>
        <Property Name="ParkManagerName" Type="Edm.String" MaxLength="50"/>
        <Property Name="ParkManagerPhone" Type="Edm.String" MaxLength="16"/>
        <Property Name="ParkName" Type="Edm.String" MaxLength="50"/>
        <Property Name="ParkingFeatures" Type="PropertyEnums.ParkingFeatures" MaxLength="1024"/>
        <Property Name="ParkingTotal" Type="Edm.Double" Precision="14"/>
        <Property Name="PastureArea" Type="Edm.Double" Precision="14"/>
        <Property Name="PatioAndPorchFeatures" Type="PropertyEnums.PatioAndPorchFeatures" MaxLength="1024"/>
        <Property Name="PendingTimestamp" Type="Edm.DateTimeOffset" Precision="27"/>
        <Property Name="PestControlExpense" Type="Edm.Double" Precision="14"/>
        <Property Name="PetsAllowed" Type="PropertyEnums.PetsAllowed" MaxLength="1024"/>
        <Property Name="PhotosChangeTimestamp" Type="Edm.DateTimeOffset" Precision="27"/>
        <Property Name="PhotosCount" Type="Edm.Int64" Precision="2"/>
        <Property Name="PoolExpense" Type="Edm.Double" Precision="14"/>
        <Property Name="PoolFeatures" Type="PropertyEnums.PoolFeatures" MaxLength="1024"/>
        <Property Name="PoolPrivateYN" Type="Edm.Boolean"/>
        <Property Name="Possession" Type="PropertyEnums.Possession" MaxLength="255"/>
        <Property Name="PossibleUse" Type="PropertyEnums.PossibleUse" MaxLength="1024"/>
        <Property Name="PostalCity" Type="PropertyEnums.PostalCity" MaxLength="50"/>
        <Property Name="PostalCode" Type="Edm.String" MaxLength="10"/>
        <Property Name="PostalCodePlus4" Type="Edm.String" MaxLength="4"/>
        <Property Name="PowerProductionType" Type="PropertyEnums.PowerProductionType" MaxLength="1024"/>
        <Property Name="PreviousListPrice" Type="Edm.Double" Precision="14"/>
        <Property Name="PriceChangeTimestamp" Type="Edm.DateTimeOffset" Precision="27"/>
        <Property Name="PrivateOfficeRemarks" Type="Edm.String" MaxLength="4000"/>
        <Property Name="PrivateRemarks" Type="Edm.String" MaxLength="4000"/>
        <Property Name="ProfessionalManagementExpense" Type="Edm.Double" Precision="14"/>
        <Property Name="PropertyAttachedYN" Type="Edm.Boolean"/>
        <Property Name="PropertyCondition" Type="PropertyEnums.PropertyCondition" MaxLength="1024"/>
        <Property Name="PropertySubType" Type="PropertyEnums.PropertySubType" MaxLength="50"/>
        <Property Name="PropertyType" Type="PropertyEnums.PropertyType" MaxLength="50"/>
        <Property Name="PublicRemarks" Type="Edm.String" MaxLength="4000"/>
        <Property Name="PublicSurveyRange" Type="Edm.String" MaxLength="20"/>
        <Property Name="PublicSurveySection" Type="Edm.String" MaxLength="20"/>
        <Property Name="PublicSurveyTownship" Type="Edm.String" MaxLength="20"/>
        <Property Name="PropertyUniversalID" Type="Edm.String" MaxLength="128"/>
        <Property Name="PurchaseContractDate" Type="Edm.Date" MaxLength="10"/>
        <Property Name="RVParkingDimensions" Type="Edm.String" MaxLength="50"/>
        <Property Name="RangeArea" Type="Edm.Double" Precision="14"/>
        <Property Name="RentControlYN" Type="Edm.Boolean"/>
        <Property Name="RentIncludes" Type="PropertyEnums.RentIncludes" MaxLength="1024"/>
        <Property Name="RoadFrontageType" Type="PropertyEnums.RoadFrontageType" MaxLength="1024"/>
        <Property Name="RoadResponsibility" Type="PropertyEnums.RoadResponsibility" MaxLength="1024"/>
        <Property Name="RoadSurfaceType" Type="PropertyEnums.RoadSurfaceType" MaxLength="1024"/>
        <Property Name="Roof" Type="PropertyEnums.Roof" MaxLength="1024"/>
        <Property Name="RoomsTotal" Type="Edm.Int64" Precision="3"/>
        <Property Name="RoomType" Type="PropertyEnums.RoomType" MaxLength="1024"/>
        <Property Name="SeatingCapacity" Type="Edm.Int64" Precision="10"/>
        <Property Name="SecurityFeatures" Type="PropertyEnums.SecurityFeatures" MaxLength="1024"/>
        <Property Name="SeniorCommunityYN" Type="Edm.Boolean"/>
        <Property Name="SerialU" Type="Edm.String" MaxLength="25"/>
        <Property Name="SerialX" Type="Edm.String" MaxLength="25"/>
        <Property Name="SerialXX" Type="Edm.String" MaxLength="25"/>
        <Property Name="Sewer" Type="PropertyEnums.Sewer" MaxLength="1024"/>
        <Property Name="ShowingAdvanceNotice" Type="Edm.Int64" Precision="2"/>
        <Property Name="ShowingAttendedYN" Type="Edm.Boolean"/>
        <Property Name="ShowingContactName" Type="Edm.String" MaxLength="40"/>
        <Property Name="ShowingContactPhone" Type="Edm.String" MaxLength="16"/>
        <Property Name="ShowingContactPhoneExt" Type="Edm.String" MaxLength="10"/>
        <Property Name="ShowingContactType" Type="PropertyEnums.ShowingContactType" MaxLength="75"/>
        <Property Name="ShowingDays" Type="PropertyEnums.ShowingDays" MaxLength="1024"/>
        <Property Name="ShowingEndTime" Type="Edm.DateTimeOffset" Precision="27"/>
        <Property Name="ShowingInstructions" Type="Edm.String" MaxLength="4000"/>
        <Property Name="ShowingRequirements" Type="PropertyEnums.ShowingRequirements" MaxLength="1024"/>
        <Property Name="ShowingStartTime" Type="Edm.DateTimeOffset" Precision="27"/>
        <Property Name="SignOnPropertyYN" Type="Edm.Boolean"/>
        <Property Name="Skirt" Type="PropertyEnums.Skirt" MaxLength="1024"/>
        <Property Name="SourceSystemID" Type="Edm.String" MaxLength="25"/>
        <Property Name="SourceSystemKey" Type="Edm.String" MaxLength="255"/>
        <Property Name="SourceSystemName" Type="Edm.String" MaxLength="255"/>
        <Property Name="SpaFeatures" Type="PropertyEnums.SpaFeatures" MaxLength="1024"/>
        <Property Name="SpaYN" Type="Edm.Boolean"/>
        <Property Name="SpecialLicenses" Type="PropertyEnums.SpecialLicenses" MaxLength="1024"/>
        <Property Name="SpecialListingConditions" Type="PropertyEnums.SpecialListingConditions" MaxLength="1024"/>
        <Property Name="StandardStatus" Type="PropertyEnums.StandardStatus" MaxLength="25"/>
        <Property Name="StateOrProvince" Type="PropertyEnums.StateOrProvince" MaxLength="2"/>
        <Property Name="StateRegion" Type="Edm.String" MaxLength="150"/>
        <Property Name="StatusChangeTimestamp" Type="Edm.DateTimeOffset" Precision="27"/>
        <Property Name="Stories" Type="Edm.Int64" Precision="2"/>
        <Property Name="StoriesTotal" Type="Edm.Int64" Precision="3"/>
        <Property Name="StreetAdditionalInfo" Type="Edm.String" MaxLength="50"/>
        <Property Name="StreetDirPrefix" Type="PropertyEnums.StreetDirPrefix" MaxLength="15"/>
        <Property Name="StreetDirSuffix" Type="PropertyEnums.StreetDirSuffix" MaxLength="15"/>
        <Property Name="StreetName" Type="Edm.String" MaxLength="50"/>
        <Property Name="StreetNumber" Type="Edm.String" MaxLength="25"/>
        <Property Name="StreetNumberNumeric" Type="Edm.Int64" Precision="10"/>
        <Property Name="StreetSuffix" Type="PropertyEnums.StreetSuffix" MaxLength="25"/>
        <Property Name="StreetSuffixModifier" Type="Edm.String" MaxLength="25"/>
        <Property Name="StructureType" Type="PropertyEnums.StructureType" MaxLength="25"/>
        <Property Name="SubAgencyCompensation" Type="Edm.String" MaxLength="25"/>
        <Property Name="SubAgencyCompensationType" Type="PropertyEnums.SubAgencyCompensationType" MaxLength="25"/>
        <Property Name="SubdivisionName" Type="Edm.String" MaxLength="50"/>
        <Property Name="SuppliesExpense" Type="Edm.Double" Precision="14"/>
        <Property Name="SyndicateTo" Type="PropertyEnums.SyndicateTo" MaxLength="1024"/>
        <Property Name="SyndicationRemarks" Type="Edm.String" MaxLength="4000"/>
        <Property Name="TaxAnnualAmount" Type="Edm.Double" Precision="14"/>
        <Property Name="TaxAssessedValue" Type="Edm.Int64" Precision="14"/>
        <Property Name="TaxBlock" Type="Edm.String" MaxLength="25"/>
        <Property Name="TaxBookNumber" Type="Edm.String" MaxLength="25"/>
        <Property Name="TaxLegalDescription" Type="Edm.String" MaxLength="6000"/>
        <Property Name="TaxLot" Type="Edm.String" MaxLength="25"/>
        <Property Name="TaxMapNumber" Type="Edm.String" MaxLength="25"/>
        <Property Name="TaxOtherAnnualAssessmentAmount" Type="Edm.Double" Precision="14"/>
        <Property Name="TaxParcelLetter" Type="Edm.String" MaxLength="25"/>
        <Property Name="TaxStatusCurrent" Type="PropertyEnums.TaxStatusCurrent" MaxLength="50"/>
        <Property Name="TaxTract" Type="Edm.String" MaxLength="25"/>
        <Property Name="TaxYear" Type="Edm.Int64" Precision="4"/>
        <Property Name="TenantPays" Type="PropertyEnums.TenantPays" MaxLength="1024"/>
        <Property Name="Topography" Type="Edm.String" MaxLength="255"/>
        <Property Name="TotalActualRent" Type="Edm.Double" Precision="14"/>
        <Property Name="Township" Type="Edm.String" MaxLength="50"/>
        <Property Name="TransactionBrokerCompensation" Type="Edm.String" MaxLength="25"/>
        <Property Name="TransactionBrokerCompensationType" Type="PropertyEnums.TransactionBrokerCompensationType" MaxLength="25"/>
        <Property Name="TrashExpense" Type="Edm.Double" Precision="14"/>
        <Property Name="UnitNumber" Type="Edm.String" MaxLength="25"/>
        <Property Name="UnitsFurnished" Type="PropertyEnums.UnitsFurnished" MaxLength="25"/>
        <Property Name="UnitTypeType" Type="PropertyEnums.UnitTypeType" MaxLength="1024"/>
        <Property Name="UnparsedAddress" Type="Edm.String" MaxLength="255"/>
        <Property Name="Utilities" Type="PropertyEnums.Utilities" MaxLength="1024"/>
        <Property Name="VacancyAllowance" Type="Edm.Int64" Precision="9"/>
        <Property Name="VacancyAllowanceRate" Type="Edm.Double" Precision="5"/>
        <Property Name="Vegetation" Type="PropertyEnums.Vegetation" MaxLength="1024"/>
        <Property Name="VideosChangeTimestamp" Type="Edm.DateTimeOffset" Precision="27"/>
        <Property Name="VideosCount" Type="Edm.Int64" Precision="2"/>
        <Property Name="View" Type="PropertyEnums.View" MaxLength="1024"/>
        <Property Name="ViewYN" Type="Edm.Boolean"/>
        <Property Name="VirtualTourURLBranded" Type="Edm.String" MaxLength="8000"/>
        <Property Name="VirtualTourURLUnbranded" Type="Edm.String" MaxLength="8000"/>
        <Property Name="WalkScore" Type="Edm.Int64" Precision="3"/>
        <Property Name="WaterBodyName" Type="Edm.String" MaxLength="50"/>
        <Property Name="WaterSewerExpense" Type="Edm.Double" Precision="14"/>
        <Property Name="WaterSource" Type="PropertyEnums.WaterSource" MaxLength="1024"/>
        <Property Name="WaterfrontFeatures" Type="PropertyEnums.WaterfrontFeatures" MaxLength="1024"/>
        <Property Name="WaterfrontYN" Type="Edm.Boolean"/>
        <Property Name="WindowFeatures" Type="PropertyEnums.WindowFeatures" MaxLength="1024"/>
        <Property Name="WithdrawnDate" Type="Edm.Date" MaxLength="10"/>
        <Property Name="WoodedArea" Type="Edm.Double" Precision="14"/>
        <Property Name="WorkmansCompensationExpense" Type="Edm.Double" Precision="14"/>
        <Property Name="YearBuilt" Type="Edm.Int64" Precision="4"/>
        <Property Name="YearBuiltDetails" Type="Edm.String" MaxLength="1024"/>
        <Property Name="YearBuiltEffective" Type="Edm.Int64" Precision="4"/>
        <Property Name="YearBuiltSource" Type="PropertyEnums.YearBuiltSource" MaxLength="60"/>
        <Property Name="YearEstablished" Type="Edm.Int64" Precision="4"/>
        <Property Name="YearsCurrentOwner" Type="Edm.Int64" Precision="4"/>
        <Property Name="Zoning" Type="Edm.String" MaxLength="25"/>
        <Property Name="ZoningDescription" Type="Edm.String" MaxLength="255"/>
      </EntityType>
      <EntityType Name="OpenHouse">
        <Key>
          <PropertyRef Name="OpenHouseKey"/>
        </Key>
        <Property Name="BridgeModificationTimestamp" Type="Edm.DateTimeOffset" Precision="27">
          <Annotation Term="RESO.OData.Metadata.TEST"/>
        </Property>
        <Property Name="AppointmentRequiredYN" Type="Edm.Boolean"/>
        <Property Name="ListingId" Type="Edm.String" MaxLength="255"/>
        <Property Name="ListingKey" Type="Edm.String" MaxLength="255"/>
        <Property Name="ListingKeyNumeric" Type="Edm.Int64" Precision="255"/>
        <Property Name="ModificationTimestamp" Type="Edm.DateTimeOffset" Precision="27"/>
        <Property Name="OpenHouseAttendedBy" Type="OpenHouseEnums.OpenHouseAttendedBy" MaxLength="25"/>
        <Property Name="OpenHouseDate" Type="Edm.Date" MaxLength="10"/>
        <Property Name="OpenHouseEndTime" Type="Edm.DateTimeOffset" Precision="27"/>
        <Property Name="OpenHouseId" Type="Edm.String" MaxLength="255"/>
        <Property Name="OpenHouseKey" Type="Edm.String" MaxLength="255"/>
        <Property Name="OpenHouseKeyNumeric" Type="Edm.Int64" Precision="255"/>
        <Property Name="OpenHouseRemarks" Type="Edm.String" MaxLength="500"/>
        <Property Name="OpenHouseStartTime" Type="Edm.DateTimeOffset" Precision="27"/>
        <Property Name="OpenHouseStatus" Type="OpenHouseEnums.OpenHouseStatus" MaxLength="25"/>
        <Property Name="OpenHouseType" Type="OpenHouseEnums.OpenHouseType" MaxLength="25"/>
        <Property Name="OriginalEntryTimestamp" Type="Edm.DateTimeOffset" Precision="27"/>
        <Property Name="OriginatingSystemID" Type="Edm.String" MaxLength="25"/>
        <Property Name="OriginatingSystemKey" Type="Edm.String" MaxLength="255"/>
        <Property Name="OriginatingSystemName" Type="Edm.String" MaxLength="255"/>
        <Property Name="Refreshments" Type="Edm.String" MaxLength="255"/>
        <Property Name="ShowingAgentFirstName" Type="Edm.String" MaxLength="50"/>
        <Property Name="ShowingAgentKey" Type="Edm.String" MaxLength="255"/>
        <Property Name="ShowingAgentKeyNumeric" Type="Edm.Int64" Precision="255"/>
        <Property Name="ShowingAgentLastName" Type="Edm.String" MaxLength="50"/>
        <Property Name="ShowingAgentMlsID" Type="Edm.String" MaxLength="25"/>
        <Property Name="SourceSystemID" Type="Edm.String" MaxLength="25"/>
        <Property Name="SourceSystemKey" Type="Edm.String" MaxLength="255"/>
        <Property Name="SourceSystemName" Type="Edm.String" MaxLength="255"/>
      </EntityType>
    </Schema>
    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="OfficeEnums">
      <EnumType Name="OfficeAOR" UnderlyingType="Edm.Int32"/>
      <EnumType Name="OfficeBranchType" UnderlyingType="Edm.Int32">
        <Member Name="Main"/>
        <Member Name="Branch"/>
        <Member Name="Stand Alone"/>
      </EnumType>
      <EnumType Name="OfficeCountyOrParish" UnderlyingType="Edm.Int32"/>
      <EnumType Name="OfficeStateOrProvince" UnderlyingType="Edm.Int32">
        <Member Name="State"/>
      </EnumType>
      <EnumType Name="OfficeStatus" UnderlyingType="Edm.Int32">
        <Member Name="Active"/>
        <Member Name="Inactive"/>
      </EnumType>
      <EnumType Name="OfficeType" UnderlyingType="Edm.Int32">
        <Member Name="Real Estate"/>
        <Member Name="Appraiser"/>
      </EnumType>
      <EnumType Name="SocialMediaType" UnderlyingType="Edm.Int32"/>
      <EnumType Name="SyndicateAgentOption" UnderlyingType="Edm.Int32">
        <Member Name="No Agent"/>
        <Member Name="Allow Agent"/>
        <Member Name="Restrict Agent"/>
      </EnumType>
      <EnumType Name="SyndicateTo" UnderlyingType="Edm.Int32" IsFlags="true">
        <Member Name="Zillow"/>
        <Member Name="Trulia"/>
        <Member Name="hotspads.com"/>
        <Member Name="nakedapartments.com"/>
      </EnumType>
    </Schema>
    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="MemberEnums">
      <EnumType Name="MemberAOR" UnderlyingType="Edm.Int32"/>
      <EnumType Name="MemberCountry" UnderlyingType="Edm.Int32">
        <Member Name="US"/>
      </EnumType>
      <EnumType Name="MemberCountyOrParish" UnderlyingType="Edm.Int32">
        <Member Name="City"/>
      </EnumType>
      <EnumType Name="MemberDesignation" UnderlyingType="Edm.Int32" IsFlags="true">
        <Member Name="Dr."/>
        <Member Name="Prof."/>
      </EnumType>
      <EnumType Name="MemberLanguages" UnderlyingType="Edm.Int32" IsFlags="true">
        <Member Name="English"/>
        <Member Name="Spanish"/>
        <Member Name="French"/>
        <Member Name="German"/>
      </EnumType>
      <EnumType Name="MemberMlsSecurityClass" UnderlyingType="Edm.Int32">
        <Member Name="Top Secret"/>
        <Member Name="Secret"/>
        <Member Name="Confidential"/>
        <Member Name="Unclassified"/>
      </EnumType>
      <EnumType Name="MemberOtherPhoneType" UnderlyingType="Edm.Int32"/>
      <EnumType Name="MemberStateLicenseState" UnderlyingType="Edm.Int32"/>
      <EnumType Name="MemberStateOrProvince" UnderlyingType="Edm.Int32">
        <Member Name="State"/>
      </EnumType>
      <EnumType Name="MemberStatus" UnderlyingType="Edm.Int32">
        <Member Name="Active"/>
        <Member Name="Inactive"/>
      </EnumType>
      <EnumType Name="MemberType" UnderlyingType="Edm.Int32">
        <Member Name="Agent"/>
        <Member Name="Broker"/>
        <Member Name="Office Manager"/>
        <Member Name="Appraiser"/>
        <Member Name="Photographer"/>
        <Member Name="Assistant"/>
        <Member Name="MLO"/>
        <Member Name="Realtor"/>
        <Member Name="Association Staff"/>
        <Member Name="MLS Staff"/>
      </EnumType>
      <EnumType Name="SocialMediaType" UnderlyingType="Edm.Int32"/>
      <EnumType Name="SyndicateTo" UnderlyingType="Edm.Int32" IsFlags="true">
        <Member Name="Zillow"/>
        <Member Name="Trulia"/>
        <Member Name="hotspads.com"/>
        <Member Name="nakedapartments.com"/>
      </EnumType>
    </Schema>
    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PropertyEnums">
      <EnumType Name="AboveGradeFinishedAreaSource" UnderlyingType="Edm.Int32">
        <Member Name="Agent"/>
        <Member Name="Assessor"/>
        <Member Name="Estimate"/>
      </EnumType>
      <EnumType Name="AboveGradeFinishedAreaUnits" UnderlyingType="Edm.Int32">
        <Member Name="Square Feet"/>
        <Member Name="Square Meteres"/>
        <Member Name="Acres"/>
      </EnumType>
      <EnumType Name="AccessibilityFeatures" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="Appliances" UnderlyingType="Edm.Int32" IsFlags="true">
        <Member Name="Dishwasher"/>
        <Member Name="Disposal"/>
        <Member Name="Oven"/>
        <Member Name="Microwave"/>
        <Member Name="Pantry"/>
        <Member Name="Island"/>
      </EnumType>
      <EnumType Name="ArchitecturalStyle" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="AssociationAmenities" UnderlyingType="Edm.Int32" IsFlags="true">
        <Member Name="Pool"/>
        <Member Name="Clubhouse"/>
        <Member Name="Gym"/>
        <Member Name="Car"/>
      </EnumType>
      <EnumType Name="AssociationFee2Frequency" UnderlyingType="Edm.Int32">
        <Member Name="Daily"/>
        <Member Name="Weekly"/>
        <Member Name="Bi-Weekly"/>
        <Member Name="Semi-Monthly"/>
        <Member Name="Monthly"/>
        <Member Name="Bi-Monthly"/>
        <Member Name="Quarterly"/>
        <Member Name="Semi-Annually"/>
        <Member Name="Annually"/>
        <Member Name="Seasonal"/>
        <Member Name="One Time"/>
      </EnumType>
      <EnumType Name="AssociationFeeFrequency" UnderlyingType="Edm.Int32">
        <Member Name="Daily"/>
        <Member Name="Weekly"/>
        <Member Name="Bi-Weekly"/>
        <Member Name="Semi-Monthly"/>
        <Member Name="Monthly"/>
        <Member Name="Bi-Monthly"/>
        <Member Name="Quarterly"/>
        <Member Name="Semi-Annually"/>
        <Member Name="Annually"/>
        <Member Name="Seasonal"/>
        <Member Name="One Time"/>
      </EnumType>
      <EnumType Name="AssociationFeeIncludes" UnderlyingType="Edm.Int32" IsFlags="true">
        <Member Name="Cable TV"/>
        <Member Name="Earthquake Insurance"/>
        <Member Name="Electricity"/>
        <Member Name="Gas"/>
        <Member Name="Insurance"/>
        <Member Name="Maintenance Exterior"/>
        <Member Name="Maintenance Grounds"/>
        <Member Name="Pest Control"/>
        <Member Name="Security"/>
        <Member Name="Sewer"/>
        <Member Name="Snow Removal"/>
        <Member Name="Trash"/>
        <Member Name="Utilities"/>
        <Member Name="Water"/>
      </EnumType>
      <EnumType Name="Basement" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="BelowGradeFinishedAreaSource" UnderlyingType="Edm.Int32">
        <Member Name="Agent"/>
        <Member Name="Assessor"/>
        <Member Name="Estimate"/>
      </EnumType>
      <EnumType Name="BelowGradeFinishedAreaUnits" UnderlyingType="Edm.Int32">
        <Member Name="Square Feet"/>
        <Member Name="Square Meteres"/>
        <Member Name="Acres"/>
      </EnumType>
      <EnumType Name="BodyType" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="BuildingAreaSource" UnderlyingType="Edm.Int32">
        <Member Name="Agent"/>
        <Member Name="Assessor"/>
        <Member Name="Estimate"/>
      </EnumType>
      <EnumType Name="BuildingAreaUnits" UnderlyingType="Edm.Int32">
        <Member Name="Square Feet"/>
        <Member Name="Square Meteres"/>
        <Member Name="Acres"/>
      </EnumType>
      <EnumType Name="BuildingFeatures" UnderlyingType="Edm.Int32" IsFlags="true">
        <Member Name="Concierge Service"/>
        <Member Name="Elevator"/>
        <Member Name="Cafeteria"/>
        <Member Name="Patio/Rooftop Deck"/>
        <Member Name="Gym"/>
        <Member Name="Lounge"/>
      </EnumType>
      <EnumType Name="BusinessType" UnderlyingType="Edm.Int32" IsFlags="true">
        <Member Name="Auto Rent/Lease"/>
        <Member Name="Accounting"/>
        <Member Name="Appliances"/>
        <Member Name="Travel"/>
        <Member Name="Wholesale"/>
        <Member Name="Other (BusinessType)"/>
        <Member Name="Medical"/>
        <Member Name="Pet Store"/>
        <Member Name="Liquor Store"/>
        <Member Name="Bed &amp; Breakfast"/>
        <Member Name="Deli/Catering"/>
        <Member Name="Computer"/>
        <Member Name="Saddlery/Harness"/>
        <Member Name="Laundromat"/>
        <Member Name="Clothing"/>
        <Member Name="Retail"/>
        <Member Name="Hardware"/>
        <Member Name="Variety"/>
        <Member Name="Gas Station"/>
        <Member Name="Convalescent"/>
        <Member Name="Paints"/>
        <Member Name="Decorator"/>
        <Member Name="Photographer"/>
        <Member Name="Employment"/>
        <Member Name="Commercial"/>
        <Member Name="Books/Cards/Stationary"/>
        <Member Name="Gift Shop"/>
        <Member Name="Fitness"/>
        <Member Name="Child Care"/>
        <Member Name="Agriculture"/>
        <Member Name="Carpet/Tile"/>
        <Member Name="Cabinets"/>
        <Member Name="Warehouse"/>
        <Member Name="Home Cleaner"/>
        <Member Name="Farm"/>
        <Member Name="Financial"/>
        <Member Name="Auto Dealer"/>
        <Member Name="Athletic"/>
        <Member Name="Drugstore"/>
        <Member Name="Convenience Store"/>
        <Member Name="Franchise"/>
        <Member Name="Church"/>
        <Member Name="Florist/Nursery"/>
        <Member Name="Wallpaper"/>
        <Member Name="Manufacturing"/>
        <Member Name="Recreation"/>
        <Member Name="Residential"/>
        <Member Name="Pizza"/>
        <Member Name="Upholstery"/>
        <Member Name="Dry Cleaner"/>
      </EnumType>
      <EnumType Name="BuyerAgencyCompensationType" UnderlyingType="Edm.Int32"/>
      <EnumType Name="BuyerAgentAOR" UnderlyingType="Edm.Int32"/>
      <EnumType Name="BuyerAgentDesignation" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="BuyerFinancing" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="BuyerOfficeAOR" UnderlyingType="Edm.Int32"/>
      <EnumType Name="City" UnderlyingType="Edm.Int32">
        <Member Name="City"/>
      </EnumType>
      <EnumType Name="CoBuyerAgentAOR" UnderlyingType="Edm.Int32"/>
      <EnumType Name="CoBuyerAgentDesignation" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="CoBuyerOfficeAOR" UnderlyingType="Edm.Int32"/>
      <EnumType Name="CoListAgentAOR" UnderlyingType="Edm.Int32"/>
      <EnumType Name="CoListAgentDesignation" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="CoListOfficeAOR" UnderlyingType="Edm.Int32"/>
      <EnumType Name="CommonInterest" UnderlyingType="Edm.Int32"/>
      <EnumType Name="CommonWalls" UnderlyingType="Edm.Int32" IsFlags="true">
        <Member Name="1 Common Wall"/>
        <Member Name="2+ Common Walls"/>
        <Member Name="End Unit"/>
        <Member Name="No Common Walls"/>
        <Member Name="No One Above"/>
        <Member Name="No One Below"/>
      </EnumType>
      <EnumType Name="CommunityFeatures" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="Concessions" UnderlyingType="Edm.Int32"/>
      <EnumType Name="ConstructionMaterials" UnderlyingType="Edm.Int32" IsFlags="true">
        <Member Name="Brick"/>
        <Member Name="Wood"/>
        <Member Name="Concrete"/>
      </EnumType>
      <EnumType Name="Cooling" UnderlyingType="Edm.Int32" IsFlags="true">
        <Member Name="Evaporative Cooler"/>
        <Member Name="Ceiling Fan"/>
        <Member Name="Central Air"/>
        <Member Name="Room Air Conditioner"/>
      </EnumType>
      <EnumType Name="Country" UnderlyingType="Edm.Int32">
        <Member Name="US"/>
      </EnumType>
      <EnumType Name="CountyOrParish" UnderlyingType="Edm.Int32">
        <Member Name="County"/>
      </EnumType>
      <EnumType Name="CurrentFinancing" UnderlyingType="Edm.Int32" IsFlags="true">
        <Member Name="Assumed"/>
        <Member Name="Cash"/>
        <Member Name="Contract"/>
        <Member Name="Conventional"/>
        <Member Name="FHA"/>
        <Member Name="FHA 203(b)"/>
        <Member Name="FHA 203(k)"/>
        <Member Name="Other"/>
        <Member Name="Private"/>
        <Member Name="Seller Financing"/>
        <Member Name="Trust Deed"/>
        <Member Name="USDA"/>
        <Member Name="VA"/>
      </EnumType>
      <EnumType Name="CurrentUse" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="DevelopmentStatus" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="DirectionFaces" UnderlyingType="Edm.Int32">
        <Member Name="North"/>
        <Member Name="South"/>
        <Member Name="East"/>
        <Member Name="West"/>
        <Member Name="South-West"/>
        <Member Name="North-West"/>
        <Member Name="North-East"/>
        <Member Name="South-East"/>
      </EnumType>
      <EnumType Name="Disclosures" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="DistanceToBusUnits" UnderlyingType="Edm.Int32"/>
      <EnumType Name="DistanceToElectricUnits" UnderlyingType="Edm.Int32"/>
      <EnumType Name="DistanceToFreewayUnits" UnderlyingType="Edm.Int32"/>
      <EnumType Name="DistanceToGasUnits" UnderlyingType="Edm.Int32"/>
      <EnumType Name="DistanceToPhoneServiceUnits" UnderlyingType="Edm.Int32"/>
      <EnumType Name="DistanceToPlaceofWorshipUnits" UnderlyingType="Edm.Int32"/>
      <EnumType Name="DistanceToSchoolBusUnits" UnderlyingType="Edm.Int32"/>
      <EnumType Name="DistanceToSchoolsUnits" UnderlyingType="Edm.Int32"/>
      <EnumType Name="DistanceToSewerUnits" UnderlyingType="Edm.Int32"/>
      <EnumType Name="DistanceToShoppingUnits" UnderlyingType="Edm.Int32"/>
      <EnumType Name="DistanceToStreetUnits" UnderlyingType="Edm.Int32"/>
      <EnumType Name="DistanceToWaterUnits" UnderlyingType="Edm.Int32"/>
      <EnumType Name="DocumentsAvailable" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="DoorFeatures" UnderlyingType="Edm.Int32" IsFlags="true">
        <Member Name="French Doors"/>
        <Member Name="Sliding Doors"/>
        <Member Name="Overhead Doors"/>
        <Member Name="Truck Doors"/>
        <Member Name="Glass Doors"/>
      </EnumType>
      <EnumType Name="Electric" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="ElementarySchool" UnderlyingType="Edm.Int32"/>
      <EnumType Name="ElementarySchoolDistrict" UnderlyingType="Edm.Int32"/>
      <EnumType Name="ElevationUnits" UnderlyingType="Edm.Int32">
        <Member Name="Feet"/>
        <Member Name="Meters"/>
      </EnumType>
      <EnumType Name="ExistingLeaseType" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="ExteriorFeatures" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="FarmLandAreaSource" UnderlyingType="Edm.Int32"/>
      <EnumType Name="FarmLandAreaUnits" UnderlyingType="Edm.Int32"/>
      <EnumType Name="Fencing" UnderlyingType="Edm.Int32" IsFlags="true">
        <Member Name="Block"/>
        <Member Name="Wrought Iron"/>
        <Member Name="Wire"/>
        <Member Name="Wood"/>
        <Member Name="Chain Link"/>
      </EnumType>
      <EnumType Name="FinancialDataSource" UnderlyingType="Edm.Int32" IsFlags="true">
        <Member Name="Listing Broker"/>
        <Member Name="Not Available"/>
        <Member Name="Seller"/>
        <Member Name="Sellers Accountant"/>
      </EnumType>
      <EnumType Name="FireplaceFeatures" UnderlyingType="Edm.Int32" IsFlags="true">
        <Member Name="One"/>
        <Member Name="Living Room Fireplace"/>
        <Member Name="Wood"/>
        <Member Name="Gas"/>
        <Member Name="Two"/>
        <Member Name="Propane"/>
        <Member Name="Pellet"/>
      </EnumType>
      <EnumType Name="Flooring" UnderlyingType="Edm.Int32" IsFlags="true">
        <Member Name="Hardwood"/>
        <Member Name="Laminate"/>
        <Member Name="Vinyl"/>
        <Member Name="Tiles"/>
        <Member Name="Cork"/>
        <Member Name="Rugs"/>
        <Member Name="Carpet"/>
      </EnumType>
      <EnumType Name="FoundationDetails" UnderlyingType="Edm.Int32" IsFlags="true">
        <Member Name="Strip"/>
        <Member Name="Pad"/>
        <Member Name="Grillage"/>
        <Member Name="Mat"/>
        <Member Name="Pile"/>
        <Member Name="Slurry"/>
        <Member Name="Well"/>
      </EnumType>
      <EnumType Name="FrontageType" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="Furnished" UnderlyingType="Edm.Int32"/>
      <EnumType Name="GreenBuildingVerificationType" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="GreenEnergyEfficient" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="GreenEnergyGeneration" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="GreenIndoorAirQuality" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="GreenLocation" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="GreenSustainability" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="GreenWaterConservation" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="Heating" UnderlyingType="Edm.Int32" IsFlags="true">
        <Member Name="Forced Air"/>
        <Member Name="Heat Pump"/>
        <Member Name="Boiler"/>
        <Member Name="Electric"/>
        <Member Name="Wood"/>
      </EnumType>
      <EnumType Name="HighSchool" UnderlyingType="Edm.Int32"/>
      <EnumType Name="HighSchoolDistrict" UnderlyingType="Edm.Int32"/>
      <EnumType Name="HorseAmenities" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="HoursDaysOfOperation" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="IncomeIncludes" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="InteriorFeatures" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="IrrigationSource" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="LaborInformation" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="LandLeaseAmountFrequency" UnderlyingType="Edm.Int32"/>
      <EnumType Name="LaundryFeatures" UnderlyingType="Edm.Int32" IsFlags="true">
        <Member Name="In Kitchen"/>
        <Member Name="Gas Dryer Hookup"/>
        <Member Name="Washer"/>
        <Member Name="Dryer"/>
      </EnumType>
      <EnumType Name="LeasableAreaUnits" UnderlyingType="Edm.Int32"/>
      <EnumType Name="LeaseAmountFrequency" UnderlyingType="Edm.Int32"/>
      <EnumType Name="LeaseRenewalCompensation" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="LeaseTerm" UnderlyingType="Edm.Int32"/>
      <EnumType Name="Levels" UnderlyingType="Edm.Int32" IsFlags="true">
        <Member Name="One Level"/>
        <Member Name="Two Level"/>
        <Member Name="Split Level"/>
        <Member Name="Three or More Level"/>
        <Member Name="Multi Level"/>
        <Member Name="Loft"/>
      </EnumType>
      <EnumType Name="ListAOR" UnderlyingType="Edm.Int32"/>
      <EnumType Name="ListAgentAOR" UnderlyingType="Edm.Int32"/>
      <EnumType Name="ListAgentDesignation" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="ListOfficeAOR" UnderlyingType="Edm.Int32"/>
      <EnumType Name="ListingAgreement" UnderlyingType="Edm.Int32"/>
      <EnumType Name="ListingService" UnderlyingType="Edm.Int32">
        <Member Name="Full Service"/>
        <Member Name="Limited Service"/>
        <Member Name="Entry Only"/>
      </EnumType>
      <EnumType Name="ListingTerms" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="LivingAreaSource" UnderlyingType="Edm.Int32">
        <Member Name="Agent"/>
        <Member Name="Assessor"/>
        <Member Name="Estimate"/>
      </EnumType>
      <EnumType Name="LivingAreaUnits" UnderlyingType="Edm.Int32">
        <Member Name="SquareFeet"/>
      </EnumType>
      <EnumType Name="LockBoxType" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="LotDimensionsSource" UnderlyingType="Edm.Int32">
        <Member Name="Agent"/>
        <Member Name="Assessor"/>
        <Member Name="Estimate"/>
      </EnumType>
      <EnumType Name="LotFeatures" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="LotSizeSource" UnderlyingType="Edm.Int32">
        <Member Name="Agent"/>
        <Member Name="Assessor"/>
        <Member Name="Estimate"/>
      </EnumType>
      <EnumType Name="LotSizeUnits" UnderlyingType="Edm.Int32"/>
      <EnumType Name="MLSAreaMajor" UnderlyingType="Edm.Int32"/>
      <EnumType Name="MLSAreaMinor" UnderlyingType="Edm.Int32"/>
      <EnumType Name="MajorChangeType" UnderlyingType="Edm.Int32">
        <Member Name="Price reduction"/>
        <Member Name="back on market"/>
      </EnumType>
      <EnumType Name="MiddleOrJuniorSchool" UnderlyingType="Edm.Int32"/>
      <EnumType Name="MiddleOrJuniorSchoolDistrict" UnderlyingType="Edm.Int32"/>
      <EnumType Name="MlsStatus" UnderlyingType="Edm.Int32">
        <Member Name="Active"/>
        <Member Name="Inactive"/>
      </EnumType>
      <EnumType Name="MobileDimUnits" UnderlyingType="Edm.Int32"/>
      <EnumType Name="OccupantType" UnderlyingType="Edm.Int32">
        <Member Name="Owner"/>
        <Member Name="Tenent"/>
        <Member Name="Vacant"/>
      </EnumType>
      <EnumType Name="OperatingExpenseIncludes" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="OtherEquipment" UnderlyingType="Edm.Int32" IsFlags="true">
        <Member Name="Intercom"/>
        <Member Name="Generator"/>
        <Member Name="Central Vacuum Nozzle"/>
        <Member Name="Satellite Dish"/>
        <Member Name="TV Antenna"/>
      </EnumType>
      <EnumType Name="OtherStructures" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="OwnerPays" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="OwnershipType" UnderlyingType="Edm.Int32"/>
      <EnumType Name="ParkingFeatures" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="PatioAndPorchFeatures" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="PetsAllowed" UnderlyingType="Edm.Int32" IsFlags="true">
        <Member Name="Yes"/>
        <Member Name="No"/>
        <Member Name="Call"/>
        <Member Name="Cats OK"/>
        <Member Name="Dogs OK"/>
        <Member Name="Number Limit"/>
        <Member Name="Size Limit"/>
        <Member Name="Breed Restrictions"/>
      </EnumType>
      <EnumType Name="PoolFeatures" UnderlyingType="Edm.Int32" IsFlags="true">
        <Member Name="Indoor Pool"/>
        <Member Name="Outdoor Pool"/>
        <Member Name="Inground Pool"/>
      </EnumType>
      <EnumType Name="Possession" UnderlyingType="Edm.Int32" IsFlags="true">
        <Member Name="Close of Escrow"/>
        <Member Name="Close Plus 1 Day"/>
        <Member Name="Close Plus 2 Days"/>
        <Member Name="Close Plus 3 Days"/>
        <Member Name="Close Plus 3 to 5 Days"/>
        <Member Name="Close Plus 30 Days"/>
        <Member Name="Negotiable"/>
        <Member Name="Rental Agreement"/>
        <Member Name="See Remarks"/>
        <Member Name="Seller Rent Back"/>
        <Member Name="Subject to Tenant Rights"/>
      </EnumType>
      <EnumType Name="PossibleUse" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="PostalCity" UnderlyingType="Edm.Int32"/>
      <EnumType Name="PowerProductionType" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="PropertyCondition" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="PropertySubType" UnderlyingType="Edm.Int32">
        <Member Name=" ranSubType(),"/>
      </EnumType>
      <EnumType Name="PropertyType" UnderlyingType="Edm.Int32">
        <Member Name=" propertyType,"/>
      </EnumType>
      <EnumType Name="RentIncludes" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="RoadFrontageType" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="RoadResponsibility" UnderlyingType="Edm.Int32" IsFlags="true">
        <Member Name="City"/>
        <Member Name="County"/>
        <Member Name="Private"/>
      </EnumType>
      <EnumType Name="RoadSurfaceType" UnderlyingType="Edm.Int32" IsFlags="true">
        <Member Name="Gravel"/>
        <Member Name="Rock"/>
        <Member Name="Dirt"/>
        <Member Name="Granite"/>
        <Member Name="Cement"/>
        <Member Name="Asphalt"/>
      </EnumType>
      <EnumType Name="Roof" UnderlyingType="Edm.Int32" IsFlags="true">
        <Member Name="Metal"/>
        <Member Name="Gravel"/>
        <Member Name="Composite"/>
        <Member Name="Architectural Style"/>
        <Member Name="Spanish Tile"/>
      </EnumType>
      <EnumType Name="RoomType" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="SecurityFeatures" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="Sewer" UnderlyingType="Edm.Int32" IsFlags="true">
        <Member Name="Yes Connected"/>
        <Member Name="Septic"/>
      </EnumType>
      <EnumType Name="ShowingContactType" UnderlyingType="Edm.Int32" IsFlags="true">
        <Member Name="Agent"/>
        <Member Name="Broker"/>
        <Member Name="Seller"/>
      </EnumType>
      <EnumType Name="ShowingDays" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="ShowingRequirements" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="Skirt" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="SpaFeatures" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="SpecialLicenses" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="SpecialListingConditions" UnderlyingType="Edm.Int32" IsFlags="true">
        <Member Name="Standard"/>
        <Member Name="REO"/>
        <Member Name="Short Sale"/>
        <Member Name="Probate"/>
        <Member Name="Auction"/>
        <Member Name="NOD"/>
      </EnumType>
      <EnumType Name="StandardStatus" UnderlyingType="Edm.Int32">
        <Member Name="Active"/>
        <Member Name="Pending"/>
        <Member Name="Closed"/>
        <Member Name="Expired"/>
      </EnumType>
      <EnumType Name="StateOrProvince" UnderlyingType="Edm.Int32">
        <Member Name="State"/>
      </EnumType>
      <EnumType Name="StreetDirPrefix" UnderlyingType="Edm.Int32"/>
      <EnumType Name="StreetDirSuffix" UnderlyingType="Edm.Int32"/>
      <EnumType Name="StreetSuffix" UnderlyingType="Edm.Int32"/>
      <EnumType Name="StructureType" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="SubAgencyCompensationType" UnderlyingType="Edm.Int32"/>
      <EnumType Name="SyndicateTo" UnderlyingType="Edm.Int32" IsFlags="true">
        <Member Name="Zillow"/>
        <Member Name="Trulia"/>
        <Member Name="hotspads.com"/>
        <Member Name="nakedapartments.com"/>
      </EnumType>
      <EnumType Name="TaxStatusCurrent" UnderlyingType="Edm.Int32" IsFlags="true">
        <Member Name="Assessed"/>
        <Member Name="To Be Assessed"/>
      </EnumType>
      <EnumType Name="TenantPays" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="TransactionBrokerCompensationType" UnderlyingType="Edm.Int32"/>
      <EnumType Name="UnitsFurnished" UnderlyingType="Edm.Int32"/>
      <EnumType Name="UnitTypeType" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="Utilities" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="Vegetation" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="View" UnderlyingType="Edm.Int32" IsFlags="true">
        <Member Name="View"/>
        <Member Name="Lake View"/>
        <Member Name="Mountain View"/>
      </EnumType>
      <EnumType Name="WaterSource" UnderlyingType="Edm.Int32" IsFlags="true">
        <Member Name="Municipal"/>
        <Member Name="Irrigation District"/>
        <Member Name="Private Utility"/>
        <Member Name="Individual Well"/>
      </EnumType>
      <EnumType Name="WaterfrontFeatures" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="WindowFeatures" UnderlyingType="Edm.Int32" IsFlags="true"/>
      <EnumType Name="YearBuiltSource" UnderlyingType="Edm.Int32">
        <Member Name="Agent"/>
        <Member Name="Assessor"/>
        <Member Name="Estimate"/>
      </EnumType>
    </Schema>
    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="OpenHouseEnums">
      <EnumType Name="OpenHouseAttendedBy" UnderlyingType="Edm.Int32"/>
      <EnumType Name="OpenHouseStatus" UnderlyingType="Edm.Int32"/>
      <EnumType Name="OpenHouseType" UnderlyingType="Edm.Int32">
        <Member Name="Public"/>
        <Member Name="Broker"/>
        <Member Name="Office"/>
      </EnumType>
    </Schema>
    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Default">
      <EntityContainer Name="Container">
        <EntitySet Name="Office" EntityType="ODataService.Office"/>
        <EntitySet Name="Member" EntityType="ODataService.Member"/>
        <EntitySet Name="Property" EntityType="ODataService.Property"/>
        <EntitySet Name="OpenHouse" EntityType="ODataService.OpenHouse"/>
      </EntityContainer>
    </Schema>
    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="RESO.OData.Metadata">
      <Term Name="StandardName" Type="Edm.String">
        <Annotation Term="Org.OData.Core.V1.Description" String="The standard name of the entity, property, enumeration, or enumeration value"/>
      </Term>
    </Schema>
  </edmx:DataServices>
</edmx:Edmx>

Unable to access a specific svc

I'm hoping access the following API:

https://api.oregonlegislature.gov/odata/odataservice.svc/

I'm able to use your usage example no problem, but when trying to access this svc using those same steps, it doesn't appear to work as expected. Exploring the schema into the entity_sets returns an empty list, so I'm wondering if this svc is not configured in a compatible way? The files (this & the example) appear to be organized in a similar fashion, but I'm completely new to the odata standard and I really don't have any idea what to expect. So I was hoping you could shed a little light on where to start as I dive into this. Thanks.

Entity Key isn't set

Hi!
When using this library to query an SAP ByD OData service I get an empty entity:
image

When I enable debugger it looks like it's getting the data I want, just not setting the entity as expected/putting it somewhere I can access (see the last debug statement, I put ** around it):

>>> threads = byd_client.entity_sets.BusinessPartnerCollection.get_entity('00163E0DBAC41ED7AD87562C419D1A6C').execute()
... 
DEBUG:pyodata.service:Detected single property key, adding pair ObjectID->00163E0DBAC41ED7AD87562C419D1A6C to keyproperties
INFO:pyodata.service:Getting entity BusinessPartner for key 00163E0DBAC41ED7AD87562C419D1A6C and args {}
DEBUG:pyodata.service:New instance of EntityGetRequest for last segment: BusinessPartnerCollection
DEBUG:pyodata.service:Send (execute) GET request to https://my340402.sapbydesign.com/sap/byd/odata/cust/v1/accountinfo/BusinessPartnerCollection('00163E0DBAC41ED7AD87562C419D1A6C')
DEBUG:pyodata.service:  query params: {}
DEBUG:pyodata.service:  headers: {'Accept': 'application/json'}
DEBUG:urllib3.connectionpool:https://my340402.sapbydesign.com:443 "GET /sap/byd/odata/cust/v1/accountinfo/BusinessPartnerCollection('00163E0DBAC41ED7AD87562C419D1A6C') HTTP/1.1" 200 576
DEBUG:pyodata.service:Received response
DEBUG:pyodata.service:  url: https://my340402.sapbydesign.com/sap/byd/odata/cust/v1/accountinfo/BusinessPartnerCollection('00163E0DBAC41ED7AD87562C419D1A6C')
DEBUG:pyodata.service:  headers: {'content-type': 'application/json; charset=utf-8', 'content-length': '576', 'cache-control': 'no-cache, no-store', 'dataserviceversion': '2.0', 'c4c-odata-response-time': '111  ms', 'strict-transport-security': 'max-age=31536000; includeSubDomains'}
DEBUG:pyodata.service:  status code: 200
DEBUG:pyodata.service:  body: {"d":{"results":{"__metadata":{"uri":"https://my340402.sapbydesign.com/sap/byd/odata/cust/v1/accountinfo/BusinessPartnerCollection('00163E0DBAC41ED7AD87562C419D1A6C')","type":"cust.BusinessPartner"},"ObjectID":"00163E0DBAC41ED7AD87562C419D1A6C","RoleCode":"CRM000","StartDate":"\/Date(-62135769600000)\/","EndDate":"\/Date(253402214400000)\/","InternalID":"1060169","BusinessPartnerDefaultWeb":{"__deferred":{"uri":"https://my340402.sapbydesign.com/sap/byd/odata/cust/v1/accountinfo/BusinessPartnerCollection('00163E0DBAC41ED7AD87562C419D1A6C')/BusinessPartnerDefaultWeb"}}}}}
**DEBUG:pyodata.service:New entity proxy instance of type BusinessPartner from properties: {'results': {'__metadata': {'uri': "https://my340402.sapbydesign.com/sap/byd/odata/cust/v1/accountinfo/BusinessPartnerCollection('00163E0DBAC41ED7AD87562C419D1A6C')", 'type': 'cust.BusinessPartner'}, 'ObjectID': '00163E0DBAC41ED7AD87562C419D1A6C', 'RoleCode': 'CRM000', 'StartDate': '/Date(-62135769600000)/', 'EndDate': '/Date(253402214400000)/', 'InternalID': '1060169', 'BusinessPartnerDefaultWeb': {'__deferred': {'uri': "https://my340402.sapbydesign.com/sap/byd/odata/cust/v1/accountinfo/BusinessPartnerCollection('00163E0DBAC41ED7AD87562C419D1A6C')/BusinessPartnerDefaultWeb"}}}}**
INFO:pyodata.service:Initiating property request for __len__
INFO:pyodata.service:Initiating property request for __len__
INFO:pyodata.service:Initiating property request for url

As a result I seem to get an error when I try to get a property from that:

>>> threads.InternalID
INFO:pyodata.service:Initiating property request for InternalID
Traceback (most recent call last):
  File "C:\Users\dwilliams\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pyodata\v2\service.py", line 783, in __getattr__
    return self._cache[attr]
KeyError: 'InternalID'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "C:\Users\dwilliams\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pyodata\v2\service.py", line 786, in __getattr__
    value = self.get_proprty(attr).execute()
  File "C:\Users\dwilliams\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pyodata\v2\service.py", line 847, in get_proprty
    path = urljoin(self.get_path(), name)
  File "C:\Users\dwilliams\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pyodata\v2\service.py", line 830, in get_path
    return self._entity_set._name + self._entity_key.to_key_string()  # pylint: disable=protected-access
AttributeError: 'NoneType' object has no attribute 'to_key_string'
INFO:pyodata.service:Initiating property request for __len__
INFO:pyodata.service:Initiating property request for __len__
INFO:pyodata.service:Initiating property request for url

If I do something like this, it sets the entity key for each entity:

>>> bp_coll = byd_client.entity_sets.BusinessPartnerCollection.get_entities().select('ObjectID,InternalID').execute()
>>> print(bp_coll[0].InternalID)
'NBS'

image

Am I doing something wrong here..?

Thanks for your time and expertise,
Dan Williams

need help

Hi,

I am getting error as below.

pyodata.exceptions.HttpError: Metadata request failed, status code: 401, body:

how to query parametrized collection

We have OData service in which one of collection requires input parameters - how we can solve it using pyodata?

Using web browser it works using collection name, parameters passed in brackets and added "/Results" at the end of URI.

No result from get_entities

Hi,

I am using the library to get data from an endpoint. Here is my endpoint:

https://.../sap/c4c/odata/v1/collection/

However, the API only returns the ObjectID and not other columns.

When I do a call like this:

>>> client.entity_sets.Collection.get_entities().select('LastChangeDate').execute()
I get the following error:

Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "/.../service.py", line 779, in __repr__
    return self._entity_key.to_key_string()
AttributeError: 'NoneType' object has no attribute 'to_key_string'

For following command I only get the objectID back:

>>> client.entity_sets.Collection.get_entities().top(1).execute()

[('00163E08ABF01ED792DXXXXX')

Any Help?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.