Skip to content

Commit

Permalink
Address MS-SIG request on #2214 using manual content models
Browse files Browse the repository at this point in the history
  • Loading branch information
sydb committed Oct 12, 2023
1 parent 4ba3a7a commit b651561
Show file tree
Hide file tree
Showing 8 changed files with 467 additions and 335 deletions.
214 changes: 111 additions & 103 deletions P5/Source/Guidelines/en/MS-ManuscriptDescription.xml

Large diffs are not rendered by default.

64 changes: 48 additions & 16 deletions P5/Source/Specs/msDesc.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ $Date$
$Id$
-->
<?xml-model href="https://jenkins.tei-c.org/job/TEIP5-dev/lastSuccessfulBuild/artifact/P5/release/xml/tei/odd/p5.nvdl" type="application/xml" schematypens="http://purl.oclc.org/dsdl/nvdl/ns/structure/1.0"?>
<elementSpec xmlns="http://www.tei-c.org/ns/1.0" module="msdescription" xml:id="MSDESC" ident="msDesc">
<elementSpec xmlns="http://www.tei-c.org/ns/1.0" module="msdescription" xml:id="MSDESC" ident="msDesc" xmlns:sch="http://purl.oclc.org/dsdl/schematron">
<gloss versionDate="2007-07-04" xml:lang="en">manuscript description</gloss>
<gloss versionDate="2007-12-20" xml:lang="ko">원고 기술</gloss>
<gloss versionDate="2007-05-02" xml:lang="zh-TW"/>
Expand All @@ -34,21 +34,50 @@ $Id$
<sequence>
<elementRef key="msIdentifier"/>
<classRef key="model.headLike" minOccurs="0" maxOccurs="unbounded"/>
<!--
The desired content model for the following is
( pLike | ( msContents? & physDesc? & history? & additional? & msPart* & msFrag* ) )
but of course we can't use interleave, as DTDs (and maybe XSD)
will not support that. See https://github.com/TEIC/TEI/issues/2214.
-->
<alternate>
<classRef key="model.pLike" minOccurs="1" maxOccurs="unbounded"/>
<sequence>
<elementRef key="msContents" minOccurs="0"/>
<elementRef key="physDesc" minOccurs="0"/>
<elementRef key="history" minOccurs="0"/>
<elementRef key="additional" minOccurs="0"/>
<alternate>
<elementRef key="msPart" minOccurs="0" maxOccurs="unbounded"/>
<elementRef key="msFrag" minOccurs="0" maxOccurs="unbounded"/>
</alternate>
</sequence>
<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>
<constraintSpec scheme="schematron" ident="one_ms_singleton_max">
<constraint>
<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 & when we can use abstract patterns, this would be
better handled as a single abstract rule and concrete
rules in the individual <elementSpec>s;
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="gi" value="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>
</constraint>
</constraintSpec>
<exemplum xml:lang="en">
<egXML xmlns="http://www.tei-c.org/ns/Examples">
<msDesc>
Expand Down Expand Up @@ -217,12 +246,15 @@ $Id$
</egXML>
</exemplum>
<remarks versionDate="2019-12-27" xml:lang="en">
<p>Although the <gi>msDesc</gi> 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 <gi>object</gi> may be
more suitable.</p>
<p>Although the <gi>msDesc</gi> 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
<gi>object</gi> may be more suitable.</p>
</remarks>
<listRef>
<ptr target="#msov"/>
</listRef>
</elementSpec>
</elementSpec>
215 changes: 111 additions & 104 deletions P5/Source/Specs/msFrag.xml
Original file line number Diff line number Diff line change
Expand Up @@ -23,109 +23,116 @@ $Id$
<desc versionDate="2015-10-26" xml:lang="de">enthält Informationen zu einem Handschriftenfragment einer fragmentierten Handschrift, das heute als Einzeldokument oder eingebunden in eine Handschrift aufbewahrt wird.</desc>
<!--<desc versionDate="2007-05-04" xml:lang="es"></desc>-->
<!--<desc versionDate="2007-01-21" xml:lang="it"></desc>-->
<classes>
<memberOf key="att.global"/>
<memberOf key="att.typed"/>
</classes>
<content>
<sequence>
<alternate>
<elementRef key="altIdentifier"/>
<elementRef key="msIdentifier"/>
</alternate>
<classRef key="model.headLike" minOccurs="0" maxOccurs="unbounded"/>
<alternate>
<classRef key="model.pLike" minOccurs="1" maxOccurs="unbounded"/>
<sequence>
<elementRef key="msContents" minOccurs="0"/>
<elementRef key="physDesc" minOccurs="0"/>
<elementRef key="history" minOccurs="0"/>
<elementRef key="additional" minOccurs="0"/>
</sequence>
</alternate>
</sequence>
</content>
<exemplum versionDate="2015-10-26" xml:lang="en">
<egXML xmlns="http://www.tei-c.org/ns/Examples">
<msDesc>
<classes>
<memberOf key="att.global"/>
<memberOf key="att.typed"/>
</classes>
<content>
<sequence>
<alternate>
<elementRef key="altIdentifier"/>
<elementRef key="msIdentifier"/>
</alternate>
<classRef key="model.headLike" minOccurs="0" maxOccurs="unbounded"/>
<!--
The desired content model for the following is
( pLike | ( msContents? & physDesc? & history? & additional? ) )
but of course we can't use interleave, as DTDs (and maybe XSD)
will not support that. See https://github.com/TEIC/TEI/issues/2214.
-->
<alternate>
<classRef key="model.pLike" minOccurs="1" maxOccurs="unbounded"/>
<!-- Cannot use maxOccurs=4 because resulting content model is ambiguous -->
<alternate minOccurs="0" maxOccurs="unbounded">
<elementRef key="msContents"/>
<elementRef key="physDesc"/>
<elementRef key="history"/>
<elementRef key="additional"/>
</alternate>
</alternate>
</sequence>
</content>
<exemplum versionDate="2015-10-26" xml:lang="en">
<egXML xmlns="http://www.tei-c.org/ns/Examples">
<msDesc>
<msIdentifier>
<msName xml:lang="la">Codex Suprasliensis</msName>
</msIdentifier>
<msFrag>
<msIdentifier>
<msName xml:lang="la">Codex Suprasliensis</msName>
<settlement>Ljubljana</settlement>
<repository>Narodna in univerzitetna knjiznica</repository>
<idno>MS Kopitar 2</idno>
</msIdentifier>
<msFrag>
<msIdentifier>
<settlement>Ljubljana</settlement>
<repository>Narodna in univerzitetna knjiznica</repository>
<idno>MS Kopitar 2</idno>
</msIdentifier>
<msContents>
<summary>Contains ff. 10 to 42 only</summary>
</msContents>
</msFrag>
<msFrag>
<msIdentifier>
<settlement>Warszawa</settlement>
<repository>Biblioteka Narodowa</repository>
<idno>BO 3.201</idno>
</msIdentifier>
</msFrag>
<msFrag>
<msIdentifier>
<settlement>Sankt-Peterburg</settlement>
<repository>Rossiiskaia natsional'naia biblioteka</repository>
<idno>Q.p.I.72</idno>
</msIdentifier>
</msFrag>
</msDesc>
</egXML>
</exemplum>
<exemplum versionDate="2015-10-26" xml:lang="de">
<egXML xmlns="http://www.tei-c.org/ns/Examples">
<msDesc>
<msIdentifier>
<msName>Letter of Carl Maria von Weber to Caroline Brandt. Dresden, 21st to 23rd May 1817 </msName>
</msIdentifier>
<history>
<p>The second part of the letter (Weberiana Cl.II A a 2, 9) was given to Friedrich Jähns by Caroline von Weber,
the widow of Carl Maria von Weber. Jähns then handed this fragment over to the Berlin state library in 1881,
whereas the first part (Mus.ep. Weber, C. M. v. 96) remained with the family estate and found its way into the library not until 1956.
Yet, the identification was already obvious to Jähns who noted <quote>Zu No. 50. 21. Mai 1817 gehörig</quote>
at the top of his fragment.</p>
</history>
<msFrag>
<msIdentifier>
<country>D</country>
<settlement>Berlin</settlement>
<repository>Staatsbibliothek zu Berlin Preußischer Kulturbesitz</repository>
<idno>Mus.ep. Weber, C. M. v. 96</idno>
</msIdentifier>
<physDesc>
<objectDesc>
<supportDesc>
<p>One double leaf, four written pages without address.</p>
</supportDesc>
</objectDesc>
</physDesc>
</msFrag>
<msFrag>
<msIdentifier>
<country>D</country>
<settlement>Berlin</settlement>
<repository>Staatsbibliothek zu Berlin Preußischer Kulturbesitz</repository>
<idno>Weberiana Cl.II A a 2, 9</idno>
</msIdentifier>
<physDesc>
<objectDesc>
<supportDesc>
<p>One leaf, two written pages including address.</p>
</supportDesc>
</objectDesc>
</physDesc>
</msFrag>
</msDesc>
</egXML>
<p>source: http://www.weber-gesamtausgabe.de/A041180</p>
</exemplum>
<listRef>
<ptr target="#msfg"/>
</listRef>
</elementSpec>
<msContents>
<summary>Contains ff. 10 to 42 only</summary>
</msContents>
</msFrag>
<msFrag>
<msIdentifier>
<settlement>Warszawa</settlement>
<repository>Biblioteka Narodowa</repository>
<idno>BO 3.201</idno>
</msIdentifier>
</msFrag>
<msFrag>
<msIdentifier>
<settlement>Sankt-Peterburg</settlement>
<repository>Rossiiskaia natsional'naia biblioteka</repository>
<idno>Q.p.I.72</idno>
</msIdentifier>
</msFrag>
</msDesc>
</egXML>
</exemplum>
<exemplum versionDate="2015-10-26" xml:lang="de">
<egXML xmlns="http://www.tei-c.org/ns/Examples">
<msDesc>
<msIdentifier>
<msName>Letter of Carl Maria von Weber to Caroline Brandt. Dresden, 21st to 23rd May 1817 </msName>
</msIdentifier>
<history>
<p>The second part of the letter (Weberiana Cl.II A a 2, 9) was given to Friedrich Jähns by Caroline von Weber,
the widow of Carl Maria von Weber. Jähns then handed this fragment over to the Berlin state library in 1881,
whereas the first part (Mus.ep. Weber, C. M. v. 96) remained with the family estate and found its way into the library not until 1956.
Yet, the identification was already obvious to Jähns who noted <quote>Zu No. 50. 21. Mai 1817 gehörig</quote>
at the top of his fragment.</p>
</history>
<msFrag>
<msIdentifier>
<country>D</country>
<settlement>Berlin</settlement>
<repository>Staatsbibliothek zu Berlin Preußischer Kulturbesitz</repository>
<idno>Mus.ep. Weber, C. M. v. 96</idno>
</msIdentifier>
<physDesc>
<objectDesc>
<supportDesc>
<p>One double leaf, four written pages without address.</p>
</supportDesc>
</objectDesc>
</physDesc>
</msFrag>
<msFrag>
<msIdentifier>
<country>D</country>
<settlement>Berlin</settlement>
<repository>Staatsbibliothek zu Berlin Preußischer Kulturbesitz</repository>
<idno>Weberiana Cl.II A a 2, 9</idno>
</msIdentifier>
<physDesc>
<objectDesc>
<supportDesc>
<p>One leaf, two written pages including address.</p>
</supportDesc>
</objectDesc>
</physDesc>
</msFrag>
</msDesc>
</egXML>
<p>source: http://www.weber-gesamtausgabe.de/A041180</p>
</exemplum>
<listRef>
<ptr target="#msfg"/>
</listRef>
</elementSpec>
32 changes: 19 additions & 13 deletions P5/Source/Specs/msPart.xml
Original file line number Diff line number Diff line change
Expand Up @@ -33,15 +33,21 @@ $Id$
<sequence>
<elementRef key="msIdentifier"/>
<classRef key="model.headLike" minOccurs="0" maxOccurs="unbounded"/>
<!--
The desired content model for the following is
( pLike | ( msContents? & physDesc? & history? & additional? & msPart* ) )
but of course we can't use interleave, as DTDs (and maybe XSD)
will not support that. See https://github.com/TEIC/TEI/issues/2214.
-->
<alternate>
<classRef key="model.pLike" minOccurs="1" maxOccurs="unbounded"/>
<sequence>
<elementRef key="msContents" minOccurs="0"/>
<elementRef key="physDesc" minOccurs="0"/>
<elementRef key="history" minOccurs="0"/>
<elementRef key="additional" minOccurs="0"/>
<elementRef key="msPart" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<alternate minOccurs="0" maxOccurs="unbounded">
<elementRef key="msContents"/>
<elementRef key="physDesc"/>
<elementRef key="history"/>
<elementRef key="additional"/>
<elementRef key="msPart"/>
</alternate>
</alternate>
</sequence>
</content>
Expand Down Expand Up @@ -97,12 +103,12 @@ $Id$
</msContents>
</msPart>
<msPart>
<msIdentifier>
<altIdentifier>
<idno>MS 6</idno>
</altIdentifier>
</msIdentifier>
<!-- other information specific to this part here -->
<msIdentifier>
<altIdentifier>
<idno>MS 6</idno>
</altIdentifier>
</msIdentifier>
<!-- other information specific to this part here -->
</msPart>
<!-- more parts here -->
</msDesc>
Expand Down
23 changes: 15 additions & 8 deletions P5/Source/Specs/object.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,21 @@ $Id$
<sequence>
<elementRef key="objectIdentifier" minOccurs="1" maxOccurs="unbounded"/>
<classRef key="model.headLike" minOccurs="0" maxOccurs="unbounded"/>
<!--
The desired content model for the following is
( pLike | ( msContents? & physDesc? & history? & additional? ) )
but of course we can't use interleave, as DTDs (and maybe XSD)
will not support that. See https://github.com/TEIC/TEI/issues/2214.
-->
<alternate>
<classRef key="model.pLike" minOccurs="0" maxOccurs="unbounded"/>
<sequence>
<elementRef key="msContents" minOccurs="0"/>
<elementRef key="physDesc" minOccurs="0"/>
<elementRef key="history" minOccurs="0"/>
<elementRef key="additional" minOccurs="0"/>
</sequence>
<classRef key="model.pLike" minOccurs="1" maxOccurs="unbounded"/>
<!-- Cannot use maxOccurs=4 because resulting content model is ambiguous -->
<alternate minOccurs="0" maxOccurs="unbounded">
<elementRef key="msContents"/>
<elementRef key="physDesc"/>
<elementRef key="history"/>
<elementRef key="additional"/>
</alternate>
</alternate>
<alternate minOccurs="0" maxOccurs="unbounded">
<classRef key="model.noteLike"/>
Expand Down Expand Up @@ -161,7 +168,7 @@ $Id$

</exemplum>
<remarks versionDate="2019-12-27" xml:lang="en">
<p>
<p>
<!--JC: Remove warnings of version number after a couple of releases. -->
The <gi>object</gi> element is a recent addition to the TEI P5 Guidelines as of version 3.5.0 and as such may
be more prone to further revision in the next few releases as its use develops. This may be particularly evident where its
Expand Down
Loading

0 comments on commit b651561

Please sign in to comment.