Sample Content ModelWarning 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. <?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 <?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: <schema . . .> . . . <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. <type . . .> . . . <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> |