Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

Sample Content Model

Warning This page is no longer updated. The project is moved to http://ecm.sourceforge.net

A sample content model from our system. It shows the use of the DS-COMPOSITE extensions and the ONTOLOGY datastream.

Code Block
<?xml version="1.0" encoding="UTF-8"?>

<foxml:digitalObject
        VERSION="1.1"
        PID="doms:ContentModel_DOMS"
        xmlns:foxml="info:fedora/fedora-system:def/foxml#"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation=
                "info:fedora/fedora-system:def/foxml#
                http://www.fedora.info/definitions/1/0/foxml1-1.xsd">

    <foxml:objectProperties>
        <foxml:property
                NAME="info:fedora/fedora-system:def/model#state" VALUE="A"/>
        <foxml:property
                NAME="info:fedora/fedora-system:def/model#label" VALUE="doms:ContentModel_DOMS"/>
    </foxml:objectProperties>




    <foxml:datastream CONTROL_GROUP="X" ID="DS-COMPOSITE-MODEL" STATE="A" VERSIONABLE="true">
        <foxml:datastreamVersion  ID="DS-COMPOSITE-MODEL.0" LABEL="DS Composite Model"
                                  MIMETYPE="text/xml" >
            <foxml:contentDigest DIGEST="none" TYPE="DISABLED"/>
            <foxml:xmlContent>
                <dsCompositeModel
                        xmlns="info:fedora/fedora-system:def/dsCompositeModel#"
                        xmlns:schema="http://doms.statsbiblioteket.dk/types/dscompositeschema/0/1/#"
                        xmlns:gui="http://doms.statsbiblioteket.dk/types/dscompositeschema/guirepresentation/0/1/#">
                    <dsTypeModel ID="DC">
                        <form MIME="text/xml"/>
                        <extensions name="SCHEMA">
                            <schema:schema type="xsd" datastream="SCHEMA" object="info:fedora/doms:Schema_OAIDublinCore"/>
                        </extensions>
                    </dsTypeModel>
                    <dsTypeModel ID="POLICY">
                        <form MIME="text/xml"/>
                    </dsTypeModel>
                </dsCompositeModel>
            </foxml:xmlContent>
        </foxml:datastreamVersion>
    </foxml:datastream>


    <foxml:datastream CONTROL_GROUP="X" ID="DC" STATE="A" VERSIONABLE="true">
        <foxml:datastreamVersion  ID="DC1.0" LABEL="Dublin Core Metadata"
                                  MIMETYPE="text/xml" >
            <foxml:contentDigest DIGEST="none" TYPE="DISABLED"/>
            <foxml:xmlContent>
                <oai_dc:dc xmlns:dc="http://purl.org/dc/elements/1.1/"
                           xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/">
                    <dc:title>Object</dc:title>
                    <dc:description>doms:ContentModel_DOMS</dc:description>
                    <dc:identifier>doms:ContentModel_DOMS</dc:identifier>
                </oai_dc:dc>
            </foxml:xmlContent>
        </foxml:datastreamVersion>
    </foxml:datastream>



    <foxml:datastream CONTROL_GROUP="X" ID="RELS-EXT" STATE="A" VERSIONABLE="false">
        <foxml:datastreamVersion  ID="RELS-EXT.1" LABEL="Relationships"
                                  MIMETYPE="application/rdf+xml" >
            <foxml:contentDigest DIGEST="none" TYPE="DISABLED"/>
            <foxml:xmlContent>
                <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
                         xmlns:doms="http://doms.statsbiblioteket.dk/relations/default/0/1/#">
                    <rdf:Description rdf:about="info:fedora/doms:ContentModel_DOMS">
                        <hasModel rdf:resource="info:fedora/fedora-system:ContentModel-3.0"
                                  xmlns="info:fedora/fedora-system:def/model#"/>
                        <doms:isPartOfCollection rdf:resource="info:fedora/doms:DOMS_Base_Collection"/>
                    </rdf:Description>
                </rdf:RDF>
            </foxml:xmlContent>
        </foxml:datastreamVersion>
    </foxml:datastream>



    <foxml:datastream CONTROL_GROUP="X" ID="ONTOLOGY" STATE="A" VERSIONABLE="true">
        <foxml:datastreamVersion
                ID="ONTOLOGY.0"
                LABEL="Local ontology"
                MIMETYPE="text/xml">
            <foxml:xmlContent>

                <rdf:RDF
                        xmlns:owl="http://www.w3.org/2002/07/owl#"
                        xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
                        xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
                        xml:base="http://doms.statsbiblioteket.dk/relations/default/0/1/#">

                    <owl:Class rdf:about="info:fedora/doms:ContentModel_DOMS">

                        <rdfs:subClassOf>
                            <owl:Restriction>
                                <owl:onProperty rdf:resource="#isPartOfCollection"/>
                                <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</owl:minCardinality>
                            </owl:Restriction>
                        </rdfs:subClassOf>

                        <rdfs:subClassOf>
                            <owl:Restriction>
                                <owl:onProperty rdf:resource="#isPartOfCollection"/>
                                <owl:allValuesFrom rdf:resource="info:fedora/doms:ContentModel_Collection"/>
                            </owl:Restriction>
                        </rdfs:subClassOf>

                        <rdfs:subClassOf>
                            <owl:Restriction>
                                <owl:onProperty rdf:resource="#hasLicense"/>
                                <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</owl:cardinality>
                            </owl:Restriction>
                        </rdfs:subClassOf>

                        <rdfs:subClassOf>
                            <owl:Restriction>
                                <owl:onProperty rdf:resource="#hasLicense"/>
                                <owl:allValuesFrom rdf:resource="info:fedora/doms:ContentModel_License"/>
                            </owl:Restriction>
                        </rdfs:subClassOf>

                         <rdfs:subClassOf>
                            <owl:Restriction>
                                <owl:onProperty rdf:resource="#isTemplateFor"/>
                                <owl:allValuesFrom rdf:resource="info:fedora/fedora-system:ContentModel-3.0"/>
                            </owl:Restriction>
                        </rdfs:subClassOf>

                    </owl:Class>

                    <owl:ObjectProperty rdf:about="#isPartOfCollection"/>

                    <owl:ObjectProperty rdf:about="#hasLicense"/>

                    <owl:ObjectProperty rdf:about="#isTemplateFor"/>

                </rdf:RDF>
            </foxml:xmlContent>
        </foxml:datastreamVersion>
    </foxml:datastream>


