...datastreams is in root element.
Logged In: YES
I get the following error when I try batch ingest with the Fedora 2.1 client
(to a Fedora 2.1 repository), but I am able to ingest the same file without
any problems using a Fedora 2.0 client and repository.
Ingesting Batch . . .
ingest failed for: object specific.xml
fedora.server.errors.ObjectIntegrityException: Parse error parsing DC XML
Metadata: The prefix "dc" for element "dc:creator" is not bound.
ingest format specified was: "metslikefedora1"
===BATCH HAS FAILED===
consider manually backing out any objects which were already successfully
ingested in this batch
The mets file (with the datastreams section omitted) is listed below:
<?xml version="1.0" encoding="UTF-8"?>
<!-- METS format: four images plus Dublin Core for a bulk TIFF ingest -->
ext.xsd" OBJID="fedorawillreplace:0814" TYPE="FedoraObject" LABEL="template:
multi-image plus metadata" PROFILE="image/tiff">
<!-- This is the Dublin core metadata -->
<METS:dmdSecFedora ID="DC" STATUS="A">
<METS:descMD ID="DC.0" CREATED="2006-03-01T10:28:34">
<METS:mdWrap MIMETYPE="text/xml" MDTYPE="OTHER" LABEL="Dublin Core
<dc:title>Engelmann spruce 15 years after planting.</dc:title>
<dc:creator>Ohio Agricultural Experiment Station. Dept. of
<dc:subject>Forestry engineering </dc:subject>
<dc:description>Engelmann spruce 15 years after planting. Item
<dc:publisher>Ohio Agricultural Research and Development
<dc:contributor>Ohio Agricultural Research and Development
<dc:source>Taken from 2 x 3 glass slide #814.</dc:source>
<dc:relation>Ohio Agricultural Experiment Station Forestry Image
------- Additional Comment #1 From Ross Wayland 2006-03-03 13:09 [reply] -------
This bug is not specific to Batch Ingest utility but applies to Ingest method
in general when in-line XML datastreams have their namespace information
declared in the root element.
A temporary workaround is to declare the namespace information locally in the
in-lin XML. e.g. Fro the DC datastream:
------- Additional Comment #2 From Chris Wilper 2006-03-07 15:50 [reply] -------
Just a note: I checked the revision history of METSDODeserializer.java and
nothing significant changed since I "fixed" this last time. Curious.
Logged In: YES
I can think of three approaches to handling this:
If foxml or mets is submitted with "X" datastream
namespaces declared at the root of the document
(and not inside the datastream itself):
Throw an error indicating this (in a more clear
manner than currently given) at ingest time.
- I think this is the easiest to implement and
Automatically move namespace declarations to
the inline xml sections at ingest time.
- This would require that we essentially
change the datastream content as submitted.
It's more effort than disallowing, and
harder to rationalize. Consider the questions:
A) Should the namespace declaration be considered
part of the datastream content? I think the answer
is yes. This is certainly the case for managed content
that happens to be XML.
B) What do we do if a checksum is submitted with the
inline XML content, and the automatic change would make
Allow namespaces to be declared at the root,
so that inline XML doesn't have to be valid
in itself, but is only valid in the context
of the foxml document that declares the
namespace(s) at the root.
- I think this approach would be unwise.
One obvious reason is that it would make it
impossible to validate inline XML outside
the context of the FOXML or METS in which
it resides (consider the admin client, or
other utilities that work with datastreams
without awareness of their "wrapping format")
Changed priority to 5 -- I don't think this is causing too many headaches out there.
Ross and I talked about this and generally agreed that [Disallow] makes sense here.
So the scope of this should be:
- Make the validation give more meaningful error messages (instructing how to fix) in this case
- Make sure all the demo objects and examples don't declare namespaces at the root that are a) unused, or b) only used in the xml content