Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

The DIDL XML container, as defined in DRIVER, is a document with one top-level Item element. The Item contains several child Item elements. These child item elements appear in three different kind of types. Between the straight brackets the cardinality of the XML elements are shown:

Code Block
xml
xml
<metadata> 
  
<metadata>
<didl:DIDL ...>

 
    <didl:Item>

 
      <didl:Item>...</didl:Item>

 
      <didl:Item>...</didl:Item>

 
      <didl:Item>...</didl:Item>

 
    </didl:Item>

 
  </didl:DIDL>

 
</metadata>

Anchor
_Toc213761484
_Toc213761484
Anchor
_Toc213761664
_Toc213761664
Anchor
_Toc214332925
_Toc214332925
Root Element: DIDL document Identification attribute

...

<didl:DIDL
DIDLDocumentId="urn:nbn:nl:ui:10-15290" <!-- Identification -->
...
>
...
</didl:DIDL>


The DIDLDocumentId attribute contains the ID of the DIDL wrapper. This CAN be the same as the OAI-Identifier that is being used to get a record. The DIDL wrapper can be used as an autonomous entity out of the OAI-PMH context, therefore a DIDL is not the same ‘thing' as an OAI record. There is a demand for Persistent Identifiers assigned to digital objects in the future (mandatory for the OAI-ORE project.). For libraries it is recommended to use urn:nbn:{country code}:{isil library code} ISO/NP 15511: International Standard Identifier for Libraries and Related Organizations (ISIL)
http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=52666 - {object id}. {object id} could be the database number. It is recommended to store this number in a separate field and not to auto generate from the database id because a database update in the future will change these numbers and the persistency could be lost.

...

<didl:DIDL ...>
<didl:Item>
<didl:Descriptor>...</didl:Descriptor> <!-- Identification -->
<didl:Descriptor>...</didl:Descriptor> <!-- Modification date -->
<didl:Item>...</didl:Item>
<didl:Item>...</didl:Item>
<didl:Item>...</didl:Item>
...
</didl:Item>
</didl:DIDL>

Example on level two; Object type added:

<didl:Item> <!-- Level 1 Root Item -->
<didl:Item> <!-- Level 2 Child Item -->
<didl:Descriptor>...</didl:Descriptor> <!-- Identification -->
<didl:Descriptor>...</didl:Descriptor> <!-- Modification date -->
<didl:Descriptor>...</didl:Descriptor> <!-- Object type -->
...
</didl:Item>
<didl:Item>...</didl:Item>
<didl:Item>...</didl:Item>
<didl:Item>...</didl:Item>
...
</didl:Item>
</didl:DIDL>

...

<didl:DIDL ...>
<didl:Item>
<didl:Item>...</didl:Item> <!-- metadata -->
<didl:Item>...</didl:Item> <!-- objects -->
<didl:Item>...</didl:Item> <!-- jump-off-page -->
</didl:Item>
</didl:DIDL>

...

<didl:Item>
<didl:Item> <!-one or many occurrences->
<didl:Descriptor>
<didl:Statement mimeType="application/xml">
<dip:ObjectType>info:eu-repo/semantics/descriptiveMetadata</dip:ObjectType>
</didl:Statement>
</didl:Descriptor>
...
</didl:Item>
<didl:Item> <!-one or many occurrences->
<didl:Descriptor>
<didl:Statement mimeType="application/xml">
<dip:ObjectType>info:eu-repo/semantics/objectFile</dip:ObjectType>
</didl:Statement>
</didl:Descriptor>
...
</didl:Item>
<didl:Item> <!-- zero or one occurrences -->
<didl:Descriptor>
<didl:Statement mimeType="application/xml">
<dip:ObjectType>
info:eu-repo/semantics/humanStartPage</dip:ObjectType>
</didl:Statement>
</didl:Descriptor>
...
</didl:Item>
</didl:Item>

...

 

<didl:Item>

 

<didl:Descriptor> <didl:Statement mimeType="application/xml"> <dip:ObjectType> info:eu-repo/semantics/descriptiveMetadata</dip:ObjectType> </didl:Statement> </didl:Descriptor>

1

<didl:Descriptor> <!-- This metadata instance has its own ID number --> <didl:Statement mimeType="application/xml"> <dii:Identifier>info:doi/10.1705/74836724783</dii:Identifier> </didl:Statement> </didl:Descriptor>

2

<didl:Descriptor> <!-- This record has its own Modification date --> <didl:Statement mimeType="application/xml"> <dcterms:modified>2006-12-20T10:29:12Z</dcterms:modified> </didl:Statement> </didl:Descriptor>

 

<didl:Component>

3

<didl:Resource mimeType="application/xml"> <!-- the DC data --> <oai_dc:dc xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd"> <dc:creator>...</dc:creator> <dc:creator>...</dc:creator> <dc:title> ... </dc:title> ... </oai_dc:dc> </didl:Resource>

 

</didl:Component>

 

</didl:Item>

...

The second Item ObjectType contains a link to one digital object. This is always "by-reference" to limit the file size, when used for metadata transfer purpouses. ("by-value" is possible but increases the file size and touches the issueon ownership, use base64 encoding, not exampled here), and the Item element has an ObjectType statement with an info:eu-repo/semantics/objectFile URI. An objectFile Item can occur more than once. See the following:

<didl:Item> ... <!-- Below this line one can find links to one or more digital objects -->

<didl:Item> <!-- First Item for a File/Bitstream --> <didl:Descriptor> <didl:Statement mimeType="application/xml"> <dip:ObjectType>info:eu-repo/semantics/objectFile</dip:ObjectType> </didl:Statement> </didl:Descriptor> ... <didl:Component> <didl:Resource mimeType="application/pdf" ref="http://my.server.nl/report.pdf"/></didl:Component> </didl:Item>

<didl:Item> <!-- Second Item for a File/Bitstream --> <didl:Descriptor> <didl:Statement mimeType="application/xml"> <dip:ObjectType>info:eu-repo/semantics/objectFile</dip:ObjectType> </didl:Statement> </didl:Descriptor> ... <didl:Component> <didl:Resource mimeType="application/pdf" ref="http://my.server.nl/appendix.pdf"/><didl:Component> </didl:Item>

<didl:Item> <!-- Third Item for a File/Bitstream --> <didl:Descriptor> <didl:Statement mimeType="application/xml"> <dip:ObjectType>info:eu-repo/semantics/objectFile</dip:ObjectType> </didl:Statement> </didl:Descriptor> ... <didl:Component> <didl:Resource mimeType="application/pdf" ref="http://my.server.nl/datasheets.xls"/><didl:Component> </didl:Item>

</didl:Item>

...

The third ObjectType Item element contains a link to the jump-off page or intermediate page. This is done in the same way as for the Object Item element. Currently this is restricted to 1 Item of this type; there are no identifier elements, nor modification date elements present. This Item element is optional:

<didl:Item> ... <!-- Below this line; an Item with a link to one optional Intermediate page -->

<didl:Item> <didl:Descriptor> <didl:Statement mimeType="application/xml"> <dip:ObjectType> info:eu-repo/semantics/humanStartPage </dip:ObjectType> </didl:Statement> </didl:Descriptor> ... <didl:Component> <didl:Resource mimeType="application/html" ref="http://my.server.nl/mypub.html"/></didl:Component> </didl:Item>

</didl:Item>