MODS Schema - Common Attributes

This paper describes certain attributes defined in the MODS schema. Specifically, it described attributes used by multiple (but not necessarily all) elements. The main purpose of this document is to provide links (anchors) that can be used by the MODS Guidelines when describing elements that use these attributes.


Language-Related Attributes


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


<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>



@xml:lang serves the same purpose as @lang, using codes from RFC 3066, two-character ISO 639-1) codes, along with three-character ISO 639-2 codes for languages not listed in 639-1.


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



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


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



Indicates the transliteration technique used for an element. See for suggested values.


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




Date Attributes

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


@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.


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


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.


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

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>.


            <dateCaptured point="start">20020702 </dateCaptured>
            <dateCaptured point="end">20021203</dateCaptured>

            <dateCaptured point="start">20030102 </dateCaptured>
            <dateCaptured point="end">20030503</dateCaptured>


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.



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



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?".


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



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


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



Linking attributes

External Linking


@ID which is of type xs:ID (in the xs: namespace,, 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.


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



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.


    <abstract xlink:href= ""/>


Internal Linking


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.



<name type="personal" script="Latn" altRepGroup="8">
        <namePart>Būrī, Muhammad al-Tihāmī,</namePart>
       <namePart type="date">d. 1827</namePart>

<name type="personal" script="Arab" altRepGroup="8">
        <namePart>بوري، محمد التهامي،</namePart>
        <namePart type="date">d. 1827</namePart>



@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.) 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.

     <title>Beethoven's Emperor concerto, lecture recital</title>

<titleInfo type="uniform" nameTitleGroup="1">
     <title>Concertos, piano, orchestra, no. 5, op. 73, Eÿ major</title>

<name type="personal" nameTitleGroup="1">
     <namePart>Beethoven, Ludwig van</namePart>
     <namePart type="date">1770-1827</namePart>

<name type="personal">
     <namePart>Sharpe, David</namePart>
          <roleTerm type="code" authority="marcrelator">prf</roleTerm>

Authority Attributes


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


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

@authority for <languageTerm>, <placeTerm>, and "geographicCode> (and only for these three elements) are defined with controlled lists:

Controlled list of values for @authority for <languageTerm>

  • rfc3066; iso639-2b
  • so639-3
  • rfc4646
  • rfc5646

Controlled list of values for @authority for <placeTerm> and <geographicCode>

  • marcgac
  • marccountry
  • iso3166


The URI for the authoritative list.

In the following example, is the URI for the controlled list whose name is"marcrelator". When @authorityURI is known, it should be supplied rather than @authority.



            <roleTerm type="text" authorityURI="">author</roleTerm>\
            <roleTerm type="code" authorityURI="">aut</roleTerm>



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).


            <roleTerm valueURI=""/>


It is recommended that when using one of these authority attributes -- @authority, @authorityURI, and @valueURI -- at most one of these should be included. @valueURI should be included (and the other two omitted) if known. If @valueURI is not known, @authorityURI should be supplied (and @authority omitted) if known. @authority should be supplied only if neither @valueURI and @authorityURI is known.



Miscellaneous Attributes


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



<titleInfo type="alternative" displayLabel="Spine title">
          <title>Science and public affairs</title>

<targetAudience displayLabel="grade level">kindergarten<targetAudience>

<classification authority="lcc"
      displayLabel="Library of Congress lassification">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.


<abstract altFormat="" contentType="application/xhtml+xml">
l'histoire d'un cheval et un garçon qui aimait</abstract>



@usage values are "primary" and "primaryDisplay" ("primary' is preferred; "primaryDisplay" will be deprecated in the future.) It is used for a repeated element to declare that a particular instance of the element is most important. For example, when several names are included in a MODS record, @usage may be used to declare a "primary" name.


            <url usage="primary"></url>



@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.


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


@supplied indicates whether the content of the element (e.g. a title) has been supplied (as opposed to having been constructed by the cataloger). This attribute should be included only if the content was supplied, in which case the value should be "yes". If not, the attribute should be omitted.


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



Values for @codeOrText are "code" and "text". It applies to elements whose value is normally taken from a controlled vocabulary where terms are expressed as both codes and as text.


<name type="personal">
         <namePart>Alleman, Tillie Pierce [1848-1914]</namePart>
                  <roleTerm codeOrText="code" authority="marcrelator">aut</roleTerm>
                   <roleTerm codeOeText="text" authority="marcrelator">Author</roleTerm>