In previous versions of Fedora, datastream inputs to service methods were limited to datastreams that were members of a given data object. A typical scenario involved a dissemination that used XSL to transform one metadata format into another.
For example, in order to create a dissemination which used an XSL document to transform one metadata format into another, each object was required to have a member datastream that contained (or referenced) the XSL document, even though the XSL document was shared across all of the objects.
sDep MethodMap
<fmm:MethodMap name="MethodMap - Document Transform SDEF Methods" xmlns:fmm="http://fedora.comm.nsdlib.org/service/methodmap"> <fmm:Method operationName="transform" wsdlMsgName="transformRequest" wsdlMsgOutput="transformResponse"> <fmm:DatastreamInputParm parmName="DC" passBy="URL_REF" required="true"/> <fmm:DatastreamInputParm parmName="XSL" passBy="URL_REF" required="true"/> <fmm:DefaultInputParm parmName="CLEAR_CACHE" passBy="VALUE" required="true" defaultValue="yes" /> <fmm:MethodReturnType wsdlMsgName="transformResponse" wsdlMsgTOMIME="text/xml"/> </fmm:Method> </fmm:MethodMap>
sDep DSInputSpec
<fbs:DSInputSpec xmlns:fbs="http://fedora.comm.nsdlib.org/service/bindspec" label="Datastream Inputs"> <fbs:DSInput DSMax="1" DSMin="1" DSOrdinality="false" wsdlMsgPartName="DC"> <fbs:DSInputLabel>Dublin Core</fbs:DSInputLabel> <fbs:DSMIME>text/xml</fbs:DSMIME> <fbs:DSInputInstruction>XML source to be transformed</fbs:DSInputInstruction> </fbs:DSInput> <fbs:DSInput DSMax="1" DSMin="1" DSOrdinality="false" wsdlMsgPartName="XSL" pid="demo:dc2mods.cmodel"> <fbs:DSInputLabel>XSL</fbs:DSInputLabel> <fbs:DSMIME>application/xml</fbs:DSMIME> <fbs:DSInputInstruction>DC to MODS XSLT</fbs:DSInputInstruction> </fbs:DSInput> </fbs:DSInputSpec>