Serialization of Types for Transfer Over HTTP --------------------------------------------- Boolean ~~~~~~~ When the response is simply a boolean True or False, the response returned is in one of two forms: a) For cases where false is a valid response: a single character "1" if *True*, or "0" if *False* b) For cases where false coincides with a DataONE exception: an arbitrary body if *True* (ignored by caller), and an error-indicating HTTP status code and serialized error object if *False*. ObjectList ~~~~~~~~~~ JSON .... :: { 'start': <integer>, 'count': <integer>, 'total': <integer>, 'objectInfo': [ { 'identifier':<IdentifierType>, 'objectFormat':<ObjectFormatType>, 'checksum': { 'algorithm':<checkSum Algorithm Type>, 'value':<SHA1 hash of object> }, 'dateSysMetadataModified':<DateTime>, 'size':<integer> }, ... ] } CSV ... :: #<start>,<count>,<total> identifier,objectFormat,algorithm,checksum,dateSysMetadataModified,size "<identifier>","<object class>","<SHA-1 | SHA-224 | MD5 | ...>","<SHA1 hash of object>","<date time last modified>",<byte size of object> XML ... :: <d1:listObjects xmlns:d1="http://dataone.org/service/types/ListObjects/0.1" xmlns:common="http://dataone.org/service/types/common/0.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" count="_integer_" start="_integer_" total="_integer_"> <objectInfo> <identifier>_identifier_</identifier> <objectFormat>_object class_</objectFormat> <checksum algorithm='SHA-1 | SHA-224 | MD5 | ...'>_hash of object_</checksum> <dateSysMetadataModified>_date time last modified_</dateSysMetadataModified> <size>_byte size of object_</size> </objectInfo> ... </d1:listObjects HTML .... .. TODO:: Define ObjectList rendering in HTML DescribeResponse ~~~~~~~~~~~~~~~~ Returned in response to :func:`MN_crud.describe` which is called using the HTTP HEAD verb. As such, the response is entirely in the HTTP headers (no body). :Content-Length: :attr:`SystemMetadata.size` :Last-Modified: <dateSysMetadataModified> :DataONE-ObjectFormat: <objectFormat> :DataONE-Checksum: <checksumAlgorithm>,<checksum> Identifier ~~~~~~~~~~ Returned as a simple string. SystemMetadata ~~~~~~~~~~~~~~ Currently returned only in the XML form. ObjectLocationList ~~~~~~~~~~~~~~~~~~ JSON .... :: { 'identifier':'1234', 'locations': [ ['mn1.dataone.org/mn', 'http://mn1.dataone.org/mn/object?id=1234'], ['mn2.dataone.org/some_base/mn', 'http://mn2.dataone.org/some_base/mn/object?id=1234'], ['cn.dataone.org/cn', 'http://cn.dataone.org/cn/object?id=1234'] ] } CSV ... :: #1234 node,url 'mn1.dataone.org/mn','http://mn1.dataone.org/mn/object?id=1234' 'mn2.dataone.org/some_base/mn','http://mn2.dataone.org/some_base/mn/object?id=1234' 'cn.dataone.org/cn','http://cn.dataone.org/cn/object?id=1234' XML ... :: <locations identifier='1234'> <location node='mn1.dataone.org/mn' href='http://mn1.dataone.org/mn/object?id=1234' /> <location node='mn2.dataone.org/some_base/mn' href='http://mn1.dataone.org/some_base/mn/object?id=1234' /> <location node='cn.dataone.org/cn' href='http://cn.dataone.org/cn/object?id=1234' /> </locations> HTML .... :: ... <ol identifier='1234'> <a href='http://mn1.dataone.org/mn/object?id=1234'>mn1.dataone.org/mn</a> <a href='http://mn2.dataone.org/some_base/mn/object?id=1234'>mn1.dataone.org/some_base/mn</a> <a href='http://cn.dataone.org/cn/object?id=1234'>cn.dataone.org/cn</a> </ol> ...