Old Release
This documentation relates to an old version of DSpace, version 5.x. Looking for another version? See all documentation.
Support for DSpace 5 ended on January 1, 2023. See Support for DSpace 5 and 6 is ending in 2023
SWORD (Simple Web-service Offering Repository Deposit) is a protocol that allows the remote deposit of items into repositories. DSpace implements the SWORD protocol via the 'sword' web application. The specification and further information can be found at http://swordapp.org/.
SWORD is based on the Atom Publish Protocol and allows service documents to be requested which describe the structure of the repository, and packages to be deposited.
Enabling SWORD v2 Server
To enable DSpace's SWORD v2 server, just make sure the [dspace]/webapps/swordv2/
web application is available from your Servlet Container (usually Tomcat).
Configuring SWORD v2 Server
Configuration File: |
|
---|---|
Property: |
|
Example Value: | url = http://www.myu.ac.uk/swordv2 |
Informational Note: | The base url of the SWORD 2.0 system. This defaults to |
Property: |
|
Example Value: | collection.url = http://www.myu.ac.uk/swordv2/collection |
Informational Note: | The base URL of the SWORD collection. This is the URL from which DSpace will construct the deposit location URLs for collections. This defaults to |
Property: |
|
Example Value: | servicedocument.url = http://www.myu.ac.uk/swordv2/servicedocument |
Informational Note: | The service document URL of the SWORD collection. The base URL of the SWORD service document. This is the URL from which DSpace will construct the service document location urls for the site, and for individual collections. This defaults to |
Property: |
|
Example Value: | accept-packaging.collection.METSDSpaceSIP = http://purl.org/net/sword/package/METSDSpaceSIP accept-packaging.collection.SimpleZip = http://purl.org/net/sword/package/SimpleZip accept-packaging.collection.Binary = http://purl.org/net/sword/package/Binary |
Informational Note: | The accept packaging properties, along with their associated quality values where appropriate. |
Property: |
|
Example Value: | accept-packaging.item.METSDSpaceSIP = http://purl.org/net/sword/package/METSDSpaceSIP accept-packaging.item.SimpleZip = http://purl.org/net/sword/package/SimpleZip accept-packaging.item.Binary = http://purl.org/net/sword/package/Binary |
Informational Note: | The accept packaging properties for items. It is possible to configure this for specific collections by adding the handle of the collection to the setting, for example |
Property: |
|
Example Value: | accepts = application/zip, image/jpeg |
Informational Note: | A comma-separated list of MIME types that SWORD will accept. To accept all mimetypes, the value can be set to "*/*" |
Property: |
|
Example Value: | expose-communities = false |
Informational Note: | Whether or not the server should expose a list of all the communities to a service document request. As deposits can only be made into a collection, it is recommended to leave this set to false. |
Property: |
|
Example Value: | max-upload-size = 0 |
Informational Note: | The maximum upload size of a package through the SWORD interface (measured in bytes). This will be the combined size of all the files, metadata, and manifest file in a package - this is different to the maximum size of a single bitstream. |
Property: |
|
Example Value: | keep-original-package = true |
Informational Note: | Should DSpace store a copy of the orignal SWORD deposit package? |
Property: |
|
Example Value: | bundle.name = SWORD |
Informational Note: | The bundle name that SWORD should store incoming packages within if |
Property: | bundle.deleted |
Example Value: | bundle.deleted = DELETED |
Informational Note: | The bundle name that SWORD should use to store deleted bitstreams if |
Property: |
|
Example Value: | keep-package-on-fail = false |
Informational Note: | In the event of package ingest failure, provide an option to store the package on the file system. The default is false. The location can be set using the |
Property: |
|
Example Value: | failed-package-dir = /dspace/upload |
Informational Note: | If |
Property: |
|
Example Value: | on-behalf-of.enable = true |
Informational Note: | Should DSpace accept mediated deposits? See the SWORD specification for a detailed explanation of deposit On-Behalf-Of another user. |
Property: | on-behalf-of.update.mediators |
Example Value: | on-behalf-of.update.mediators = admin@mydspace.edu, mediator@mydspace.edu |
Informational Note: | Which user accounts are allowed to do updates on items which already exist in DSpace, on-behalf-of other users? |
Property: | verbose-description.receipt.enable |
Example Value: | verbose-description.receipt.enable = false |
Informational Note: | Should the deposit receipt include a verbose description of the deposit? For use by developers - recommend to set to "false" for production systems |
Property: | verbose-description.error.enable |
Example Value: | verbose-description.error.enable = true |
Informational Note: | should the error document include a verbose description of the error? For use by developers, although you may also wish to leave this set to "true" for production systems |
Property: | error.alternate.url |
Example Value: | error.alternate.url = http://mydspace.edu/xmlui/contact |
Informational Note: | The error document can contain an alternate url, which the client can use to follow up any issues. For example, this could point to the Contact-Us page on the XMLUI |
Property: | error.alternate.content-type |
Example Value: | error.alternate.content-type = text/html |
Informational Note: | The |
Property: |
|
Example Value: | generator.url = http://www.dspace.org/ns/sword/2.0/ |
Informational Note: | The URL which identifies DSpace as the software that is providing the SWORD interface. |
Property: |
|
Example Value: | generator.version = 2.0 |
Informational Note: | The version of the SWORD interface. |
Property: |
|
Example Value: | auth-type = Basic |
Informational Note: | Which form of authentication to use. Normally this is set to |
Property: |
|
Example Value: | upload.tempd = /dspace/upload |
Informational Note: | The location where uploaded files and packages are stored while being processed. |
Property: |
|
Example Value: | updated.field = dc.date.updated |
Informational Note: | The metadata field in which to store the updated date for items deposited via SWORD. |
Property: |
|
Example Value: | slug.field = dc.identifier.slug |
Informational Note: | The metadata field in which to store the value of the slug header if it is supplied. |
Property: |
|
Example Value: | author.field = dc.contributor.author |
Informational Note: | The metadata field in which to store the value of the atom entry author if it supplied. |
Property: |
|
Example Value: | dc.title |
Informational Note: | The metadata field in which to store the value of the atom entry title if it supplied. |
Property: |
|
Example Value: | disseminate-packaging.METSDSpaceSIP = http://purl.org/net/sword/package/METSDSpaceSIP disseminate-packaging.SimpleZip = http://purl.org/net/sword/package/SimpleZip |
Informational Note: | Supported packaging formats for the dissemination of packages. |
Property: | statement.bundles |
Example Value: | statement.bundles = ORIGINAL, SWORD, LICENSE |
Informational Note: | Which bundles should the Statement include in its list of aggregated resources? The Statement will automatically mark any bitstreams which are in the bundle identified by the |
Property: |
|
Example Value: | plugin.single.org.dspace.sword2.WorkflowManager = org.dspace.sword2.WorkflowManagerDefault |
Informational Note: | Which workflow manager to use. |
Property: | workflowmanagerdefault.always-update-metadata |
Example Value | workflowmanagerdefault.always-update-metadata = true |
Informational Note | Should the WorkflowManagerDefault plugin allow updates to the item's metadata to take place on items which are in states other than the workspace (e.g. in the workflow, archive, or withdrawn) ? |
Property: | workflowmanagerdefault.file-replace.enable |
Example Value | workflowmanagerdefault.file-replace.enable = false |
Informational Note | Should the server allow PUT to individual files? |
Property: |
|
Example Value: | mets-ingester.package-ingester = METS |
Informational Note: | Which package ingester to use for METS packages. |
Property: |
|
Example Value: | restore-mode.enable = false |
Informational Note: | Should the SWORD server enable restore-mode when ingesting new packages. If this is enabled the item will be treated as a previously deleted item from the repository. If the item has previously been assigned a handle then that same handle will be restored to activity. |
Property: |
|
Example Value: | simpledc.abstract = dc.description.abstractsimpledc.date = dc.datesimpledc.rights = dc.rights |
Informational Note: | Configuration of metadata field mapping used by the SimpleDCEntryIngester, SimpleDCEntryDisseminator and FeedContentDisseminator |
Property: |
|
Example Value | atom.author = dc.contributor.author |
Informational Note: | Configuration of metadata field mapping used by the SimpleDCEntryIngester, SimpleDCEntryDisseminator and FeedContentDisseminator |
Property: | metadata.replaceable |
Example Value | metadata.replaceable = dc.description.abstract, dc.rights, dc.title.alternative, dc.identifier.citation |
Informational Note | Used by SimpleDCEntryIngester: Which metadata fields can be replaced during a PUT to the Item of an Atom Entry document? Fields listed here are the ones which will be removed when a new PUT comes through (irrespective of whether there is a new incoming value to replace them) |
Property: |
|
Example Value: | multipart.entry-first = false |
Informational Note: | The order of precedence for importing multipart content. If this is set to |
Property: |
|
Example Value: | workflow.notify = true |
Informational Note: | If the workflow gets started (the collection being deposited into has a workflow configured), should a notification get sent? |
Property: |
|
Example Value: | versions.keep = true |
Informational Note: | When content is replaced, should the old version be kept? This creates a copy of the ORIGINAL bundle with the name V_YYYY-MM-DD.X where YYYY-MM-DD is the date the copy was created, and X is an integer from 0 upwards. |
Property: |
|
Example Value: | state.workspace.uri = http://localhost:8080/xmlui/state/inprogress state.workspace.description = The item is in the user workspace state.workflow.uri = http://localhost:8080/xmlui/state/inreview state.workflow.description = The item is undergoing review prior to acceptance in the archive |
Informational Note: | Pairs of states (URI and description) than items can be in. Typical states are |
Property: | workspace.url-template |
Example Value | workspace.url-template = http://mydspace.edu/xmlui/submit?workspaceID=#wsid# |
Informational Note | URL template for links to items in the workspace (items in the archive will use the handle). The |
Other configuration options exist that define the mapping between mime types, ingesters, and disseminators. A typical configuration looks like this:
plugin.named.org.dspace.sword2.SwordContentIngester = \ org.dspace.sword2.SimpleZipContentIngester = http://purl.org/net/sword/package/SimpleZip, \ org.dspace.sword2.SwordMETSIngester = http://purl.org/net/sword/package/METSDSpaceSIP, \ org.dspace.sword2.BinaryContentIngester = http://purl.org/net/sword/package/Binary plugin.single.org.dspace.sword2.SwordEntryIngester = \ org.dspace.sword2.SimpleDCEntryIngester plugin.single.org.dspace.sword2.SwordEntryDisseminator = \ org.dspace.sword2.SimpleDCEntryDisseminator # note that we replace ";" with "_" as ";" is not permitted in the PluginManager names plugin.named.org.dspace.sword2.SwordContentDisseminator = \ org.dspace.sword2.SimpleZipContentDisseminator = http://purl.org/net/sword/package/SimpleZip, \ org.dspace.sword2.FeedContentDisseminator = application/atom+xml, \ org.dspace.sword2.FeedContentDisseminator = application/atom+xml_type_feed # note that we replace ";" with "_" as ";" is not permitted in the PluginManager names plugin.named.org.dspace.sword2.SwordStatementDisseminator = \ org.dspace.sword2.AtomStatementDisseminator = atom, \ org.dspace.sword2.OreStatementDisseminator = rdf, \ org.dspace.sword2.AtomStatementDisseminator = application/atom+xml_type_feed, \ org.dspace.sword2.OreStatementDisseminator = application/rdf+xml