In
reading METS 1.7 schema and the METS Primer, I ran across what appears to be a discrepancy
in the discussion of the <transformFile> element. The example in
the Primer (quoted at the end of this message) clearly shows content inside the
transformFile element, though the content shown is a bit odd:
<sample01.tar.gz |
tar -xvf >
I
would have expected that content to have CDATA marked sections around it or the
< escaped. When I load the 1.7 METS schema in Oxygen 9.0, however, it
tells me that the transformFile element is declared to have an empty content
model and that content isn’t allowed at this location. I looked in
the schema and there is no internal documentation for the transformFile element
and only a brief mention in the change logs regarding this element. So is
the example wrong or the schema?
What
got me interested in this example was that I was looking for the METS way to describe
locations inside a complex tar file, one with a directory tree inside the
tar. The markup in this example seems a bit squishy: the link from the
TIFF and JPEG back to the tar isn’t clear…at least not to me
(grin). It took me a couple of readings to realize that the rule here was
that to actually locate the TIFF file, you had to read sideways in the tree,
find a preceding sibling element with USE=”Container”, move to the
child FLocat and child transformFile and then apply the transformation rule. I
was expecting that the xlink:href on the extracted file would point back to the
tar file explicitly as the location.
This transformFile
element is an interesting concept; is anyone using transformFile in their
profile? The index to profiles doesn’t go to that level of
granularity.
---
EXCERPT
FROM METS PRIMER . . . .
TRANSFORM FILE -- EXAMPLE
The following example describes a *.tar.gz file which
has two embedded files within it, one a TIFF file and the other a JPEG file of
the same image. To use the <fileSec> to describe these files, you could
use the <transformFile> element in the following way:
<mets:fileSec
ID="TransformEX_01">
<mets:fileGrp
ID="TAR_GZ_container_01" USE="Container">
<mets:file
MIMETYPE="application/tar.gz" USE="Container">
<mets:FLocat
xlink:href="file:sample01.tar.gz" ID="sampleTar01.gz"
LOCTYPE="URL"
/>
<mets:transformFile
TRANSFORMORDER="1" TRANSFORMTYPE="decompression"
TRANSFORMALGORITHM="gunzip">
<sample01.tar.gz
| tar -xvf >
</mets:transformFile>
<mets:file
SEQ="1" MIMETYPE="image/tiff" CHECKSUM=
"c1b82611e48066016ceb8daa93d46de7"CHECKSUMTYPE="MD5">
<mets:FLocat
xlink:href="file:sample01_image01.tiff" LOCTYPE="URL"
USE="Archival
Master"/>
</mets:file>
<mets:file
SEQ="2" MIMETYPE="image/jpeg" CHECKSUM=
"c3cb82611e48066016ceb8daa93d46df5"
CHECKSUMTYPE="MD5">
<mets:FLocat
xlink:href="file:sample01_image01jpeg"
LOCTYPE="URL"USE="Display
Derivative"/>
</mets:file>
</mets:file>
</mets:fileGrp>
</mets:fileSec>
COMPLETE FILE SECTION -- EXAMPLES