EPICUR - XML data transfer format, DTD and XML schema (alpha versions)

Description of XML data transfer format (PDF)

1. Objectives

With an XML-based data format, the basis is in place for providing an interface which will enable complete URN/URL administration procedures to be automated.

2. Functionality

A DTD and an XML schema is available for validating XML records.
The following functions (as at October 2003) can be realized with the XML data transfer format:

2.1 URN registration

The following UseCases can be transact as single or group reporting.

1 URN and 1 - n URLs

URNs registration for parts of digital objects with 1 - n URLs

Registering an alternative Persistent Identifier (PI) (other than "urn:nbn:de).

Registering a new version of a URN with 1 - n URLs

Subsequent registration of an alternative Persistent Identifier (PI) (other than "urn:nbn:de).

2.2 Reporting changes to URLs

The following UseCases can be transact as single or group reportings.

Deleting a URL

URL insert (i.e. subsequent reporting of an additional URL)

Updating a URL

3. XML record structure

An XML record is divided into 2 sections

3.1 Part 1: administrative information

Part 1 contains the following administrative information:

An example:

<administrative_data>
<delivery>
<authorisation>
<!-- Element used in legitimisation -->
<person_id>F6000123</person_id>
or
<!-- Alternative to "person_id". An ID which only works in conjunction with computer-controlled URN registration is permitted -->
<system_id>034jf0249r843</system_id>
<!-- URN sub-namespace: the aim is to check authorisations of an institution to alterate resolver entries -->
<urn_snid>urn:nbn:de:gbv:089</urn_snid>
or
<!- Alternative to "urn_snid". Extending this service to external URN namespaces is planned. In this case this element must be used. -->
<urn_nid>urn:issn</urn_nid>
<authorisation>
<!-- Specification of registration type. The example shows an initial URN registration -->
<update_status type="urn_new"/>
<!-- Details of transfer interface or protocol such as http -->
<transfer type="http"/>
<!-- Target address with information on processing success or failure; if no details are given, then the e-mail address of the contact person will be select from the database. To specify other information stored in the database concerning target address to confirm about processing status, then these can be given. -->
<resupply type="email"/>
<delivery>
<administrative_data>

3.2 Part 2: Resolver information

Example 1: Initial URN registration (1 URN, 2 URLs, single registration)

1 URL identifies the frontpage, 1 URL refers to a PDF document, resolving should point first to the frontpage URL.

<epicur>
<administrative_data>
[...]
<update_status type="urn_new"/>
<resupply type="email"/>
[...]
</administrative_data>
<record>
<identifier scheme="urn:nbn:de">urn:nbn:de:gbv:089-3321752945</identifier>
<resource>
<!-- URL of the object; attributes can be specified, so that during the resolving process a default URL (role=primary) is explicitly set, a URL is designated as the frontpage URL, so that it is possible for a URN to resolve to a meta-description of the object.-->
<identifier scheme="url" type="frontpage" role="primary">http://edok01.tib.uni-hannover.de/edoks/e01dh01/>/identifier>
<format scheme="imt">text/html>/format>
</resource>
<resource>
<!-- URL pointing to full text-->
<identifier scheme="url">http://deposit.d-nb.de/cgi-bin/dokserv?idn=962820598&dok_var=d1&dok_ext=pdf&filename=962820598.pdf</identifier>
<format scheme="imt">application/pdf</format>
</resource>
</record>
</epicur>

Example 2: Initial URN registration (1 URN, 2 URLs / group registration)

<epicur>
<administrative_data>
[...]
<update_status type="urn_new"/>
<resupply type="email"/>
[...]
</administrative_data>
<!-- 1st object -->
<record>
<identifier scheme="urn:nbn:de">urn:nbn:de:gbv:089-3321752945</identifier>
<resource>
<!-- Identification of the original URL as a frontpage URL, which should be initially pointed to during the resolving process -->
<identifier scheme="url" type="frontpage" role="primary" origin="original">http://edok01.tib.uni-hannover.de/edoks/e01dh01/</identifier>
<format scheme="imt">text/html</format>
</resource>
<resource>
<!-- archive URL identifier -->
<identifier scheme="url" origin="archive">http://deposit.d-nb.de/cgi-bin/dokserv?idn=962820598</identifier>
<format scheme="imt">application/pdf>/format>
</resource>
</record>
<!-- 2nd Object -->
<record>
<identifier scheme="urn:nbn:de">urn:nbn:de:gbv:089-3321759999</identifier>
<resource>
<identifier scheme="url" type="frontpage" role="primary">http://edok01.tib.uni-hannover.de/edoks/99999/</identifier>
<format scheme="imt">text/html</format>
</resource>
<resource>
<identifier scheme="url">http://deposit.d-nb.de/cgi-bin/dokserv?idn=123456789.pdf</identifier>
<format scheme="imt">application/pdf</format>
</resource>
</record>
</epicur>

Example 3: Initial URN registration for parts of digital objects (single registration)

<epicur>
<administrative_data>
[...]
<update_status type="urn_new"/>
<resupply type="email"/>
[...]
</administrative_data>
<record>
<!-- URN for whole document -->
<identifier scheme="urn:nbn:de">urn:nbn:de:gbv:089-3321752945</identifier>
<resource>
<!-- URL for whole document -->
<identifier scheme="url" type="frontpage">http://edok01.tib.uni-hannover.de/edoks/e01dh01/</identifier>
<format scheme="imt">text/html</format>
</resource>
<!-- 1st part -->
<isPartOf>
<identifier scheme="urn:nbn:de">urn:nbn:de:gbv:089-332175-teil1</identifier>
<resource>
<identifier scheme="url">http://edok01.tib.uni- hannover.de/edoks/e01dh01/teil1.pdf</identifier>
<format scheme="imt">application/pdf</format>
</resource>
</isPartOf>
<!-- 2nd part -->
<isPartOf>
<identifier scheme="urn:nbn:de">urn:nbn:de:gbv:089-332175-teil2</identifier>
<resource>
<identifier scheme="url">http://edok01.tib.uni-hannover.de/edoks/e01dh01/teil2.ps</identifier>
<format scheme="imt">application/postscript</format>
</resource>
</isPartOf>
</record>
</epicur>

Example 4: subsequent registration of an alternative PI

<epicur>
<administrative_data>
[...]
<update_status type="urn_alternative"/>
<resupply type="email"/>
[...]
</administrative_data>
<!-- Object Data -->
<record>
<identifier scheme="urn:nbn:de">urn:nbn:de:gbv:089-3321752945</identifier>
<!-- alternative PI -->
<hasVersion scheme="doi">urn:nbn:de:gbv:089-3321759999</hasVersion>
</record>
</epicur>

Example 5: Registration of changes to a registered URL / single registration (in cases where several URLs are managed by one URN the change of a only one URL could be performed by following XML-record)

<epicur>
<administrative_data>
[...]
<update_status type="url_update"/>
<resupply type="email"/>
[...]
</administrative_data>
<record>
<identifier scheme="urn:nbn:de">urn:nbn:de:gbv:089-3321752945lt;/identifier>
<resource>
<!-- old URL -->
<identifier scheme="url" status="old">http://edok01.tib.uni-hannover.de/edoks/e01dh01/</identifier>
</resource>
<resource>
<!-- new URL -->
<identifier scheme="url" status="new"gt;http://edok01.tib.uni-hannover.de/edoks/e01dh01/123456789.pdf</identifier>
<format scheme="imt">application/pdf</format>
</resource>
</record>
</epicur>

Example 6: Registration of changes to URL / single registration (all registered URLs will be deleted and a new URL will be inserted.)

<epicur>
<administrative_data>
[...]
<update_status type="url_update_general"/>
<resupply type="email"/>
[...]
</administrative_data>
<!-- Object Data -->
<record>
<identifier scheme="urn:nbn:de">urn:nbn:de:gbv:089-3321752945</identifier>
<resource>
<identifier scheme="url">http://edok01.tib.uni- hannover.de/edoks/e01dh01/</identifier>
<format scheme="imt">text/html</format>
</resource>
</record>
</epicur>

Example 7: Deleting a URL / single registration

<epicur>
<administrative_data>
[...]
<update_status type="url_update_general"/>
<resupply type="email"/>
[...]
</administrative_data>
<!-- Object Data -->
<record>
<identifier scheme="urn:nbn:de">urn:nbn:de:gbv:089-3321752945</identifier>
<resource>
<identifier scheme="url">http://edok01.tib.uni- hannover.de/edoks/e01dh01/</identifier>
</resource>
</record>
</epicur>

Example 8: Inserting a URL / single registration

<epicur>
<administrative_data>
[...]
<update_status type="url_insert"/>
<resupply type="email"/>
[...]
</administrative_data>
<!-- Object Data -->
<record>
<identifier scheme="urn:nbn:de">urn:nbn:de:gbv:089-3321752945</identifier>
<resource>
<identifier scheme="url" type="frontpage">http://edok01.tib.uni- hannover.de/edoks/e01dh01/</identifier/>
<format scheme="imt">text/html</format>
</resource>
</record>
</epicur>

DTD (alpha version)

XML schema (alpha version) to be implemented within OAI 2.0


02.01.2008