Table of Contents

  1. What is FOXML?
  2. Why FOXML?
  3. What does a FOXML instance document look like?
    1. FOXML Reference Example
  4. Where is the FOXML XML schema?
    1. FOXML XML Schema
  5. Are other XML Formats supported by Fedora?

1. What is FOXML?

FOXML is a simple XML format that directly expresses the Fedora digital object model. As of Fedora 2.0, digital objects will be stored internally in a Fedora repository in the FOXML format. In addition, FOXML can be used for ingesting and exporting objects to/from Fedora repositories. The Fedora extension of METS will continue to be supported as an ingest and export format. In upcoming releases, Fedora will also support other formats for ingest and export such as METS 1.4 and MPEG21/DIDL.

At the highest level, the FOXML XML schema defines elements that correspond directly to the fundamental Fedora digital object components (see recent paper on Fedora). Below is a brief sketch of these elements.

<digitalObject PID="uniqueID">
    <!-- there are a set of core object properties -->
    <objectProperties>
        <property/>
        <property/>
        ...
    </objectProperties>
    <!-- there can be zero or more datastreams -->
    <datastream>
        <datastreamVersion/>
        <datastreamVersion/>
        ...
    </datastream>
    <!-- there can be zero or more disseminators -->
    <disseminator>
        <disseminatorVersion/>
        <disseminatorVersion/>
        ...
    </disseminator>
</digitalObject>

2. Why FOXML?

The introduction of FOXML was motivated by several requirements: (1) simplicity, (2) optimization and performance, and (3) flexibility in evolving Fedora. Regarding simplicity, user feedback called for a conceptually easy mapping of the Fedora concepts to an XML format. Users wanted an obvious sense of how to create Fedora ingest files, especially those who are not familiar with formats such as METS and MPEG21/DIDL. Regarding optimization and performance, the FOXML schema was designed to improve repository performance, both at ingest and during disseminations. Overall ingest performance has been positively affected with FOXML, especially in the validation phases. Regarding flexibility, establishing FOXML as the internal storage format for Fedora objects enables easier evolution of functionality in the Fedora repository, without requiring ongoing extensions to other community formats.

3. What does a FOXML instance document look like?

An example is worth a thousand words. Therefore, we have provided a fully-annotated digital object encoded in FOXML. This example is presented from the perspective of how a digital object looks when it is stored inside a Fedora repository. However, the documentation also indicates how to encode an object in FOXML for ingesting into the repository. There are certain data attributes that can be omitted in ingest files since the Fedora repository service assigns them.

To learn more, please consult the FOXML reference example now!

4. Where is the FOXML XML schema?

An offical published version of the FOXML XML schema is also published on the Fedora web site. Also, a copy of the schema is provided with the Fedora open-source distribution. The Fedora repository service validates all Fedora objects against this schema before objects are permanently stored in the repository.

5. Are other XML Formats supported by Fedora?

Yes! The Fedora repository service is designed to be able to accommodate different XML formats for encoding digital objects through its ingest and export operations, available via the Fedora management service interface (API-M).

Currently, Fedora supports ingest and export of the new FOXML format as well as the Fedora extension of the Metadata Encoding and Transmission Standard (METS). Prior to Fedora 2.0, the METS extension format was the only XML format supported by Fedora. As of Fedora 2.0, the system is moving in a direction where FOXML will be the preferred internal storage format of Fedora objects, but the repository will accept objects encoded in other formats and will export objects encoded in other formats. The table below shows existing and planned formats that Fedora will support.

A test table
XML Format Ingest
(via API-M)
Export
(via API-M)
Harvest
(via OAI)
Requirements
FOXML YES YESFedora 2.1Follow FOXML schema
Fedora METSYes
(for backward compatibility)
Yes
(for backward compatibility)
No
(instead do METS 1.4)
Follow Fedora METS extension schema, plus encoding rules for Fedora
MPEG21/DIDLFedora 2.1 Fedora 2.1Fedora 2.1Follow DIDL schema, plus special encoding rules for Fedora
METS 1.4Future
Fedora 2.x
Future
Fedora 2.x
Future
Fedora 2.x
Create proper METS profile for Fedora.