I have a Fedora object which contains an XML datastream with some content, and several referenced datastreams pointing to various different XSLT’s.  I’d like to create one disseminator to do each transformation.  For example, I’m converting my XML content to HTML, but each transformation uses a different template and adds a different header/footer.


I imported the behavior definition and behavior mechanism that is used in example 3 of the tutorial to do the transformations; the one that points to the http://localhost/saxon/ service and will do a simple XML transformation given a XSL transform and a XML source file. 


I added a disseminator to my object that uses this bDef/bMech to do the first transformation and provided the XML datastream as the source and XSL1 datastream as the transform.  Now, I want to use the same bDef/bMech to create a second disseminator on the object that will use the XSL2 datastream as the transform input. 


Although I am able to create & import a FOXML representation of a Fedora object that contains 2 different disseminators referencing the same bDef/bMech, I can’t actually use the disseminators because they are both referenced via the same URL: http://localhost/fedora/get/demo:34/demo:ex3bDef/getContent/, which appears to be based on the disseminator’s BDEF_CONTRACT_PID instead of the ID


Would it be possible to reference an object disseminator by the ID instead of the BDEF_CONTRACT_PID, so that you get something like: http://localhost/fedora/get/demo:34/DISS1/getContent/  and http://localhost/fedora/get/demo:34/DISS2/getContent/ 


 I think a workaround would be to just create multiple methods with different names in the bDef and bMech that point to the same service and accept the same inputs, so that I have something like:

http://localhost/fedora/get/demo:34/demo:ex3bDef/getTransform1/ and http://localhost/fedora/get/demo:34/demo:ex3bDef/getTransform2/


But, that doesn’t seem very extensible; at least not in this scenario, since those methods do exactly the same thing just with different transform inputs.


I’m new to using Fedora, so maybe I’m just missing something.  Can anyone provide insight to how they might approach this?



Jennifer Hare


Office of Information Technology

University of Maryland, College Park