Package sword2 :: Module service_document
[hide private]
[frames] | no frames]

Module service_document

source code


Class to accept, parse and make queriable the Service Document response.

Example:

>>> doc = '''<?xml version="1.0" ?>
<service xmlns:dcterms="http://purl.org/dc/terms/"
    xmlns:sword="http://purl.org/net/sword/terms/"
    xmlns:atom="http://www.w3.org/2005/Atom"
    xmlns="http://www.w3.org/2007/app">

    <sword:version>2.0</sword:version>
    <sword:maxUploadSize>16777216</sword:maxUploadSize>

    <workspace>
        <atom:title>Main Site</atom:title>

        <collection href="http://swordapp.org/col-iri/43">
            <atom:title>Collection 43</atom:title>
            <accept>*/*</accept>
            <accept alternate="multipart-related">*/*</accept>
            <sword:collectionPolicy>Collection Policy</sword:collectionPolicy>
            <dcterms:abstract>Collection Description</dcterms:abstract>
            <sword:mediation>false</sword:mediation>
            <sword:treatment>Treatment description</sword:treatment>
            <sword:acceptPackaging>http://purl.org/net/sword/package/SimpleZip</sword:acceptPackaging>
            <sword:acceptPackaging>http://purl.org/net/sword/package/METSDSpaceSIP</sword:acceptPackaging>
            <sword:service>http://swordapp.org/sd-iri/e4</sword:service>
        </collection>
    </workspace>
</service>'''

>>> from sword2 import ServiceDocument
>>> s = ServiceDocument(doc)
>>> s.maxUploadSize
16777216
>>> s.workspaces
[('Main Site', [<sword2.service_document.Collection object at 0x167be10>])]

>>> for c in s.workspaces[0][1]: print c
... 
Collection: 'Collection 43' @ 'http://swordapp.org/col-iri/43'. Accept:[]
SWORD: Collection Policy - 'Collection Policy'
SWORD: Treatment - 'Treatment description'
SWORD: Accept Packaging: '['http://purl.org/net/sword/package/SimpleZip', 'http://purl.org/net/sword/package/METSDSpaceSIP']'
SWORD: Nested Service Documents - 'http://swordapp.org/sd-iri/e4'

Classes [hide private]
  ServiceDocument
Variables [hide private]
  sd_l = logging.getLogger(__name__)
  __package__ = 'sword2'