The Library of Congress » Standards » MODS Official Web Site

MODS Schema - Common Attributes

Element Common attributes
Definition Certain attributes defined in the MODS schema are used by multiple (but not necessarily all) elements. This page provides links (anchors) used by the MODS Guidelines when describing elements that use these attributes.
Attributes Language-related: lang; xml:lang; script; transliteration
Date: encoding; point; keyDate; qualifier; calendar
Linking: ID; IDREF; xlink:href; altRepGroup; nameTitleGroup
Authority: authority; authorityURI; valueURI
Miscellaneous: displayLabel; altFormat and contentType; usage; shareable; supplied; typeURI

Language-Related Attributes

lang

@lang indicates the language of the content of an element, using a code from ISO 639-2/b.

Example

<name type="personal">
<namePart type="given">Jack</namePart>
<namePart type="family">May</namePart>
<namePart type="termsOfAddress">I</namePart>
<description lang="eng">District Commissioner</description>
<description lang="fre">Préfet de région</description>
</name>

xml:lang

@xml:lang serves the same purpose as @lang, but follows the W3C documentation that indicates using the IANA language subtag registry, which includes codes from the ISO language and script standards.

Example

<titleInfo xml:lang="fr" type="translated">
<nonSort>L'</nonSort>
<title>homme qui voulut être roi</title>

</titleInfo>

script

Indicates the script used for an element, using codes from ISO 15924 (Code for the representation of names of scripts).

Example

<titleInfo lang="rus" script="Latn">
<title>Geodezii︠a︡ i fotogrammetrii︠a</title>
</titleInfo>

transliteration

Indicates the transliteration technique used for an element. See https://www.loc.gov/catdir/cpso/roman.html for suggested values.

Example

<name type="personal" lang="chi" transliteration="chi-alalc97" altRepGroup="1">
<namePart type="given">Han</namePart>
<namePart type="family">Ye</namePart>
</name>
<name lang="chi" script="Hant" altRepGroup="1">
<namePart type="given">瀚</namePart>
<namePart type="family">葉</namePart>
</name>

Top

Date Attributes

These attributes are used with date elements: <dateIssued>, <dateCreated), <dateCaptured>, etc.

encoding

@encoding indicates how the date is encoded and is one of the following values:

  • w3cdtf – indicates the encoding specified by the W3C profile of ISO 8601, Date and Time Formats. It specifies the extended format for dates using delimiters, e;g; 1985-01-20.
  • iso8601 – Indicates ISO 8601 encoding using "basic" format - no delimiters, e.g. 19850120.
  • marc – formatted according to MARC 21 rules in field 008/07-14 for dates of publication/issuance. Thus, this would only apply to <dateIssued>. See Legal Characters section under field 008/06 of MARC Bibliographic.
  • edtf – For dates coded according to Extended Date/Time Format (reference pending) which extends ISO 8601 to express special forms of dates that are not covered.
  • temper – For dates coded according to Temporal Enumerated Ranges.

Examples

<dateIssued encoding="marc">19uu</dateIssued>
<dateIssued encoding="w3cdtf">2004-06-04T12:12:12</dateIssued>
<dateIssued encoding="iso8601">20040604T121212</dateIssued>
<dateOther encoding="edtf">1984/1986</dateOther>
<dateCreated encoding="temper">1860~ </dateCreated>

point

When @point is included, that means that the activity (creation, etc.) occurred over a date interval rather than on a single date. @point has the following values:

  • start – Indicates that this value is the start date.
  • end – Indicates that this value is the end date.

If @point is not included, the activity assumed to have occurred on a single date.

Example

<originInfo>
<dateOther point="start">20011008</dateOther>
<dateOther point="end">20011027</dateOther>
</originInfo>

If an activity of a given type (e.g. "capture") occurs more than once, each should be represented within separate instances of <originInfo>. If an activity has a start and end, the pair is to be represented within the same instance of <originInfo>.

Example

<originInfo>
<dateCreated>20020702</dateCreated>
<datePublished>20021203</datePublished>
</originInfo>
<originInfo>
<dateCreatedCaptured point="start">20020702</dateCreatedCaptured>
<datePublishedCaptured point="end">20021203</datePublishedCaptured>
</originInfo>

keyDate

The only value for @keyDate is "yes" to indicate that a particular date is distinguished among several dates. The sense in which the date is a "key" date depends on the application. @keyDate can be useful for sorting and display.

Example

