Table of Contents

  1. What is FOXML?
  2. Why FOXML?
  3. What does a FOXML instance document look like?
  4. Where is the 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 are 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>
    </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 Commons 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) and command-line tools.

    Currently, Fedora supports ingest and export of objects in the following formats:

    • FOXML 1.1 (info:fedora/fedora-system:FOXML-1.1)
    • FOXML 1.0 (info:fedora/fedora-system:FOXML-1.0)
    • METS 1.1 (info:fedora/fedora-system:METSFedoraExt-1.1)
    • ATOM 1.1 (info:fedora/fedora-system:ATOM-1.1)
    • ATOM Zip 1.1 (info:fedora/fedora-system:ATOMZip-1.1)