<msDesc>

<msDesc> (원고 기술) 하나의 식별가능한 원고에 대한 기술을 포함한다. [11.1 Overview]<a href="https://translate.tei-c.org/translate.html?edit=msDesc.xml"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" aria-label="Translation out of date." viewBox="0 0 16 16" style="position:absolute; top:2px; right:2px; color:red"><title>Translation out of date.</title> <path d="M6.146 7.146a.5.5 0 0 1 .708 0L8 8.293l1.146-1.147a.5.5 0 1 1 .708.708L8.707 9l1.147 1.146a.5.5 0 0 1-.708.708L8 9.707l-1.146 1.147a.5.5 0 0 1-.708-.708L7.293 9 6.146 7.854a.5.5 0 0 1 0-.708z"></path> <path d="M3.5 0a.5.5 0 0 1 .5.5V1h8V.5a.5.5 0 0 1 1 0V1h1a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V3a2 2 0 0 1 2-2h1V.5a.5.5 0 0 1 .5-.5zM1 4v10a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V4H1z"></path></svg></a>
모듈 msdescription — Manuscript Description
속성
클럽 회원
에 의해 포함된
포함할 수 있다
주석

Although the msDesc has primarily been designed with a view to encoding manuscript descriptions, it may also be used for other objects such as early printed books, fascicles, epigraphs, or any text-bearing objects that require substantial description. If an object is not text-bearing or the reasons for describing the object is not primarily the textual content, the more general object may be more suitable.

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

<sch:rule context="tei:msContents|tei:physDesc|tei:history|tei:additional">

<!-- Note: This rule applies to <msContents>, <physDesc>, <history>, and <additional> wherever they occur. Luckily they are only allowed in places where they are constrained to 0 or 1 occurence. If that changes someday, this constraint may will likely need to be updated, too. -->

<!-- Also worth noting that a) if &amp; when we can use abstract patterns, this would be better handled as a single abstract rule somewhere, and concrete rules in the individual <elementSpec>s; and b) I did not test for the existence of "../*[name(.) eq $gi][2]" because then an error would be generated for each of the multiple occurences of $gi. -->
<sch:let name="givalue="name(.)"/>
<sch:report test="preceding-sibling::*[ name(.) eq $gi ] and not( following-sibling::*[ name(.) eq $gi ] )"> Only one <sch:name/> is allowed as a child of <sch:value-of select="name(..)"/>.
</sch:report>
</sch:rule>
Content model
<content>
 <sequence>
  <elementRef key="msIdentifier"/>
  <classRef key="model.headLike"
   minOccurs="0maxOccurs="unbounded"/>

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

   <alternate minOccurs="0"
    maxOccurs="unbounded">

    <elementRef key="msContents"/>
    <elementRef key="physDesc"/>
    <elementRef key="history"/>
    <elementRef key="additional"/>
    <elementRef key="msPart"/>
    <elementRef key="msFrag"/>
   </alternate>
  </alternate>
 </sequence>
</content>
선언
<rng:element name="msDesc">
 <rng:ref name="att.global.attributes"/>
 <rng:ref name="att.global.analytic.attributes"/>
 <rng:ref name="att.global.change.attributes"/>
 <rng:ref name="att.global.facs.attributes"/>
 <rng:ref name="att.global.linking.attributes"/>
 <rng:ref name="att.global.rendition.attributes"/>
 <rng:ref name="att.global.responsibility.attributes"/>
 <rng:ref name="att.global.source.attributes"/>
 <rng:ref name="att.declaring.attributes"/>
 <rng:ref name="att.docStatus.attributes"/>
 <rng:ref name="att.sortable.attributes"/>
 <rng:ref name="att.typed.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:zeroOrMore>
    <rng:choice>
     <rng:ref name="msContents"/>
     <rng:ref name="physDesc"/>
     <rng:ref name="history"/>
     <rng:ref name="additional"/>
     <rng:ref name="msPart"/>
     <rng:ref name="msFrag"/>
    </rng:choice>
   </rng:zeroOrMore>
  </rng:choice>
 </rng:group>
</rng:element>
element msDesc
{
   att.global.attributes,
   att.global.analytic.attributes,
   att.global.change.attributes,
   att.global.facs.attributes,
   att.global.linking.attributes,
   att.global.rendition.attributes,
   att.global.responsibility.attributes,
   att.global.source.attributes,
   att.declaring.attributes,
   att.docStatus.attributes,
   att.sortable.attributes,
   att.typed.attributes,
   (
      msIdentifier,
      model.headLike*,
      (
         model.pLike+
       | ( msContents | physDesc | history | additional | msPart | msFrag )*
      )
   )
}