1) Use document() function within an XSL transformation
2) Transform your manifest, create XInclude statements and run through the XInclude transformer.
3) Transform your manifest, create CInclude statements and run through the CInclude transformer.
CInclude allows you to call Cocoon pipelines so it is very powerful. I would recommend it.
http://xml.apache.org/cocoon/userdocs/transformers/cinclude- transformer.html
In a nutshell your fileGenerator will read manifest.xml
<manifest> <resource link="somefile.xml"/> <resource link="someotherfile.xml"/> </manifest>
It will run it through some XSL code that will generate
<manifest> <cinclude:include src="somefile.xml"/> <cinclude:include src="someotherfile.xml"/> </manifest>
This runs through CInclude with the final result
<manifest> <somefile>stuff</somefile> <someotherfile>different stuff</someotherfile> </manifest>
Note that the Cinclude statements can use the cocoon protocol which is very powerful
<cinclude:include src="cocoon:/somefile.xml"/>
Hope that helps. Darren
On Monday, Mar 17, 2003, at 14:23 Europe/Berlin, David Balch wrote:
Hi Yves, thanks for the reply.
-----Original Message----- From: Yves Vindevogel 17 March 2003 12:50
Something like this <map:match pattern="sxw/*/*.html"> <map:aggregate element="document"> <map:part src="sxw/{1}/{2}.sxw!/content.xml"/> <map:part src="sxw/{1}/{2}.sxw!/meta.xml"/> </map:aggregate> <map:transform src="xsl/html.sxwfiles.xsl"> <map:parameter name="relpath" value="../.."/> <map:parameter name="use-request-parameters" value="true"/> </map:transform> <map:serialize/> </map:match>
Unfortunately this isn't what I'm trying to do. In your case you already
know that you want to get "content.xml" and "meta.xml", but in mine, I don't
know what the filenames will be - that's largely what the IMS manifest is
there to describe.
Hopefully the following will make it more clear:
/////////// Mockup IMS manifest fragment \\\\\\\\\\\\
<organization>
<!-- *The 'organization' is a heirarchy for the content in the IMSCP* -->
<title>Example of IMSCP</title> <item identifier="ItemOne" identifierref="ItemOneResource"> <title>The first item in the 'organization'</title> </item> <item identifier="ItemTwo" identifierref="ItemTwoResource"> <title>The second item in the 'organization'</title> </item> </organization>
<resources> <!-- *'resource's are pointers to the content files and metadata* -->
<resource identifier="ItemOneResource" type="webcontent" adlcp:scormtype="asset"> <metadata>
<!-- *The metadata file is needed for a description of the file* -->
<schema>ADL SCORM</schema>
<schemaversion>1.2</schemaversion>
<!-- *this is the name of one of the files I want to aggregate* -->
<adlcp:location>ItemOneMetadata.xml</adlcp:location>
</metadata>
<file href="ItemOneFile.html"/>
</resource>
<resource identifier="ItemTwoResource" type="webcontent" adlcp:scormtype="asset"> <metadata> <schema>ADL SCORM</schema> <schemaversion>1.2</schemaversion>
<!-- *this is the name of another of the files I want to aggregate*
-->
<adlcp:location>ItemTwoMetadatameta.xml</adlcp:location>
</metadata>
<file href="ItemTwoFile.html"/>
</resource>
</resources>
\\\\\\\\\\\\\ End Mockup IMS manifest fragment /////////////
The desired aggregation would be something like:
<map:match pattern="*/*.html">
<map:aggregate element="document">
<!-- the following 'map:part's are created from the IMS manifest -->
<map:part src="{1}/ItemOneMetadatameta.xml"/>
<map:part src="{1}/ItemTwoMetadatameta.xml"/>
</map:aggregate>
...
</map:match>
Does that make sense?
Cheers, Dave.
Hi,Packages[IMS-CP], to help
I'm trying to get Cocoon working with IMS Contentmy development process, and could do with some help.and make an
Short version: Can Cocoon accept an XML file listing several other files,aggregate from the files listed? If so, how?
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Darren Petrie [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]