<originInfo eventType="manufacture">
<dateOther type="manufacture" keyDate="yes">1922</dateOther>
</originInfo>

qualifier

The following values are defined for @qualifier:

  • approximate – The date is approximate (not guaranteed to be exact).
  • inferred – The date has not been transcribed directly from the resource.
  • questionable – The date is questionable, e.g. "1972?".

Example

<originInfo eventType="manufacture">
<publisher>Kinsey Printing Company</publisher>
<dateOther type="manufacture" keyDate="yes" qualifier="inferred">1922</dateOther>
</originInfo>

calendar

@calendar may be used to supply an alternative calendar (the default is "gregorian").

Example

<dateCreated calendar="hebrew">5777-11-25</dateCreated>

Top

Linking attributes

ID

@ID, which is of type xs:ID (in the xs: namespace, http://www.w3.org/2001/XMLSchema), is used to attach an identifier to an element; the identifier acts as an anchor so that the element may be linked to from outside the MODS instance.

Example

<relatedItem type="constituent" ID="DMD_disc01_tr001">
<titleInfo type="uniform" authority="naf">
title>Chaconne von Vitali</title>
</titleInfo>
</relatedItem>

IDREF

@IDREF, which is of type xs:IDREF (in the xs: namespace, http://www.w3.org/2001/XMLSchema), is used to reference an ID value in a MODS instance.

Example

<mods>
<titleInfo>
<title>3 Viennese arias</title>
<subTitle>for soprano, obbligato clarinet in B flat, and piano</for soprano, obbligato clarinet in B flat, and piano</</title>
</titleInfo>
<typeOfResource>notated music</typeOfResource>
<relatedItem type="constituent">
<name type="personal" ID="x">
</namePart>Bononcini, Giovanni,</namePart>
</namePart>1670-1747</namePart>
</name>
</relatedItem>
<relatedItem type="constituent">
<titleInfo type="personal" ID="x">
</title>Mutio Scevola. arranged 1984</namePart>
</partName>Adorata genitrice</namePart>
</titleInfo>
</relatedItem>
</mods>

xlink:href

Used to link to external content. In the following example, the <abstract> element is empty, the content of the abstract is in an external file, and a link is provided.

Example

<abstract xlink:href="http://xyz.example.org/abstractXYZ"/>

It is recommended to use xlink:href when linking directly to content (e.g. text files, HTML, PDF, etc.). For linked data resources (i.e. RDF) use @valueURI instead.

altRepGroup

Used to link alternative representations of the same element content, for different languages, scripts, transliterations, and translations. The same attribute value is applied to each of the element instances to be linked.  The actual value is arbitrary and has no semantic significance.

<name type="personal" script="Latn" altRepGroup="8">
<namePart>Būrī, Muhammad al-Tihāmī,</namePart>
namePart type="date">d. 1827</namePart>
</name>
<name type="personal" script="Arab" altRepGroup="8">
<namePart>بوري، محمد التهامي،</namePart>
</name>

nameTitleGroup

@nameTitleGroup can be used with <name> and <titleInfo> to link a name and a title. The same value is assigned for the name and the title. The actual value is arbitrary and has no semantic significance. It can be used to link names to uniform titles when the name-uniform title combination is an authority-controlled heading.

In the following example, there are multiple names and multiple titles, and @nameTitleGroup is used to link together one name/title pair.

<titleInfo>
<title>Beethoven's Emperor concerto, lecture recital</title>
</titleInfo>
<titleInfo type="uniform" nameTitleGroup="1">
<title>Concertos, piano, orchestra, no. 5, op. 73, E flat major</title>
</titleInfo>
<name type="personal" nameTitleGroup="1">
<namePart>Beethoven, Ludwig van</namePart>
<namePart type="date">1770-1827</namePart>
</name>
<name type="personal">
<namePart>Sharpe, David</namePart>
<role>
<roleTerm type="code" authority="marcrelator">prf</roleTerm>
</role>
</name>

Top

Authority Attributes

authority, @authorityURI, @valueURI, @type (codeOrText) and element content may be supplied in any combination (on an element for which these attributes are allowed); that is, a single one of the three attributes, any two, all three, or none, may be supplied. It is recommended to supply all three if available, for reasons of efficiency, interoperability and functionality. The receiver of the record may not be able to process either URI but may recognize the @authority string. Conversely, the receiver may be able to follow the @authorityURI or even the @valueURI, but might not recognize the @authority string. @valueURI should always be supplied if known because it is a more efficient means of obtaining the value and because it may provide the user with additional information about the entity. In addition, the actual value may be supplied (as content of the element) with any combination, and must be supplied if @valueURI is not supplied, or if either @authority or @authorityURI is supplied. It is recommended to supply the value in any case, for reasons similar to the above. Further, the element might also allow @type, where the type of @type is codeOrText (and thus its value must be either “code” or “text”) in which case the element value could be a code or could be text as indicated by the value of @type. @type should be supplied only if the element value is supplied as content. For an element for which @type (codeOrText) is not allowed (e.g. ) the value is always text.

authority

The name of an authoritative list of terms for an element whose values are controlled. In the following example "marcrelator" is the name of the controlled list at www.loc.gov/marc/relators/relaterm.html

Example

<role>
<roleTerm type="text" authority="marcrelator">author</roleTerm>
<roleTerm type="code" authority="marcrelator">aut</roleTerm>
</role>

authorityURI

The URI for the authoritative list (as described above for @authority).

In the following example, https://www.loc.gov/marc/relators/relaterm.html is the URI for the controlled list whose name is"marcrelator". When @authorityURI is known, it should be supplied rather than @authority.

Example

<role>
<roleTerm type="text" authorityURI="https://www.loc.gov/marc/relators/relaterm.html">author</roleTerm>
<roleTerm type="code" authorityURI= "https://www.loc.gov/marc/relators/relaterm.html">aut</roleTerm>
</role>

valueURI

When the authoritative list is a linked data vocabulary (not so in the above examples) @valueURI can point directly to the term, and the element value is optional (it may be omitted).

Example

<role>
<roleTerm valueURI="http://id.loc.gov/vocabulary/relators/aut" />
</role>

Top

Miscellaneous Attributes

displayLabel

The value of @displayLabel is text, for display purposes only.  It should not be used to supply structured or machine processable information.

Example

<titleInfo type="alternative" displayLabel="Spine title">
<title>Science and public affairs</title>
</titleInfo>
<targetAudience displayLabel="grade level">kindergarten</targetAudience>
<classification authority="lcc" displayLabel="Library of Congress classification">ML410.B3</classification>

altFormat and contentType

An element might express its content in plain text, and there may be equivalent content elsewhere using a different encoding, for example HTML. @altFormat is a URI pointing to that content. It applies to elements not easily expressed inside a MODS XML record and are best expressed via HTML or some other format. Optionally, the @contentType attribute may be included with a media-type as its value (e.g. text/html) to indicate the content type of the resource. Where there are multiple alternatives, use @altRepGroup attribute to bind together the related instances.

Example

<abstract altFormat="http://xyz.example.org/alternative-markup.html" contentType="application/xhtml+xml"> l'histoire d'un cheval et un garçon qui aimait</abstract>

usage

@usage values are "primary" and "primaryDisplay". "primaryDisplay”  is deprecated in version 3.8; “primary” is the only value that should be used. ("primaryDisplay” remains a legal value in the schema, for compatibility with earlier versions.) usage="primary" is used for a repeated element to declare that a particular instance of the element is most important. For example, when several URLs for a given location are included, @usage may be used to declare this particular URL to be the most important.

Example

<location>
<url usage="primary"> http://digital.library.upenn.edu/women/alleman/gettysburg/gettysburg.html</url>
<url>http://example.org/alternativeURL</url>
</location>

shareable

@shareable indicates whether the content of the element (e.g. an abstract or table of contents) may be shared. This attribute should be included only if the content may not be shared, in which case the value should be "no". If the content may be shared, the attribute should be omitted.

Example

<abstract shareable="no">l'histoire d'un cheval et d’un garçon qui l’aimait<abstract>

supplied

@supplied indicates whether the content of the element (e.g. a title) has been supplied from external sources, or from a source other than the ones prescribed by the content standard used. The only value for this attribute is “yes”.

Example

<titleInfo supplied="yes">
<title>Telescope Peak from Zabriskie Point</title>
</titleInfo>

typeURI

@typeURI -- contains a URI that uniquely identifies the type. It may be supplied in lieu of or in addition to @type. NOTE: @type is not listed as a common attribute because its definition is different for different elements.  @typeURI is a common attribute because this is its definition, wherever it occurs.

Example

<identifier typeURI="http://id.loc.gov/vocabulary/identifiers/isbn">3110145359</identifier>

Top

Last Updated: September 26, 2022