The University of Illinois Open Archives Initiative Metadata Harvesting Project

ASP OAI 2.0 Data Provider
File System -- ver. 1.5
Descriptive Metadata and Administrative Information
Stored in Text Files as XML

Disclaimer: The following is 'quick and dirty' documentation to get you started. It assumes a fair amount of familiarity with configuring the Microsoft IIS web server and other minutia such as editing text files, etc. Hopefully, we will eventually have time for some better documentation. Thanks.


This is an example of a metadata provider service as described in release 2.0 of the Open Archives Initiative Protocol for Metadata Harvesting. Metadata for each item is stored in a separate text file in XML format. These files are placed in one or more subdirectories of the virtual directory containing the oai.asp program. Each subdirectory defines a set. 

This implementation uses the following technologies:

This application can be downloaded onto an appropriately configured Microsoft Windows NT/2000 system and used with minimal configuration changes.

Note: Related implementations for other system architectures (Database only, File System only, File System/Database hybrid, etc) and/or for other platforms are also available on the SourceForge UILIB-OAI project web .




Operating System / Platform
Microsoft Windows NT 4 Server SP 6
Microsoft Windows NT 4 Workstation SP 6
Microsoft 2000 Advanced Server
Microsoft 2000 Professional, SP 2
Microsoft Internet Information Server (IIS), version 4 or higher
Microsoft Active Server Pages (ASP)
ASP modules included use VBScript and JScript
Microsoft Windows Script, version 5.6 or higher
The script support object library is available free from the Microsoft Website at
Microsoft XML Parser (MSXML) 4.0
This parser is available free from the Microsoft Website at

OAI PROTOCOL CONFORMANCE & XML Schema Definition Documents for Validation:

As installed locally, this system has been validated using version 1.45a of the OAI Repository Explorer (available at   The OAI Repository Explorer tests for conformance to OAI Protocol release 2.0. When you have you have completed installing this tool and believe everything is set up properly, go to this site and enter the URL for your data to validate your system.


The global.asa file retrieves parameters from RepositoryDescription.xml to configure the repository. It also makes a one-time list of all sets and data available which is used by all harvesters. If sets or files are added or deleted, the application must be stopped and restarted to refresh this list.

The configuration file for the OAI Data Provider. It is XML-formatted and self-illustrative. Please refer to the file for repository settings.

This HTML file.

The Open Source license for this code.
This contains various functions that are needed by other script files. This file is included in the scripts that need access to the functions. provides functions and subroutines such as parsing OAI identifiers, generating UTC datestamps, creating and parsing resumption tokens, etc. These are mostly functions that should be reusable across many different OAI implementations and are not specific to this implementation.

The main Active Server Page script code. All OAI requests are dispatched by oai.asp. Most of this code is written in VBScript, a small amount of JScript is also used.

*.asp (other than oai.asp and metadata-*.asp)
Each of these ASP files corresponds to a single OAI request and is called by oai.asp.

User-provided handlers for supported metadata formats. In this release, we provide three examples: metadata-oai_dc.asp, metadata-marc.asp, and metadata-marc_direct.asp to demonstrate how this data provider works with user-provided handlers.

Files with names ending in .xls transform metadata from the storage XML format, MARC in the case of the data samples provided with this package, into the format requested by a harvester. Identity.xls translates from the MARC storage format into the MARC format expected by harvesters. As you can imagine, this transformation is trivial.

These sample stylesheets transform the sample MARC formatted metadata into Dublin Core XML structures when requested by the harvester. Two stylesheets are provided because one is used by the other. Other stylesheets may be added to this implementation to provide data in other requested formats, but OAI specifications require that all providers be capable of returning data in Dublin Core in addition to whatever other formats they support.

These are sample object descriptive metadata files.

All code provided in this illustrative implementation is being made available under OpenSource license.


Thomas G. Habing
Research Programmer, Digital Library Initiative
University of Illinois at Urbana-Champaign
052 Grainger Engineering Library, MC-274
Timothy W. Cole
Mathematics Librarian
University of Illinois at Urbana-Champaign
214 Altgeld Hall, MC-382
John Lewis
Visiting Research Programmer
University of Illinois at Urbana-Champaign
052 Grainger Engineering Library, MC-274
Ying-ping Chen
Graduate Assistant
University of Illinois at Urbana-Champaign
052 Grainger Engineering Library, MC-274
Joanne Kaczmarek
Project Coordinator
University of Illinois at Urbana-Champaign
052 Grainger Engineering Library, MC-274
  University of Illinois at Urbana-Champaign University of Illinois at Urbana-Champaign
Library Gateway Homepage
Comments to: Tom Habing
Updated on: 5/10/04 Ychen21