</foxml:digitalObject>

The content model depended on a schema defined in another object, given here

Code Block
<?xml version="1.0" encoding="UTF-8"?>

<foxml:digitalObject
        VERSION="1.1"
        PID="doms:Schema_OAIDublinCore"
        xmlns:foxml="info:fedora/fedora-system:def/foxml#"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation=
                "info:fedora/fedora-system:def/foxml#
                http://www.fedora.info/definitions/1/0/foxml1-1.xsd">


    <foxml:objectProperties>

        <foxml:property
                NAME="info:fedora/fedora-system:def/model#state"
                VALUE="A"/>
        <foxml:property
                NAME="info:fedora/fedora-system:def/model#label"
                VALUE="Schema OAI Dublin Core"/>


    </foxml:objectProperties>

    <foxml:datastream ID="DC" STATE="A" CONTROL_GROUP="X" VERSIONABLE="true">
        <foxml:datastreamVersion ID="DC.0" MIMETYPE="text/xml" LABEL="Default Dublin Core Record" SIZE="488" CREATED="2004-12-10T00:21:58.000Z">

            <foxml:xmlContent>
                <oai_dc:dc xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:dc="http://purl.org/dc/elements/1.1/">
                    <dc:title>OAI Dublin Core Schema</dc:title>
                </oai_dc:dc>
            </foxml:xmlContent>
        </foxml:datastreamVersion>
    </foxml:datastream>


    <foxml:datastream CONTROL_GROUP="X" ID="RELS-EXT" STATE="A" VERSIONABLE="true">
        <foxml:datastreamVersion  ID="RELS-EXT.1" LABEL="Relationships"
                                  MIMETYPE="application/rdf+xml" >
            <foxml:contentDigest DIGEST="none" TYPE="DISABLED"/>
            <foxml:xmlContent>
                <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
                         xmlns:doms="http://doms.statsbiblioteket.dk/relations/default/0/1/#"
                        >
                    <rdf:Description rdf:about="info:fedora/doms:Schema_OAIDublinCore">
                        <hasModel rdf:resource="info:fedora/doms:ContentModel_Schema" xmlns="info:fedora/fedora-system:def/model#"/>
                        <hasModel rdf:resource="info:fedora/doms:ContentModel_DOMS" xmlns="info:fedora/fedora-system:def/model#"/>
                        <doms:isPartOfCollection rdf:resource="info:fedora/doms:DOMS_Base_Collection"/>
                        <doms:hasLicense rdf:resource="info:fedora/doms:Open_License" />
                    </rdf:Description>
                </rdf:RDF>
            </foxml:xmlContent>
        </foxml:datastreamVersion>
    </foxml:datastream>


    <foxml:datastream CONTROL_GROUP="X" ID="SCHEMA" STATE="A" VERSIONABLE="false">
        <foxml:datastreamVersion ID="SCHEMA.0" LABEL="Schema" MIMETYPE="text/xml">
            <foxml:xmlContent>
                <schema targetNamespace="http://www.openarchives.org/OAI/2.0/oai_dc/"
                        xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/"
                        xmlns:dc="http://purl.org/dc/elements/1.1/"
                        xmlns="http://www.w3.org/2001/XMLSchema"
                        elementFormDefault="qualified" attributeFormDefault="unqualified">

                    <annotation>
                        <documentation>
                            XML Schema 2002-03-18 by Pete Johnston.
                            Adjusted for usage in the OAI-PMH.
                            Schema imports the Dublin Core elements from the DCMI schema for unqualified Dublin Core.
                            2002-12-19 updated to use simpledc20021212.xsd (instead of simpledc20020312.xsd)
                        </documentation>
                    </annotation>

                    <import namespace="http://purl.org/dc/elements/1.1/"
                            schemaLocation="http://localhost:7910/fedora/get/doms:Schema_OAIDublinCore/DC_ELEMENTS"/>

                    <element name="dc" type="oai_dc:oai_dcType"/>

                    <complexType name="oai_dcType">
                        <choice minOccurs="0" maxOccurs="unbounded">
                            <element ref="dc:title" minOccurs="1" maxOccurs="unbounded"/>
                            <element ref="dc:creator"/>
                            <element ref="dc:subject"/>
                            <element ref="dc:description"/>
                            <element ref="dc:publisher"/>
                            <element ref="dc:contributor"/>
                            <element ref="dc:date"/>
                            <element ref="dc:type"/>
                            <element ref="dc:format"/>
                            <element ref="dc:identifier"/>
                            <element ref="dc:source"/>
                            <element ref="dc:language"/>
                            <element ref="dc:relation"/>
                            <element ref="dc:coverage"/>
                            <element ref="dc:rights"/>
                        </choice>
                    </complexType>

                </schema>
            </foxml:xmlContent>
        </foxml:datastreamVersion>
    </foxml:datastream>




    <foxml:datastream CONTROL_GROUP="X" ID="DC_ELEMENTS" STATE="A" VERSIONABLE="false">
        <foxml:datastreamVersion ID="DC_ELEMENTS.0" LABEL="Schema" MIMETYPE="text/xml">
            <foxml:xmlContent>
                <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
                           xmlns="http://purl.org/dc/elements/1.1/"
                           targetNamespace="http://purl.org/dc/elements/1.1/"
                           elementFormDefault="qualified"
                           attributeFormDefault="unqualified">

                    <xs:annotation>
                        <xs:documentation xml:lang="en">
                            Simple DC XML Schema, 2002-10-09
                            by Pete Johnston (p.johnston@ukoln.ac.uk),
                            Carl Lagoze (lagoze@cs.cornell.edu), Andy Powell (a.powell@ukoln.ac.uk),
                            Herbert Van de Sompel (hvdsomp@yahoo.com).
                            This schema defines terms for Simple Dublin Core, i.e. the 15
                            elements from the http://purl.org/dc/elements/1.1/ namespace, with
                            no use of encoding schemes or element refinements.
                            Default content type for all elements is xs:string with xml:lang
                            attribute available.

                            Supercedes version of 2002-03-12.
                            Amended to remove namespace declaration for http://www.w3.org/XML/1998/namespace namespace,
                            and to reference lang attribute via built-in xml: namespace prefix.
                            xs:appinfo also removed.
                        </xs:documentation>
                    </xs:annotation>

                    <xs:import namespace="http://www.w3.org/XML/1998/namespace"
                               schemaLocation="http://localhost:7910/fedora/get/doms:Schema_OAIDublinCore/NAMESPACE">
                    </xs:import>

                    <xs:element name="title" type="elementType"/>
                    <xs:element name="creator" type="elementType"/>
                    <xs:element name="subject" type="elementType"/>
                    <xs:element name="description" type="elementType">
                        <xs:annotation>
                          <xs:appinfo source="http://doms.statsbiblioteket.dk/gui">textarea</xs:appinfo>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="publisher" type="elementType"/>
                    <xs:element name="contributor" type="elementType"/>
                    <xs:element name="date" type="elementType"/>
                    <xs:element name="type" type="dcmiType"/>
                    <xs:element name="format" type="elementType"/>

                    <xs:element name="identifier" type="elementType"/>
                    <xs:element name="source" type="elementType"/>
                    <xs:element name="language" type="elementType"/>
                    <xs:element name="relation" type="elementType"/>
                    <xs:element name="coverage" type="elementType"/>
                    <xs:element name="rights" type="elementType"/>

                    <xs:group name="elementsGroup">
                        <xs:sequence>

                            <xs:choice minOccurs="0" maxOccurs="unbounded">
                                <xs:element ref="title"/>
                                <xs:element ref="creator"/>
                                <xs:element ref="subject"/>
                                <xs:element ref="description"/>
                                <xs:element ref="publisher"/>
                                <xs:element ref="contributor"/>
                                <xs:element ref="date"/>
                                <xs:element ref="type"/>

                                <xs:element ref="format"/>
                                <xs:element ref="identifier"/>
                                <xs:element ref="source"/>
                                <xs:element ref="language"/>
                                <xs:element ref="relation"/>
                                <xs:element ref="coverage"/>
                                <xs:element ref="rights"/>
                            </xs:choice>
                        </xs:sequence>

                    </xs:group>

                    <xs:complexType name="elementType">
                        <xs:simpleContent>
                            <xs:extension base="xs:string">
                                <xs:attribute ref="xml:lang" use="optional"/>
                            </xs:extension>
                        </xs:simpleContent>
                    </xs:complexType>

                    <xs:simpleType name="dcmiType">
                        <xs:restriction base="xs:string">
                            <xs:enumeration value='Collection'/>
                            <xs:enumeration value='Dataset'/>
                            <xs:enumeration value='Event'/>
                            <xs:enumeration value='Image'/>
                            <xs:enumeration value='InteractiveResource'/>
                            <xs:enumeration value='MovingImage'/>
                            <xs:enumeration value='PhysicalObject'/>
                            <xs:enumeration value='Service'/>
                            <xs:enumeration value='Software'/>
                            <xs:enumeration value='Sound'/>
                            <xs:enumeration value='StillImage'/>
                            <xs:enumeration value='Text'/>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:schema>
            </foxml:xmlContent>
        </foxml:datastreamVersion>
    </foxml:datastream>




    <foxml:datastream CONTROL_GROUP="X" ID="NAMESPACE" STATE="A" VERSIONABLE="false">
        <foxml:datastreamVersion  ID="NAMESPACE.0" LABEL="Schema" MIMETYPE="text/xml">
            <foxml:xmlContent>

                <xs:schema
                        targetNamespace="http://www.w3.org/XML/1998/namespace"
                        xmlns:xs="http://www.w3.org/2001/XMLSchema"
                        xml:lang="en">

                    <xs:annotation>
                        <xs:documentation>
                            See http://www.w3.org/XML/1998/namespace.html and
                            http://www.w3.org/TR/REC-xml for information about this namespace.

                            This schema document describes the XML namespace, in a form
                            suitable for import by other schema documents.

                            Note that local names in this namespace are intended to be defined
                            only by the World Wide Web Consortium or its subgroups.  The
                            following names are currently defined in this namespace and should
                            not be used with conflicting semantics by any Working Group,
                            specification, or document instance:

                            base (as an attribute name): denotes an attribute whose value
                            provides a URI to be used as the base for interpreting any
                            relative URIs in the scope of the element on which it
                            appears; its value is inherited.  This name is reserved
                            by virtue of its definition in the XML Base specification.

                            lang (as an attribute name): denotes an attribute whose value
                            is a language code for the natural language of the content of
                            any element; its value is inherited.  This name is reserved
                            by virtue of its definition in the XML specification.

                            space (as an attribute name): denotes an attribute whose
                            value is a keyword indicating what whitespace processing
                            discipline is intended for the content of the element; its
                            value is inherited.  This name is reserved by virtue of its
                            definition in the XML specification.

                            Father (in any context at all): denotes Jon Bosak, the chair of
                            the original XML Working Group.  This name is reserved by
                            the following decision of the W3C XML Plenary and
                            XML Coordination groups:

                            In appreciation for his vision, leadership and dedication
                            the W3C XML Plenary on this 10th day of February, 2000
                            reserves for Jon Bosak in perpetuity the XML name
                            xml:Father
                        </xs:documentation>
                    </xs:annotation>

                    <xs:annotation>
                        <xs:documentation>This schema defines attributes and an attribute group
                            suitable for use by
                            schemas wishing to allow xml:base, xml:lang or xml:space attributes
                            on elements they define.

                            To enable this, such a schema must import this schema
                            for the XML namespace, e.g. as follows:
                            &lt;schema . . .>
                            . . .
                            &lt;import namespace="http://www.w3.org/XML/1998/namespace"
                            schemaLocation="http://www.w3.org/2001/03/xml.xsd"/>

                            Subsequently, qualified reference to any of the attributes
                            or the group defined below will have the desired effect, e.g.

                            &lt;type . . .>
                            . . .
                            &lt;attributeGroup ref="xml:specialAttrs"/>

                            will define a type which will schema-validate an instance
                            element with any of those attributes</xs:documentation>

                    </xs:annotation>

                    <xs:annotation>
                        <xs:documentation>In keeping with the XML Schema WG's standard versioning
                            policy, this schema document will persist at
                            http://www.w3.org/2001/03/xml.xsd.
                            At the date of issue it can also be found at
                            http://www.w3.org/2001/xml.xsd.
                            The schema document at that URI may however change in the future,
                            in order to remain compatible with the latest version of XML Schema
                            itself.  In other words, if the XML Schema namespace changes, the version
                            of this document at
                            http://www.w3.org/2001/xml.xsd will change
                            accordingly; the version at
                            http://www.w3.org/2001/03/xml.xsd will not change.
                        </xs:documentation>
                    </xs:annotation>

                    <xs:attribute name="lang" type="xs:language">
                        <xs:annotation>
                            <xs:documentation>In due course, we should install the relevant ISO 2- and 3-letter
                                codes as the enumerated possible values . . .</xs:documentation>

                        </xs:annotation>
                    </xs:attribute>

                    <xs:attribute name="space" default="preserve">
                        <xs:simpleType>
                            <xs:restriction base="xs:NCName">
                                <xs:enumeration value="default"/>
                                <xs:enumeration value="preserve"/>
                            </xs:restriction>

                        </xs:simpleType>
                    </xs:attribute>

                    <xs:attribute name="base" type="xs:anyURI">
                        <xs:annotation>
                            <xs:documentation>See http://www.w3.org/TR/xmlbase/ for
                                information about this attribute.</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>

                    <xs:attributeGroup name="specialAttrs">
                        <xs:attribute ref="xml:base"/>
                        <xs:attribute ref="xml:lang"/>
                        <xs:attribute ref="xml:space"/>
                    </xs:attributeGroup>

                </xs:schema>

            </foxml:xmlContent>
        </foxml:datastreamVersion>
    </foxml:datastream>



</foxml:digitalObject>