Latest 3.x Release

This documentation covers the latest release of the legacy 3.x Fedora. Looking for another version? See all documentation.

Fedora 4 Development

Looking for Fedora's currently active development?

Skip to end of metadata
Go to start of metadata

Work in progress

Under construction

ECM documentation

needs migrating from SourceForge to here

Introduction

Fedora validates objects on ingest using XSD schema validation and Schematron validation.

Fedora's validation mechanism is configurable, allowing the implementation of custom validation mechanisms for objects being ingested, and for validating Fedora objects when they are modified.

XML Validation

XSD schema and Schematron validation is performed on all objects when they are ingested. By providing your own implementation of the DOValidator module and specifying this in fedora.fcfg it is possible to implement custom XML validation mechanisms.

By default both XML schema and Schematron validation is performed. This is configurable. To alter the validation performed on ingest add a parameter to the DOManager module configuration in fedora.fcfg:

<param name="ingestValidationLevel" value="0"/>

The value of this parameter specifies the type(s) of validation to perform on ingest:

  • 0: XSD and Schematron validation
  • 1: XSD validation only
  • 2: Schematron validation only
  • -1: no validation

If this parameter is not specified the default level is 0.

Use with care!

Fedora's XML ingest validation is designed to help ensure the integrity of your repository. Exercise caution if you are implementing your own validation mechanisms, and only change the validation level from the default if you can ensure that objects are valid prior to ingesting them.

If Fedora's logging level is set to DEBUG, Fedora also validates the XML object representation before committing it to permanent storage using both XSD and Schematron validation. This feature is intended to be used for testing Fedora.

Object validation

Fedora Object validation is carried out prior to any object modifications being committed to permanent storage - if a modification would result in an invalid object according to the configured validators, the modification is not made and an error is reported.

By default, Fedora's configuration is to perform no object validation upon modification operations.

In addition, objects can be validated on demand using the validate API method. This will validate objects according to their specification using Enhanced Content Models.

Digital Object validation is configured using Spring, in the file $FEDORA_HOME/server/config/spring/doobjectvalidator.xml.

Digital Object validation can be used to ensure that repository content conforms to the rules specified using Enhanced Content Models, which allows specification via an object's content model of XML datastream schema and relationships that should exist between objects.

To enable ECM object validation for every modification made to an object, uncomment the relevant sections in this file.

You can define your own validators for objects by writing Java classes that implement the org.fcrepo.server.validation.DOObjectValidator interface, and then adding these to the doobjectvalidator.xml Spring configuration file.

Extra validation will impair performance

Although performing validation of Fedora objects on every modification can be used to help ensure the integrity of your repository, adding such validation operations will incur an overhead every time an object is modified.

  • No labels