<msDesc>

<msDesc> (manuscript description) contains a description of a single identifiable manuscript or other text-bearing object. [10.1 Overview]
Modulemsdescription — Manuscript Description
Attributesatt.global (@xml:id, @n, @xml:lang, @xml:base, @xml:space) (att.global.rendition (@rend, @style, @rendition)) (att.global.linking (@corresp, @synch, @sameAs, @copyOf, @next, @prev, @exclude, @select)) (att.global.analytic (@ana)) (att.global.facs (@facs)) (att.global.change (@change)) (att.global.responsibility (@cert, @resp)) (att.global.source (@source)) att.sortable (@sortKey) att.typed (@type, @subtype) att.declaring (@decls) att.docStatus (@status)
Member of
Contained by
May contain
Example
<msDesc>
 <msIdentifier>
  <settlement>Oxford</settlement>
  <repository>Bodleian Library</repository>
  <idno type="Bod">MS Poet. Rawl. D. 169.</idno>
 </msIdentifier>
 <msContents>
  <msItem>
   <author>Geoffrey Chaucer</author>
   <title>The Canterbury Tales</title>
  </msItem>
 </msContents>
 <physDesc>
  <objectDesc>
   <p>A parchment codex of 136 folios, measuring approx
       28 by 19 inches, and containing 24 quires.</p>
   <p>The pages are margined and ruled throughout.</p>
   <p>Four hands have been identified in the manuscript: the first 44
       folios being written in two cursive anglicana scripts, while the
       remainder is for the most part in a mixed secretary hand.</p>
  </objectDesc>
 </physDesc>
</msDesc>
Content model
<content>
 <sequence>
  <elementRef key="msIdentifier"/>
  <classRef key="model.headLike"
   minOccurs="0maxOccurs="unbounded"/>

  <alternate>
   <classRef key="model.pLike"
    minOccurs="1maxOccurs="unbounded"/>

   <sequence>
    <elementRef key="msContents"
     minOccurs="0"/>

    <elementRef key="physDesc"
     minOccurs="0"/>

    <elementRef key="historyminOccurs="0"/>
    <elementRef key="additional"
     minOccurs="0"/>

    <alternate>
     <elementRef key="msPartminOccurs="0"
      maxOccurs="unbounded"/>

     <elementRef key="msFragminOccurs="0"
      maxOccurs="unbounded"/>

    </alternate>
   </sequence>
  </alternate>
 </sequence>
</content>
Schema Declaration
<rng:element name="msDesc">
 <rng:ref name="att.global.attributes"/>
 <rng:ref name="att.global.rendition.attributes"/>
 <rng:ref name="att.global.linking.attributes"/>
 <rng:ref name="att.global.analytic.attributes"/>
 <rng:ref name="att.global.facs.attributes"/>
 <rng:ref name="att.global.change.attributes"/>
 <rng:ref name="att.global.responsibility.attributes"/>
 <rng:ref name="att.global.source.attributes"/>
 <rng:ref name="att.sortable.attributes"/>
 <rng:ref name="att.typed.attributes"/>
 <rng:ref name="att.declaring.attributes"/>
 <rng:ref name="att.docStatus.attributes"/>
 <rng:group>
  <rng:ref name="msIdentifier"/>
  <rng:zeroOrMore>
   <rng:ref name="model.headLike"/>
  </rng:zeroOrMore>
  <rng:choice>
   <rng:oneOrMore>
    <rng:ref name="model.pLike"/>
   </rng:oneOrMore>
   <rng:group>
    <rng:optional>
     <rng:ref name="msContents"/>
    </rng:optional>
    <rng:optional>
     <rng:ref name="physDesc"/>
    </rng:optional>
    <rng:optional>
     <rng:ref name="history"/>
    </rng:optional>
    <rng:optional>
     <rng:ref name="additional"/>
    </rng:optional>
    <rng:choice>
     <rng:zeroOrMore>
      <rng:ref name="msPart"/>
     </rng:zeroOrMore>
     <rng:zeroOrMore>
      <rng:ref name="msFrag"/>
     </rng:zeroOrMore>
    </rng:choice>
   </rng:group>
  </rng:choice>
 </rng:group>
</rng:element>
element msDesc
{
   att.global.attributes,
   att.global.rendition.attributes,
   att.global.linking.attributes,
   att.global.analytic.attributes,
   att.global.facs.attributes,
   att.global.change.attributes,
   att.global.responsibility.attributes,
   att.global.source.attributes,
   att.sortable.attributes,
   att.typed.attributes,
   att.declaring.attributes,
   att.docStatus.attributes,
   (
      msIdentifier,
      model.headLike*,
      (
         model.pLike+
       | (
            msContents?,
            physDesc?,
            history?,
            additional?,
            ( msPart* | msFrag* )
         )
      )
   )
}