You can specify any number of headers, just separate them with a 'double-pipe' ('||').
One potential problem with the simple parameter substitutions performed by the task is that the service might expect a different format or expression of a value than the way it is stored in the item metadata. For example, a DOI service might expect a bare prefix/suffix notation ('10.000/12345'), whereas the DSpace metadata field might have a URI representation ('http://dx.doi.org/10.000/12345'). In these cases one can declare a 'transformation' of a value in the template. For example:
The 'doi:' prepended to the metadata field name declares that the value of the 'dc.relation.isversionof' field should be transformed before the substitution into the template using a transformation named 'doi'. The transformation is itself defined in the same configuration file as follows:
transform.doi=match 10. trunc 60
This would be read as: exclude the value string up to the occurrence of '10.', then truncate any characters after length 60. You may define as many transformations as you want in any task, although generally 1 or 2 will suffice. They keywords 'match', 'trunc', etc are names of 'functions' to be applied (in the order entered). The currently available functions are:
'cut' <number> = remove number leading characters 'trunc' <number> = remove trailing characters after number length 'match' <pattern> = start match at pattern 'text' <characters> = append literal characters (enclose in ' ' when whitespace needed)
When the task is run, if the transformation results in an invalid state (e.g. cutting more characters than there are in the value), the un-transformed value will be used and the condition will be logged.
Transformations may also be applied to values returned from the web service. That is, one can apply the transformation to a value before assigning it to a metadata field. In this case, the declaration occurs in the data map, not the template:
Here the task will apply the 'shorten' transformation (which must be defined in the same config file) before assigning the value to 'dc.publisher'.
NoOp Curation Task
This task does absolutely nothing. It is intended as a starting point for developers and administrators wishing to learn more about the curation system.