Expressing Dublin Core metadata using XML (DC-XML-Full)
This document is part of the
DC Architecture Wiki.
IMPORTANT: Do not cite materials in this Wiki other than for the purposes of collaborating on document creation. This Wiki is intended to be used to work on draft copies of documents. Finished documents will be published, in a persistent and citable form, on the dublincore.org Web site (or elsewhere in some cases).
| Title: | Expressing Dublin Core metadata using XML (DC-XML-Full) |
| Creator: | Pete Johnston, Eduserv Foundation <pete.johnston@eduserv.org.uk> |
| Creator: | Andy Powell, Eduserv Foundation <andy.powell@eduserv.org.uk> |
| Date Issued: | 2007-12-17 |
| Identifier: | http://dublincore.org/architecturewiki/DCXMLRevision/DCXMLFGuidelines/2007-12-17 |
| Replaces: | http://dublincore.org/architecturewiki/DCXMLRevision/DCXMLFGuidelines/2007-06-19 |
| Is Replaced By: | Not applicable |
| Latest Version: | http://dublincore.org/architecturewiki/DCXMLRevision/DCXMLFGuidelines |
| Description of Document: | This document specifies an XML format for representing a Dublin Core metadata description set. It supports all the features of the description set described by the DCMI Abstract Model. The XML format is known as "DC-XML-Full". |
- Expressing Dublin Core metadata using XML (DC-XML-Full)
- Contents
- 1. Introduction
- 2. The DCMI Abstract Model and DC-XML-Full
- 3. Features of the DC-XML-Full Syntax
- 4. The DC-XML-Full Syntax
- 4.1 Encoding a Description Set: The Description Set Element
- 4.3 Encoding a Description: The Description Element
- 4.4 Encoding a Statement: The Statement Element
- 4.5 Encoding a Value Surrogate
- 4.6 Encoding a Value String: The Value String Element
- 4.7 Encoding Descriptions of Values
- Appendix A. DC-TEXT Representation of Examples
- A.1 Example 1
- A.2 Example 2
- A.3 Example 3
- A.5 Example 5
- A.8 Example 8
- A.9 Example 9
- A.10 Example 10
- A.12 Example 12
- A.13 Example 13
- A.14 Example 14
- A.16 Example 16
- A.17 Example 17
- A.19 Example 19
- A.21 Example 21
- A.22 Example 22
- A.23 Example 23
- A.24 Example 24
- A.25 Example 25
- A.27 Example 27
- A.29 Example 29
- A.30 Example 30
- Notes
- References
- Changes in this version
Contents
-
Introduction
-
The DCMI Abstract Model and DC-XML-Full
-
Some Features of the DC-XML-Full Syntax
-
The DC-XML-Full Syntax
-
Encoding a Description Set: The Description Set Element
-
Encoding Descriptions: Description Elements
-
Encoding Statements: Statement Elements
-
Encoding Value Surrogates
-
Encoding Literal Value Surrogates
-
Encoding Non-Literal Value Surrogates
-
Encoding Value Strings: Value String Elements
-
Encoding Descriptions of Values
-
Appendix A: Text Representation of Examples
-
Notes
-
References
1. Introduction
This document specifies an XML format for representing a DC metadata description set. The XML format is known as "DC-XML-Full".
The "Description Set Model" of the DCMI Abstract Model [DCAM] describes the constructs that make up a DC metadata description set. In order to represent a DC metadata description set in an XML document those constructs have to be represented as components in that XML document, i.e. as XML elements and XML attributes, XML element names and XML attribute names, and as XML element content and XML attribute values.
1.1 Design Considerations
The DC-XML-Full format described in this document was developed using the following design considerations:
-
The format should provide a serialisation of all the features of the "Description Set Model" of the DCAM, i.e. it should be possible to represent all the constructs that make up a DC metadata description set. (See Note 1).
-
The format is not required to address the features of the "Vocabulary Model" of the DCAM. For example, it is not required to express subproperty relationships between properties, subclass relationships between classes, etc.
-
The format should be easily usable with XML-based specifications such as XPath, XPointer and XQuery, i.e. for each construct in the DCAM there should be a mapping to exactly one construct in the XML syntax.
-
The format should not be dependent on features of a single XML Schema language.
-
It should be possible to describe the format using W3C XML Schema [XMLSCHEMA], but it is not a requirement that when the format is used to serialise description sets conforming to a DC Application Profile, all the constraints expressed in a DC Application Profile are captured using W3C XML Schema.
2. The DCMI Abstract Model and DC-XML-Full
According to the "Description Set Model" of the DCMI Abstract Model [DCAM], a DC description set has the following structure:
-
a description set is made up of one or more descriptions
-
a description is made up of
-
zero or one described resource URI and
-
one or more statements
-
a statement is made up of
-
exactly one property URI and
-
exactly one value surrogate
-
a value surrogate is either a literal value surrogate or a non-literal value surrogate
-
a literal value surrogate is made up of exactly one value string
-
a non-literal value surrogate is made up of
-
zero or one value URIs
-
zero or one vocabulary encoding scheme URIs
-
zero or more value strings
-
a value string is either a plain value string or a typed value string
-
a plain value string may be associated with a value string language
-
a typed value string is associated with a syntax encoding scheme URI
-
a non-literal value may be described by another description
The DC-XML-Full format described in this document implements all the features of the DCAM "description set model".
3. Features of the DC-XML-Full Syntax
3.1 URIs in DC-XML-Full
The DCAM uses Uniform Resource Identifiers (URIs) [RFC3896] to refer both to the resources described within DC metadata description sets and to metadata terms (properties, classes, vocabulary encoding schemes and syntax encoding schemes) used in those description sets.
In DC-XML-Full, those URIs are encoded as XML attribute values. Later sections of this document describe the use of those different XML attributes in detail. The purpose of this section is to make some general points about the representation of these URIs in DC-XML-Full.
In DC-XML-Full, URIs are encoded as URI references, used as XML attribute values. A URI reference is either a URI or a relative reference [RFC3896].
The URI may be represented in full. The following example shows a URI as the value of the dcxf:propertyURI attribute:
<?xml version="1.0"?>
<dcxf:descriptionSet
xmlns:dcxf="http://dublincore.org/xml/dc-xml-full/2007/12/17/">
<dcxf:description>
<!-- Property URI -->
<dcxf:statement dcxf:propertyURI="http://purl.org/dc/terms/title">
<dcxf:literalValueString>DCMI Home Page</dcxf:literalValueString>
</dcxf:statement>
</dcxf:description>
</dcxf:descriptionSet>
XML Example 1: URI as attribute value
The representation of the URI may be abbreviated through the use of an XML entity reference as follows, for example:
<?xml version="1.0"?>
<!DOCTYPE dcxf:descriptionSet [
<!ENTITY dcterms 'http://purl.org/dc/terms/'>
]>
<dcxf:descriptionSet
xmlns:dcxf="http://dublincore.org/xml/dc-xml-full/2007/12/17/">
<dcxf:description>
<!-- Property URI using XML entity reference -->
<dcxf:statement dcxf:propertyURI="&dcterms;title">
<dcxf:literalValueString>DCMI Home Page</dcxf:literalValueString>
</dcxf:statement>
</dcxf:description>
</dcxf:descriptionSet>
XML Example 2: URI as attribute value (with XML entity reference)
For all of the attributes in DC-XML-Full which have URIs as values, the value may also be a relative reference. The relative reference is resolved relative to a base URI, obtained either from the value of an xml:base attribute or from the URI of the document itself. In the following example, the value of the dcxf:propertyURI attribute is a relative reference. It is resolved relative to the base URI provided by the xml:base attribute to obtain a target URI of http://purl.org/dc/terms/title:
<?xml version="1.0"?>
<dcxf:descriptionSet
xml:base="http://purl.org/dc/terms/"
xmlns:dcxf="http://dublincore.org/xml/dc-xml-full/2007/12/17/">
<dcxf:description>
<!-- Property URI as relative reference -->
<dcxf:statement dcxf:propertyURI="title">
<dcxf:literalValueString>DCMI Home Page</dcxf:literalValueString>
</dcxf:statement>
</dcxf:description>
</dcxf:descriptionSet>
XML Example 3: Relative reference as attribute value
4. The DC-XML-Full Syntax
4.1 Encoding a Description Set: The Description Set Element
A description set is a set of one or more descriptions.
In DC-XML-Full, a description set is represented by an XML element known as a Description Set Element (See Note 2). A DC-XML-Full instance represents a single DC description set, so has exactly one Description Set Element.
A Description Set Element has an expanded name (XML Namespace Name/local name pair) with the XML Namespace Name http://dublincore.org/xml/dc-xml-full/2007/12/17/ and local name descriptionSet.
In the examples presented in this document, the XML Namespace Name http://dublincore.org/xml/dc-xml-full/2007/12/17/ is always associated with the prefix "dcxf". For convenience, after this point, the names of XML elements and XML attributes are presented in the text as XML QNames (e.g. dcxf:descriptionSet, dcxf:resourceURI), rather than as expanded names, but they should be read as XML expanded names: the prefix used is not significant.
<?xml version="1.0"?>
<!-- Description Set Element -->
<dcxf:descriptionSet
xmlns:dcxf="http://dublincore.org/xml/dc-xml-full/2007/12/17/">
<dcxf:description>
<dcxf:statement dcxf:propertyURI="http://purl.org/dc/terms/title">
<dcxf:literalValueString>DCMI Home Page</dcxf:literalValueString>
</dcxf:statement>
</dcxf:description>
</dcxf:descriptionSet>
XML Example 5: the Description Set Element
The Description Set Element must one or more Description Elements.
4.3 Encoding a Description: The Description Element
A description is a set of one or more statements about a resource.
In DC-XML-Full, a description is represented by an XML element known as a Description Element. A Description Element is a child element of a Description Set Element and has the name dcxf:description.
The Description Element(s) must follow any Namespace Declaration Elements in a DC-XML-Full instance.
The following example shows a description set consisting of a single description:
<?xml version="1.0"?>
<dcxf:descriptionSet
xmlns:dcxf="http://dublincore.org/xml/dc-xml-full/2007/12/17/">
<dcxf:description> <!-- Description Element -->
<dcxf:statement dcxf:propertyURI="http://purl.org/dc/terms/title">
<dcxf:literalValueString>DCMI Home Page</dcxf:literalValueString>
</dcxf:statement>
</dcxf:description>
</dcxf:descriptionSet>
XML Example 8: the Description Element
A description set may contain multiple descriptions.
In DC-XML-Full, each description is represented by a separate Description Element. The order of the Description Elements within a Description Set Element is not significant.
The following example shows a description set consisting of two descriptions:
<?xml version="1.0"?>
<dcxf:descriptionSet
xmlns:dcxf="http://dublincore.org/xml/dc-xml-full/2007/12/17/">
<dcxf:description> <!-- 1st Description Element -->
<dcxf:statement dcxf:propertyURI="http://purl.org/dc/terms/title">
<dcxf:literalValueString>DCMI Home Page</dcxf:literalValueString>
</dcxf:statement>
</dcxf:description>
<dcxf:description> <!-- 2nd Description Element -->
<dcxf:statement dcxf:propertyURI="http://purl.org/dc/terms/title">
<dcxf:literalValueString>UKOLN Home Page</dcxf:literalValueString>
</dcxf:statement>
</dcxf:description>
</dcxf:descriptionSet>
XML Example 9: Multiple Description Elements
The encoding of description sets with multiple descriptions is described further in the section on Encoding Descriptions of Values.
4.3.1 The Described Resource URI
A description may have an associated described resource URI.
In DC-XML-Full, a described resource URI is represented as the value of an XML attribute of the Statement Element. The attribute has the name dcxf:resourceURI.
The examples below show a description with the described resource URI http://dublincore.org/pages/home.
<?xml version="1.0"?>
<dcxf:descriptionSet
xmlns:dcxf="http://dublincore.org/xml/dc-xml-full/2007/12/17/">
<dcxf:description
dcxf:resourceURI="http://dublincore.org/pages/home"> <!-- described resource URI -->
<dcxf:statement dcxf:propertyURI="http://purl.org/dc/terms/title">
<dcxf:literalValueString>DCMI Home Page</dcxf:literalValueString>
</dcxf:statement>
</dcxf:description>
</dcxf:descriptionSet>
XML Example 10: the Resource URI Attribute
Note that the representation of the described resource URI may be abbreviated through the use of an XML entity reference or a URI relative reference (see the section on URI references).
A Description Element contains one or more Statement Elements.
4.4 Encoding a Statement: The Statement Element
A description is made up of one or more statements.
In DC-XML-Full, each child XML element of a Description Element represents a single statement and is known as a Statement Element. A Statement Element always has the name dcxf:statement.
The following example shows a description set with a single description consisting of a single statement:
<?xml version="1.0"?>
<dcxf:descriptionSet
xmlns:dcxf="http://dublincore.org/xml/dc-xml-full/2007/12/17/">
<dcxf:description
dcxf:resourceURI="http://dublincore.org/pages/home">
<dcxf:statement dcxf:propertyURI="http://purl.org/dc/terms/title"> <!-- Statement Element -->
<dcxf:literalValueString>DCMI Home Page</dcxf:literalValueString>
</dcxf:statement>
</dcxf:description>
</dcxf:descriptionSet>
XML Example 12: A Statement Element
A description may be made up of multiple statements.
In DC-XML-Full, each statement is represented by a separate Statement Element. The order of the Statement Elements within a Description Element is not significant.
The following example shows a description consisting of two statements:
<?xml version="1.0"?>
<dcxf:descriptionSet
xmlns:dcxf="http://dublincore.org/xml/dc-xml-full/2007/12/17/">
<dcxf:description
dcxf:resourceURI="http://dublincore.org/pages/home">
<dcxf:statement dcxf:propertyURI="http://purl.org/dc/terms/title"> <!-- Statement Element -->
<dcxf:literalValueString>DCMI Home Page</dcxf:literalValueString>
</dcxf:statement>
<dcxf:statement dcxf:propertyURI="http://purl.org/dc/terms/publisher"> <!-- Statement Element -->
<dcxf:valueString>Dublin Core Metadata Initiative</dcxf:valueString>
</dcxf:statement>
</dcxf:description>
</dcxf:descriptionSet>
XML Example 13: Multiple Statement Elements
A Statement Element may have various attributes and it may contain zero or more Value String Elements.
4.4.1 The Property URI
A statement must contain exactly one property URI.
In DC-XML-Full, a property URI is represented as the value of an XML attribute of the Statement Element. The attribute has the name dcxf:propertyURI.
The examples below show a description consisting of two statements where the property URIs are http://purl.org/dc/terms/title and http://purl.org/dc/terms/publisher.
<?xml version="1.0"?>
<dcxf:descriptionSet
xmlns:dcxf="http://dublincore.org/xml/dc-xml-full/2007/12/17/">
<dcxf:description
dcxf:resourceURI="http://dublincore.org/pages/home">
<!-- property URI -->
<dcxf:statement dcxf:propertyURI="http://purl.org/dc/terms/title">
<dcxf:literalValueString>DCMI Home Page</dcxf:literalValueString>
</dcxf:statement>
<!-- property URI -->
<dcxf:statement dcxf:propertyURI="http://purl.org/dc/terms/publisher">
<dcxf:valueString>Dublin Core Metadata Initiative</dcxf:valueString>
</dcxf:statement>
</dcxf:description>
</dcxf:descriptionSet>
XML Example 14: The Property URI Attribute
Note that the representation of the property URI may be abbreviated through the use of an XML entity reference or a URI relative reference (see the section on URI references).
4.5 Encoding a Value Surrogate
A statement contains exactly one value surrogate.
A value surrogate is either a literal value surrogate or a non-literal value surrogate.
4.5.1 Encoding a Literal Value Surrogate
A literal value surrogate is made up of exactly one value string.
Note that a literal value surrogate can not contain a value URI or a vocabulary encoding scheme URI.
4.5.1.1 The Literal Surrogate Value String
In DC-XML-Full, a value string within a literal value surrogate is represented by an XML element known as a Value String Element. A Value String Element is a child element of a Statement Element and, for the case of the literal value surrogate, the Value String Element has the name dcxf:literalValueString. For the case of the literal value surrogate, a Statement Element must contain exactly one Value String Element with the name dcxf:literalValueString. It is an error for a Statement Element to contain multiple Value String Elements with the name dcxf:literalValueString.
The example below shows a description consisting of a single statement which includes a literal value surrogate (with a value string).
<?xml version="1.0"?>
<dcxf:descriptionSet
xmlns:dcxf="http://dublincore.org/xml/dc-xml-full/2007/12/17/">
<dcxf:description
dcxf:resourceURI="http://example.org/agents/DCMI">
<dcxf:statement dcxf:propertyURI="http://my.example.org/terms/name">
<!-- value string in literal value surrogate -->
<dcxf:literalValueString>Dublin Core Metadata Initiative</dcxf:literalValueString>
</dcxf:statement>
</dcxf:description>
</dcxf:descriptionSet>
XML Example 16: The Value String Element (Literal Value Surrogate)
For more details on representing value strings, see the section on Value String Elements.
4.5.2 Encoding a Non-Literal Value Surrogate
A non-literal value surrogate is made up of
-
zero or one value URIs
-
zero or one vocabulary encoding scheme URIs
-
zero or more value strings
4.5.2.1 The Value URI
A non-literal value surrogate may contain a value URI.
In DC-XML-Full, a value URI is represented as the value of an XML attribute of the Statement Element. The attribute has the name dcxf:valueURI.
The examples below show a description consisting of two statements where the second statement includes a non-literal value surrogate with the value URI http://example.org/agents/DCMI.
<?xml version="1.0"?>
<dcxf:descriptionSet
xmlns:dcxf="http://dublincore.org/xml/dc-xml-full/2007/12/17/">
<dcxf:description
dcxf:resourceURI="http://dublincore.org/pages/home">
<dcxf:statement dcxf:propertyURI="http://purl.org/dc/terms/title">
<dcxf:literalValueString>DCMI Home Page</dcxf:literalValueString>
</dcxf:statement>
<dcxf:statement dcxf:propertyURI="http://purl.org/dc/terms/publisher"
dcxf:valueURI="http://example.org/agents/DCMI"> <!-- value URI -->
<dcxf:valueString>Dublin Core Metadata Initiative</dcxf:valueString>
</dcxf:statement>
</dcxf:description>
</dcxf:descriptionSet>
XML Example 17: The Value URI Attribute
The representation of the value URI may be abbreviated through the use of an XML entity reference or a URI relative reference (see the section on URI references).
4.5.2.2 The Vocabulary Encoding Scheme URI Attribute
A non-literal value surrogate may include a vocabulary encoding scheme URI.
In DC-XML-Full, a vocabulary encoding scheme URI is represented as the value of an XML attribute of the Statement Element. The attribute has the name dcxf:vocabEncSchemeURI.
The examples below show a description consisting of three statements where the third statement includes a non-literal value surrogate with the vocabulary encoding scheme URI http://purl.org/dc/terms/LCSH.
<?xml version="1.0"?>
<dcxf:descriptionSet
xmlns:dcxf="http://dublincore.org/xml/dc-xml-full/2007/12/17/">
<dcxf:description
dcxf:resourceURI="http://dublincore.org/pages/home">
<dcxf:statement dcxf:propertyURI="http://purl.org/dc/terms/title">
<dcxf:literalValueString>DCMI Home Page</dcxf:literalValueString>
</dcxf:statement>
<dcxf:statement dcxf:propertyURI="http://purl.org/dc/terms/publisher"
dcxf:valueURI="http://example.org/agents/DCMI">
<dcxf:valueString>Dublin Core Metadata Initiative</dcxf:valueString>
</dcxf:statement>
<!-- vocabulary encoding scheme URI -->
<dcxf:statement dcxf:propertyURI="http://purl.org/dc/terms/subject"
dcxf:vocabEncSchemeURI="http://purl.org/dc/terms/LCSH">
<dcxf:valueString>Metadata</dcxf:valueString>
</dcxf:statement>
</dcxf:description>
</dcxf:descriptionSet>
XML Example 19: The Vocabulary Encoding Scheme URI Attribute
Note that the representation of the vocabulary encoding scheme URI may be abbreviated through the use of an XML entity reference or a URI relative reference (see the section on URI references).
4.5.2.3 The Non-Literal Surrogate Value String
A non-literal value surrogate may contain multiple value strings.
In DC-XML-Full, a value string within a non-literal value surrogate is represented by an XML element known as a Value String Element. A Value String Element is a child element of a Statement Element and, for the case of the non-literal value surrogate, the Value String Element has the name dcxf:valueString.
The presence of a value string in a non-literal value surrogate within a statement is optional. If no value string is present, in DC-XML-Full, the Statement Element is empty.
The example below shows a description consisting of four statements where the fourth statement includes a non-literal value surrogate with a value URI but no value string.
<?xml version="1.0"?>
<dcxf:descriptionSet
xmlns:dcxf="http://dublincore.org/xml/dc-xml-full/2007/12/17/">
<dcxf:description
dcxf:resourceURI="http://dublincore.org/pages/home">
<dcxf:statement dcxf:propertyURI="http://purl.org/dc/terms/title">
<dcxf:literalValueString>DCMI Home Page</dcxf:literalValueString>
</dcxf:statement>
<dcxf:statement dcxf:propertyURI="http://purl.org/dc/terms/publisher"
dcxf:valueURI="http://example.org/agents/DCMI">
<dcxf:valueString>Dublin Core Metadata Initiative</dcxf:valueString>
</dcxf:statement>
<dcxf:statement dcxf:propertyURI="http://purl.org/dc/terms/subject"
dcxf:vocabEncSchemeURI="http://purl.org/dc/terms/LCSH">
<dcxf:valueString>Metadata</dcxf:valueString>
</dcxf:statement>
<!-- statement with no value string -->
<dcxf:statement dcxf:propertyURI="http://purl.org/dc/terms/isPartOf"
dcxf:valueURI="http://dublincore.org/site" />
</dcxf:description>
</dcxf:descriptionSet>
XML Example 21: Empty Statement Element
A non-literal value surrogate may contain multiple value strings.
The example below shows a description consisting of four statements where the second and third statements each include a non-literal value surrogate containing a value string.
<?xml version="1.0"?>
<dcxf:descriptionSet
xmlns:dcxf="http://dublincore.org/xml/dc-xml-full/2007/12/17/">
<dcxf:description
dcxf:resourceURI="http://dublincore.org/pages/home">
<dcxf:statement dcxf:propertyURI="http://purl.org/dc/terms/title">
<dcxf:literalValueString>DCMI Home Page</dcxf:literalValueString>
</dcxf:statement>
<dcxf:statement dcxf:propertyURI="http://purl.org/dc/terms/publisher"
dcxf:valueURI="http://example.org/agents/DCMI">
<!-- non-literal value surrogate - value string -->
<dcxf:valueString>Dublin Core Metadata Initiative</dcxf:valueString>
</dcxf:statement>
<dcxf:statement dcxf:propertyURI="http://purl.org/dc/terms/subject"
dcxf:vocabEncSchemeURI="http://purl.org/dc/terms/LCSH">
<!-- non-literal value surrogate - value string -->
<dcxf:valueString>Metadata</dcxf:valueString>
</dcxf:statement>
<dcxf:statement dcxf:propertyURI="http://purl.org/dc/terms/isPartOf"
dcxf:valueURI="http://dublincore.org/site" />
</dcxf:description>
</dcxf:descriptionSet>
XML Example 22: The Value String Element (Non-Literal Value Surrogate)
For the case of the non-literal value surrogate, a Statement Element may contain multiple Value String Elements. The order of the Value String Elements within a Statement Element is not significant.
The following example shows a description in which the third statement includes a non-literal value surrogate containing two value strings:
<?xml version="1.0"?>
<dcxf:descriptionSet
xmlns:dcxf="http://dublincore.org/xml/dc-xml-full/2007/12/17/">
<dcxf:description
dcxf:resourceURI="http://dublincore.org/sitemap/">
<dcxf:statement dcxf:propertyURI="http://purl.org/dc/terms/title">
<dcxf:literalValueString>DCMI Home Page</dcxf:literalValueString>
</dcxf:statement>
<dcxf:statement dcxf:propertyURI="http://purl.org/dc/terms/publisher"
dcxf:valueURI="http://example.org/agents/DCMI">
<dcxf:valueString>Dublin Core Metadata Initiative</dcxf:valueString>
</dcxf:statement>
<dcxf:statement dcxf:propertyURI="http://purl.org/dc/terms/subject"
dcxf:vocabEncSchemeURI="http://purl.org/dc/terms/LCSH">
<!-- non-literal value surrogate - multiple value strings -->
<dcxf:valueString>Metadata</dcxf:valueString>
<dcxf:valueString>Métadonnées</dcxf:valueString>
</dcxf:statement>
<dcxf:statement dcxf:propertyURI="http://purl.org/dc/terms/isPartOf"
dcxf:valueURI="http://dublincore.org/site" />
</dcxf:description>
</dcxf:descriptionSet>
XML Example 23: Multiple Value String Elements (Non-Literal Value Surrogate)
For more details on representing value strings, see the section on Value String Elements.
4.6 Encoding a Value String: The Value String Element
A value string may occur within either a literal value surrogate or a non-literal value surrogate. A literal value surrogate must contain exactly one value string. A non-literal value surrogate may contain multiple value strings.
In DC-XML-Full, a value string within a value surrogate is represented by an XML element known as a Value String Element. A Value String Element is a child element of a Statement Element.
For the case of the literal value surrogate, the Value String Element has the name dcxf:literalValueString (see the section The Literal Surrogate Value String.
For the case of the non-literal value surrogate, the Value String Element has the name dcxf:valueString (see the section The Non-Literal Surrogate Value String).
A value string is either a plain value string or a typed value string.
4.6.1 Encoding a Plain Value String
4.6.1.1 The Value String Language
A plain value string may be associated with a value string language
In DC-XML-Full, a value string language is represented by an xml:lang attribute of the Value String Element.
The example below shows a description consisting of three statements where the first statement has a non-literal value surrogate containing a plain value string "DCMI Home Page" associated with the value string language "en-GB" :
<?xml version="1.0"?>
<dcxf:descriptionSet
xmlns:dcxf="http://dublincore.org/xml/dc-xml-full/2007/12/17/">
<dcxf:description
dcxf:resourceURI="http://dublincore.org/pages/home">
<dcxf:statement dcxf:propertyURI="http://purl.org/dc/terms/title">
<!-- value string language -->
<dcxf:literalValueString xml:lang="en-GB">DCMI Home Page</dcxf:literalValueString>
</dcxf:statement>
<dcxf:statement dcxf:propertyURI="http://purl.org/dc/terms/publisher"
dcxf:valueURI="http://example.org/agents/DCMI">
<dcxf:valueString>Dublin Core Metadata Initiative</dcxf:valueString>
</dcxf:statement>
<dcxf:statement dcxf:propertyURI="http://purl.org/dc/terms/date">
<dcxf:valueString>2005-05-05</dcxf:valueString>
</dcxf:statement>
</dcxf:description>
</dcxf:descriptionSet>
XML Example 24: The Value String Language
4.6.2 Encoding a Typed Value String
4.6.2.1 The Syntax Encoding Scheme URI
A typed value string is associated with a syntax encoding scheme URI.
In DC-XML-Full, a syntax encoding scheme URI is represented as the value of an XML attribute of the Value String Element. The attribute has the name dcxf:syntaxEncSchemeURI.
The examples below show a description consisting of three statements where the third statement has a non-literal value surrogate containing a typed value string with the syntax encoding scheme URI http://www.w3.org/2001/XMLSchema#date:
<?xml version="1.0"?>
<dcxf:descriptionSet
xmlns:dcxf="http://dublincore.org/xml/dc-xml-full/2007/12/17/">
<dcxf:description
dcxf:resourceURI="http://dublincore.org/pages/home">
<dcxf:statement dcxf:propertyURI="http://purl.org/dc/terms/title">
<dcxf:literalValueString>DCMI Home Page</dcxf:literalValueString>
</dcxf:statement>
<dcxf:statement dcxf:propertyURI="http://purl.org/dc/terms/publisher"
dcxf:valueURI="http://example.org/agents/DCMI">
<dcxf:valueString>Dublin Core Metadata Initiative</dcxf:valueString>
</dcxf:statement>
<dcxf:statement dcxf:propertyURI="http://purl.org/dc/terms/date">
<!-- syntax encoding scheme URI -->
<dcxf:valueString dcxf:syntaxEncSchemeURI="http://www.w3.org/2001/XMLSchema#date">2005-05-05</dcxf:valueString>
</dcxf:statement>
</dcxf:description>
</dcxf:descriptionSet>
XML Example 25: The Syntax Encoding Scheme URI Attribute
Note that the representation of the syntax encoding scheme URI may be abbreviated through the use of an XML entity reference or a URI relative reference (see the section on URI references).
4.6.2.2 XML data as a Typed Value String
A typed value string may be an XML fragment, in which case it must be associated with the syntax encoding scheme URI http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral
The example below shows a description consisting of two statements where the second statement contains a literal value surrogate which includes a typed value string in the form of an XML fragment:
<?xml version="1.0"?>
<dcxf:descriptionSet
xmlns:dcxf="http://dublincore.org/xml/dc-xml-full/2007/12/17/">
<dcxf:description
dcxf:resourceURI="http://dublincore.org/pages/home">
<dcxf:statement dcxf:propertyURI="http://purl.org/dc/terms/title">
<dcxf:literalValueString>DCMI Home Page</dcxf:literalValueString>
</dcxf:statement>
<dcxf:statement dcxf:propertyURI="http://purl.org/dc/terms/description">
<!-- XML data as value string -->
<dcxf:literalValueString dcxf:syntaxEncSchemeURI="http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral">
<div xmlns="http://www.w3.org/1999/xhtml">
<p>The DCMI home page provides an overview of the content of the
<a title="DCMI Web Site" href="http://dublincore.org/">DCMI Web
site</a>. It also displays current news items.</p>
</div>
</dcxf:literalValueString>
</dcxf:statement>
</dcxf:description>
</dcxf:descriptionSet>
XML Example 27: XML Data as Typed Value String
4.7 Encoding Descriptions of Values
As noted in the section on Encoding a Description, description sets may contain multiple descriptions. Each description is represented by a separate Description Element. The order of the Description Elements has no significance.
It may be that the described resource of a description is referred to as the value of a statement in another description within the description set. If that resource has been assigned a URI, then that URI appears as the value URI in the statement where the resource is the value and as a described resource URI in the description of that resource, as shown below:
<?xml version="1.0"?>
<dcxf:descriptionSet
xmlns:dcxf="http://dublincore.org/xml/dc-xml-full/2007/12/17/">
<dcxf:description
dcxf:resourceURI="http://dublincore.org/pages/home">
<dcxf:statement dcxf:propertyURI="http://purl.org/dc/terms/title">
<dcxf:literalValueString>DCMI Home Page</dcxf:literalValueString>
</dcxf:statement>
<!-- value URI -->
<dcxf:statement dcxf:propertyURI="http://purl.org/dc/terms/publisher"
dcxf:valueURI="http://example.org/agents/DCMI" />
</dcxf:description>
<dcxf:description
dcxf:resourceURI="http://dublincore.org/pages/althome">
<dcxf:statement dcxf:propertyURI="http://purl.org/dc/terms/title">
<dcxf:valueString>DCMI Alternative Home Page</dcxf:valueString>
</dcxf:statement>
<!-- value URI -->
<dcxf:statement dcxf:propertyURI="http://purl.org/dc/terms/publisher"
dcxf:valueURI="http://example.org/agents/DCMI" />
</dcxf:description>
<!-- value URI used as resource URI in description of value -->
<dcxf:description
dcxf:resourceURI="http://example.org/agents/DCMI">
<dcxf:statement dcxf:propertyURI="http://my.example.org/terms/name">
<dcxf:literalValueString>Dublin Core Metadata Initiative</dcxf:literalValueString>
</dcxf:statement>
</dcxf:description>
</dcxf:descriptionSet>
XML Example 29: Value as Described Resource
In some cases the resource will not have a URI assigned, or the URI will not be known. Such a resource may still be a value in a statement in one description and the described resource of another description in the same description set.
In such cases, the association between the statement in the first description and the second description is made by using an identifier for the resource which is local to a DC-XML-Full instance. This local identifier is used as the value of a dcxf:valueRef XML attribute of one or more Statement Elements and as the value of a dcxf:resourceId XML attribute of a Description Element. Each value of a dcxf:valueRef XML attribute must match the value of a dcxf:resourceId attribute in the same DC-XML-Full instance.
Note that this is a syntactic mechanism for linking references to values in statements to the descriptions of those values: the local identifier itself does not appear in the description set.
<?xml version="1.0"?>
<dcxf:descriptionSet
xmlns:my="http://my.example.org/terms/"
xmlns:dcxf="http://dublincore.org/xml/dc-xml-full/2007/12/17/">
<dcxf:description
dcxf:resourceURI="http://dublincore.org/pages/home">
<dcxf:statement dcxf:propertyURI="http://purl.org/dc/terms/title">
<dcxf:literalValueString>DCMI Home Page</dcxf:literalValueString>
</dcxf:statement>
<!-- Reference to value using local identifier -->
<dcxf:statement dcxf:propertyURI="http://purl.org/dc/terms/publisher"
dcxf:valueRef="DCMI" />
</dcxf:description>
<dcxf:description
dcxf:resourceURI="http://dublincore.org/pages/home">
<dcxf:statement dcxf:propertyURI="http://purl.org/dc/terms/title">
<dcxf:valueString>DCMI Alternative Home Page</dcxf:valueString>
</dcxf:statement>
<!-- Reference to value using local identifier -->
<dcxf:statement dcxf:propertyURI="http://purl.org/dc/terms/publisher"
dcxf:valueRef="DCMI" />
</dcxf:description>
<!-- Description of value using local identifier -->
<dcxf:description dcxf:resourceId="DCMI">
<dcxf:statement dcxf:propertyURI="http://my.example.org/terms/name">
<dcxf:literalValueString>Dublin Core Metadata Initiative</dcxf:literalValueString>
</dcxf:statement>
</dcxf:description>
</dcxf:descriptionSet>
XML Example 30: Value as Described Resource
Appendix A. DC-TEXT Representation of Examples
This appendix provides representations of all the examples provided in the main body of the document using the DC-Text syntax [DC-TEXT].
A.1 Example 1
The DC-XML-Full instance in Example 1 represents the following description set:
@prefix dcterms: <http://purl.org/dc/terms/> .
DescriptionSet (
Description (
Statement (
PropertyURI ( dcterms:title )
LiteralValueString ( "DCMI Home Page" )
)
)
)
A.2 Example 2
The DC-XML-Full instance in Example 2 represents the following description set:
@prefix dcterms: <http://purl.org/dc/terms/> .
DescriptionSet (
Description (
Statement (
PropertyURI ( dcterms:title )
LiteralValueString ( "DCMI Home Page" )
)
)
)
A.3 Example 3
The DC-XML-Full instance in Example 3 represents the following description set:
@prefix dcterms: <http://purl.org/dc/terms/> .
DescriptionSet (
Description (
Statement (
PropertyURI ( dcterms:title )
LiteralValueString ( "DCMI Home Page" )
)
)
)
A.5 Example 5
The DC-XML-Full instance in Example 4 represents the following description set:
@prefix dcterms: <http://purl.org/dc/terms/> .
DescriptionSet (
Description (
Statement (
PropertyURI ( dcterms:title )
LiteralValueString ( "DCMI Home Page" )
)
)
)
A.8 Example 8
The DC-XML-Full instance in Example 7 represents the following description set:
@prefix dcterms: <http://purl.org/dc/terms/> .
DescriptionSet (
Description (
Statement (
PropertyURI ( dcterms:title )
LiteralValueString ( "DCMI Home Page" )
)
)
)
A.9 Example 9
The DC-XML-Full instance in Example 9 represents the following description set:
@prefix dcterms: <http://purl.org/dc/terms/> .
DescriptionSet (
Description (
Statement (
PropertyURI ( dcterms:title )
LiteralValueString ( "DCMI Home Page" )
)
)
Description (
Statement (
PropertyURI ( dcterms:title )
LiteralValueString ( "UKOLN Home Page" )
)
)
)
A.10 Example 10
The DC-XML-Full instance in Example 10 represents the following description set:
@prefix dcterms: <http://purl.org/dc/terms/> .
DescriptionSet (
Description (
ResourceURI ( <http://dublincore.org/pages/home> )
Statement (
PropertyURI ( dcterms:title )
LiteralValueString ( "DCMI Home Page" )
)
)
)
A.12 Example 12
The DC-XML-Full instance in Example 11 represents the following description set:
@prefix dcterms: <http://purl.org/dc/terms/> .
DescriptionSet (
Description (
ResourceURI ( <http://dublincore.org/pages/home> )
Statement (
PropertyURI ( dcterms:title )
LiteralValueString ( "DCMI Home Page" )
)
)
)
A.13 Example 13
The DC-XML-Full instance in Example 13 represents the following description set:
@prefix dcterms: <http://purl.org/dc/terms/> .
DescriptionSet (
Description (
ResourceURI ( <http://dublincore.org/pages/home> )
Statement (
PropertyURI ( dcterms:title )
LiteralValueString ( "DCMI Home Page" )
)
Statement (
PropertyURI ( dcterms:publisher )
ValueString ( "Dublin Core Metadata Initiative" )
)
)
)
A.14 Example 14
The DC-XML-Full instance in Example 14 represents the following description set:
@prefix dcterms: <http://purl.org/dc/terms/> .
DescriptionSet (
Description (
ResourceURI ( <http://dublincore.org/pages/home> )
Statement (
PropertyURI ( dcterms:title )
LiteralValueString ( "DCMI Home Page" )
)
Statement (
PropertyURI ( dcterms:publisher )
ValueString ( "Dublin Core Metadata Initiative" )
)
)
)
A.16 Example 16
The DC-XML-Full instance in Example 16 represents the following description set:
@prefix my: <http://my.example.org/terms/> .
DescriptionSet (
Description (
ResourceURI ( <http://example.org/agents/DCMI> )
Statement (
PropertyURI ( my:name )
LiteralValueString ( "Dublin Core Metadata Initiative" )
)
)
)
A.17 Example 17
The DC-XML-Full instance in Example 17 represents the following description set:
@prefix dcterms: <http://purl.org/dc/terms/> .
DescriptionSet (
Description (
ResourceURI ( <http://dublincore.org/pages/home> )
Statement (
PropertyURI ( dcterms:title )
LiteralValueString ( "DCMI Home Page" )
)
Statement (
PropertyURI ( dcterms:publisher )
ValueURI ( <http://example.org/agents/DCMI> )
ValueString ( "Dublin Core Metadata Initiative" )
)
)
)
A.19 Example 19
The DC-XML-Full instance in Example 19 represents the following description set:
@prefix dcterms: <http://purl.org/dc/terms/> .
DescriptionSet (
Description (
ResourceURI ( <http://dublincore.org/pages/home> )
Statement (
PropertyURI ( dcterms:title )
LiteralValueString ( "DCMI Home Page" )
)
Statement (
PropertyURI ( dcterms:publisher )
ValueURI ( <http://example.org/agents/DCMI> )
ValueString ( "Dublin Core Metadata Initiative" )
)
Statement (
PropertyURI ( dcterms:subject )
VocabularyEncodingSchemeURI ( <http://purl.org/dc/terms/LCSH> )
ValueString ( "Metadata" )
)
)
)
A.21 Example 21
The DC-XML-Full instance in Example 21 represents the following description set:
@prefix dcterms: <http://purl.org/dc/terms/> .
DescriptionSet (
Description (
ResourceURI ( <http://dublincore.org/pages/home> )
Statement (
PropertyURI ( dcterms:title )
LiteralValueString ( "DCMI Home Page" )
)
Statement (
PropertyURI ( dcterms:publisher )
ValueURI ( <http://example.org/agents/DCMI> )
ValueString ( "Dublin Core Metadata Initiative" )
)
Statement (
PropertyURI ( dcterms:subject )
ValueClassURI ( <http://example.org/terms/Concept> )
VocabularyEncodingSchemeURI ( <http://purl.org/dc/terms/LCSH> )
ValueString ( "Metadata" )
)
Statement (
PropertyURI ( dcterms:isPartOf )
ValueURI ( <http://dublincore.org/site> )
)
)
)
A.22 Example 22
The DC-XML-Full instance in Example 22 represents the following description set:
@prefix dcterms: <http://purl.org/dc/terms/> .
DescriptionSet (
Description (
ResourceURI ( <http://dublincore.org/pages/home> )
Statement (
PropertyURI ( dcterms:title )
LiteralValueString ( "DCMI Home Page" )
)
Statement (
PropertyURI ( dcterms:publisher )
ValueURI ( <http://example.org/agents/DCMI> )
ValueString ( "Dublin Core Metadata Initiative" )
)
Statement (
PropertyURI ( dcterms:subject )
ValueClassURI ( <http://example.org/terms/Concept> )
VocabularyEncodingSchemeURI ( <http://purl.org/dc/terms/LCSH> )
ValueString ( "Metadata" )
)
Statement (
PropertyURI ( dcterms:isPartOf )
ValueURI ( <http://dublincore.org/site> )
)
)
)
A.23 Example 23
The DC-XML-Full instance in Example 23 represents the following description set:
@prefix dcterms: <http://purl.org/dc/terms/> .
DescriptionSet (
Description (
ResourceURI ( <http://dublincore.org/pages/home> )
Statement (
PropertyURI ( dcterms:title )
LiteralValueString ( "DCMI Home Page" )
)
Statement (
PropertyURI ( dcterms:publisher )
ValueURI ( <http://example.org/agents/DCMI> )
ValueString ( "Dublin Core Metadata Initiative" )
)
Statement (
PropertyURI ( dcterms:subject )
ValueClassURI ( <http://example.org/terms/Concept> )
VocabularyEncodingSchemeURI ( <http://purl.org/dc/terms/LCSH> )
ValueString ( "Metadata" )
ValueString ( "Métadonnées" )
)
Statement (
PropertyURI ( dcterms:isPartOf )
ValueURI ( <http://dublincore.org/site> )
)
)
)
A.24 Example 24
The DC-XML-Full instance in Example 24 represents the following description set:
@prefix dcterms: <http://purl.org/dc/terms/> .
DescriptionSet (
Description (
ResourceURI ( <http://dublincore.org/pages/home> )
Statement (
PropertyURI ( dcterms:title )
LiteralValueString ( "DCMI Home Page"
Language ( en-GB )
)
)
Statement (
PropertyURI ( dcterms:publisher )
ValueURI ( <http://example.org/agents/DCMI> )
ValueString ( "Dublin Core Metadata Initiative" )
)
Statement (
PropertyURI ( dcterms:date )
ValueString ( "2005-05-05" )
)
)
)
A.25 Example 25
The DC-XML-Full instance in Example 25 represents the following description set:
@prefix dcterms: <http://purl.org/dc/terms/> .
DescriptionSet (
Description (
ResourceURI ( <http://dublincore.org/pages/home> )
Statement (
PropertyURI ( dcterms:title )
LiteralValueString ( "DCMI Home Page"
)
)
Statement (
PropertyURI ( dcterms:publisher )
ValueURI ( <http://example.org/agents/DCMI> )
ValueString ( "Dublin Core Metadata Initiative" )
)
Statement (
PropertyURI ( dcterms:date )
ValueString ( "2005-05-05"
SyntaxEncodingSchemeURI ( <http://www.w3.org/2001/XMLSchema#date> )
)
)
)
)
A.27 Example 27
The DC-XML-Full instance in Example 27 represents the following description set:
@prefix dcterms: <http://purl.org/dc/terms/> .
DescriptionSet (
Description (
ResourceURI ( <http://dublincore.org/pages/home> )
Statement (
PropertyURI ( dcterms:title )
LiteralValueString ( "DCMI Home Page"
)
)
Statement (
PropertyURI ( dcterms:description )
LiteralValueString ( "<div xmlns="http://www.w3.org/1999/xhtml">
<p>The DCMI home page provides an overview of the content of the
<a title="DCMI Web Site" href="http://dublincore.org/">DCMI Web
site</a>. It also displays current news items.</p>
</div>"
SyntaxEncodingSchemeURI ( <http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral> )
)
)
)
)
A.29 Example 29
The DC-XML-Full instance in Example 29 represents the following description set:
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix my: <http://my.example.org/terms/> .
DescriptionSet (
Description (
ResourceURI ( <http://dublincore.org/pages/home> )
Statement (
PropertyURI ( dcterms:title )
LiteralValueString ( "DCMI Home Page" )
)
Statement (
PropertyURI ( dcterms:publisher )
ValueURI ( <http://example.org/agents/DCMI> )
)
)
Description (
ResourceURI ( <http://dublincore.org/pages/althome> )
Statement (
PropertyURI ( dcterms:title )
ValueString ( "DCMI Alternative Home Page" )
)
Statement (
PropertyURI ( dcterms:publisher )
ValueURI ( <http://example.org/agents/DCMI> )
)
)
Description (
ResourceURI ( <http://example.org/agents/DCMI> )
Statement (
PropertyURI ( my:name )
ValueString ( "Dublin Core Metadata Initiative" )
)
)
)
A.30 Example 30
The DC-XML-Full instance in Example 30 represents the following description set:
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix my: <http://my.example.org/terms/> .
DescriptionSet (
Description (
ResourceURI ( <http://dublincore.org/pages/home> )
Statement (
PropertyURI ( dcterms:title )
LiteralValueString ( "DCMI Home Page" )
)
Statement (
PropertyURI ( dcterms:publisher )
ValueRef ( DCMI )
)
)
Description (
ResourceURI ( <http://dublincore.org/pages/althome> )
Statement (
PropertyURI ( dcterms:title )
ValueString ( "DCMI Alternative Home Page" )
)
Statement (
PropertyURI ( dcterms:publisher )
ValueRef ( DCMI )
)
)
Description (
ResourceId ( DCMI )
Statement (
PropertyURI ( my:name )
ValueString ( "Dublin Core Metadata Initiative" )
)
)
)
Notes
[1] This document defines one XML format for representing DC metadata description sets in XML. Other formats may exist supporting other subsets of the DCMI Abstract Model. For example, the Open Archives Initiative Protocol for Metadata Harvesting [OAIPMH] defines a format, commonly known as oai_dc, which supports the serialisation only of description sets containing a single description, with statements referencing only the fifteen properties of the DCMES, and using literal value surrogates only. oai_dc is a different XML format from DC-XML-Full, but that does not change the value and usefulness of oai_dc as a format for serialising that particular subset of DC metadata description sets.
[2] In this document the term "element" is used to refer only to XML elements, and it should always be interpreted in that sense wherever it occurs. It is not used to refer to the properties of the DCMES.
References
[DCAM]
DCMI Abstract Model DCMI Recommendation. 2007-06-04
http://dublincore.org/2007/06/04/documents/abstract-model/
[XML]
Extensible Markup Language (XML) 1.0 (Third Edition). W3C Recommendation 04 February 2004.
http://www.w3.org/TR/REC-xml
[XMLSCHEMA]
XML Schema Part 0: Primer Second Edition. W3C Recommendation 28 October 2004.
http://www.w3.org/TR/xmlschema-0/
[RFC3986]
Uniform Resource Identifier (URI): Generic Syntax.
http://www.ietf.org/rfc/rfc3986.txt
[SPARQL]
SPARQL Query Language for RDF W3C Proposed Recommendation 12 November 2007.
http://www.w3.org/TR/2007/PR-rdf-sparql-query-20071112/
[GRDDL]
Gleaning Resource Descriptions from Dialects of Languages (GRDDL) W3C Recommendation 11 September 2007
http://www.w3.org/TR/2007/REC-grddl-20070911/
[OAIPMH]
The Open Archives Initiative Protocol for Metadata Harvesting Protocol Version 2.0 of 2002-06-14.
http://www.openarchives.org/OAI/openarchivesprotocol.html
[DC-TEXT]
Expressing Dublin Core metadata using the DC-Text format DCMI Recommended Resource.
http://dublincore.org/documents/2007/12/03/dc-text/
Changes in this version
-
Revise to remove use of DC-XML-Full Prefixed Names.