DiGIR Schema Readme

Explanation, Usage, and Tips

$Id: schemaReadme.html,v 1.3 2002/03/08 20:55:30 peejinator Exp $

DiGIR request and response formats are specified via a number of XML Schema documents. The primary structure of a request or response is specified in the protocol XML Schema (digir.xsd). For the latest version(s) see:


The available data elements, and their types, for searching and returning in a request or response are specified in a federation (or content) schema. A current federation schema and excellent example is that representing the Darwin Core V2 dataset (darwin2.xsd). For the latest version(s) see:


Additionally, predefined record structures for responses can be defined and some examples of such (brief and full) exist in the above location.

Understanding the DiGIR Schema

Pulling together the DiGIR schema involved making use of a variety of XML Schema offerings. Lets take a look at some of the less straightforward techniques here:

Using the DiGIR Schema to create a Federation (content) schema

Given how the protocol schema is defined, it is necessary that all federation schema adhere to certain techniques of definition. Here are some tips on creating a federation schema for use with the DiGIR protocal.

Schema Versioning Process

When dealing with any evolving specification, it is important to appropriately version it. Giving the distributed nature of this project, a clear process should be followed. The suggested process is:
  1. Use the DiGIR CVS repository on the SourceForge site. The schema documents, for both the protocal and federation schemas, as well as some examples, are in the xml module in CVS. All edits to a schema should be done via a checked out version of the document and commits should be done regularly. It is not recommended that you keep a document out with changes for an extended period of time as that can introduce conflicts in a multi-developer environment.
  2. Once you are satisfied with you changes and they have been tested, you are ready to "release" the schema. After the schema(s) are committed to CVS, you should tag (via cvs tag) the schema, as well as any dependant schemas with the release name (e.g. beta1, release1.0, etc.). All dependant schemas should use the same tag.
  3. After tagging the files, create a directory with the same name as the tags used (e.g. beta1, release1.0, etc.) in the htdocs (webspace) area of the DiGIR SourceForge site under the appropriate directory (prot - for protocol schema and fed - for federation schema).
  4. Then scp (secure copy) the same versions of the schema(s) to this(these) new directory(ies). Here, snapshots of all released version will reside. This location acts as, and should be used in other schema or instance documents, as the schemaLocation. You should not remove previous versions of the schemas as other people may still be referencing them.