Skip to content
Snippets Groups Projects
repertorium.rnc 7.85 KiB
#
# Schema Selbstzeugnisse Repertorium
#
# Autor:      David Maus <maus@hab.de>
# Time-stamp: <2017-10-12 15:19:58 maus>
#
# ChangeLog
#
# 2017-10-12  David Maus  <maus@hab.de>
#   * <rs type="shelfmark"> erlauben
#
# 2017-10-08  David Maus  <maus@hab.de>
#   * <foliation> optional
#   * überflüssige Pattern Hyperlink entfernt
#   * <origDate> optional
#   * <bindingDesc> optional
#   * <origPlace>/@ref optional
#   * <name>/@ref zulassen
#   * Orts- und Personenregisterverweis in eine Pattern zusammengefasst
#   * Abhängigkeit von TEI-Schema gelöst
#
# 2017-08-10  David Maus  <maus@hab.de>
#   * <textLang>/@otherLangs optional
#   * <msIdentifier>/<institution> zulässig
#   * <titleStmt> und <publicationStmt> zulässig
#   * <TEI>/@xml:id zulässig
#   * <author>/@ref optional
#   * Regeln für Register entfernt
#   * <origin> optional
#   * <history> optional
#
# 2017-07-21  David Maus  <maus@hab.de>
#   * <death> und <birth> optional
#   * <idno> für Personenregistereintrag zulässig
#   * <idno> für Ortsregistereintrag zulässig
#
# 2017-01-13  David Maus  <maus@hab.de>
#   * TEI/@type mit Wert 'repertorium' als Marker für <oXygen/> Dokumenttyp
#
# 2016-06-13  David Maus  <maus@hab.de>
#   * @from und @to dürfen auch leere Attribute sein
#   * <lg><l>+ in Freitext zulassen
#
# 2016-02-19  David Maus  <maus@hab.de>
#   * Signatur des Selbstzeugnisses ist optional
#
# 2016-02-05  David Maus  <maus@hab.de>
#   * <respStmt> kann beliebige Rolle definieren
#   * <handDesc> nicht mehr zulässig
#
# 2016-02-03  David Maus  <maus@hab.de>
#   * Verwendung von generischen Verweisen in Freitext zugelassen
#
# 2016-02-01  David Maus  <maus@hab.de>
#   * <respStmt> für Angabe des Redaktors (E23) erlauben
#   * Pattern-Einschränkung für Personen- und Ortsverweise entfernt
#     (dann macht <oXygen> auch brav eine Kandidatenliste)
#
# 2015-08-04  David Maus  <maus@hab.de>
#   * Wiederholung von bibl in listBibl zulassen
#
# 2015-07-20  David Maus  <maus@hab.de>
#   * rs/@ref als optional definiert
#
# 2015-03-20  David Maus  <maus@hab.de>
#
#   * ref/@cRef und ref/@type als data.text, nicht data.enumerated
#   * taxonomy ist innerhalb der classDecl wiederholbar

default namespace = "http://www.tei-c.org/ns/1.0"

start = Repertoriumseintrag

Repertoriumseintrag =
   element TEI {
      attribute type { "repertorium" },
      attribute xml:id { xsd:ID },
      element teiHeader {
         element fileDesc {
            TitleStmt,
            PublicationStmt,
            e.sourceDesc
         }
      }
   }


e.sourceDesc =
   element sourceDesc {
      e.msDesc
   }

e.note =
   element note {
      ( text | e.ref )*
   }

e.ref =
   element ref {
      (
         attribute target { xsd:anyURI } |
         (
            attribute cRef { text },
            attribute type { text }
         )
      ),
      text?
   }

e.msDesc =
   element msDesc {
      E01,
      element msPart {
         E02b?,
         element msContents {
            E19,
            E18,
            element msItem {
               E06,
               E02a,
               E03*,
               E23*,
               E05,
               E10,
               E04?,
               e.note*
            }
         },
         element physDesc {
            element objectDesc {
               element supportDesc {
                  E12,
                  element extent {
                     E13?,
                     E14
                  },
                  E15?
               },
               E16?
            },
            E17?,
            E11?,
            E20?
         },
         element history {
            element origin {
               E09?,
               E22*
            }?,
            E07
         }?,
         element additional {
            E21?
         }?
      }
   }

# E01: Aufbewahrungsort
E01 =
   element msIdentifier {
      element institution {
          attribute ref { xsd:anyURI },
          text
      },
      element collection { text },
      element idno { text }
   }

# E02: Signatur des Selbstzeugnisses
E02a =
   element locus {
      attribute from { xsd:string { pattern = "(\p{L}|\p{N}|\p{P}|\p{S})+" } },
      attribute to { xsd:string { pattern = "(\p{L}|\p{N}|\p{P}|\p{S})+" } }
   }

E02b =
   element msIdentifier {
      element idno { text }
   }

# E03: Verfasser
E03 =
   element author {
      attribute ref { xsd:anyURI }?,
      text
   }

# E04: Title in Vorlageform
E04 =
   element rubric { Freitext }

# E05: Sachtitel
E05 =
   element title {
      attribute type { "uniform" },
      ( Freitext )+
   }

# E06: Textart
E06 =
   attribute class { text }

# E07: Besitzgeschichte
E07 =
   element provenance { Freitext | Absätze }?,
   element acquisition { Freitext | Absätze }?

# E08: Überlieferungsart
E08 =
   element handDesc {
      element handNote { Freitext }+
   }

# E09: Entstehungszeit
E09 =
   element origDate {
      Datierbar,
      text
   }

# E10: Berichtszeitraum
E10 =
   element date {
      attribute type { "coverage" },
      Datierbar,
      text
   }

# E11: Einband
E11 =
   element bindingDesc { Absätze }

# E12: Beschreibstoff
E12 =
   element support {
      element material { text }
   }

# E13: Umfang
E13 =
   element measure { text }

# E14: Maße des Buchblocks
E14 =
   element dimensions {
      element height {
         attribute quantity { xsd:float },
         attribute unit { "cm" | "mm" }
      },
      element width {
         attribute quantity { xsd:float },
         attribute unit { "cm" | "mm" }
      }
   }

# E15: Seitenzählung
E15 =
   element foliation { Absätze }

# E16: Seitenaufbau
E16 =
   element layoutDesc {
      element layout {
         Absätze
      }
   }

# E17: Illustrationen
E17 =
   element decoDesc {
      element decoNote {
         Freitext
      }*
   }

# E18: Sprache
E18 =
   element textLang {
      attribute mainLang { xsd:language },
      attribute otherLangs { list { xsd:language* } }?
   }

# E19: Inhaltsangabe
E19 =
   element summary { Freitext }

# E20: Beigaben/Besonderheiten
E20 =
   element accMat { Freitext | Absätze }

# E21: Editionen
E21 =
   element listBibl {
      element bibl {
         attribute type { xsd:token }?,
         ( text | e.ref? )*
      }*
   }

# E22: Entstehungsort
E22 =
   element origPlace {
      attribute ref { xsd:anyURI }?,
      text
   }

# E23: Redaktor
E23 =
   element respStmt {
      element resp {
         attribute ref { xsd:anyURI },
         text
      },
      element name {
         attribute ref { xsd:anyURI }?,
         text
      }
   }

# Datentypen
Freitext =
   ( text | e.ref | Registerverweis | Zeilengruppe | Unsicher )+

Absätze =
   element p { Freitext }*

Registerverweis =
   element rs {
      attribute type { "place" | "person" | "shelfmark" },
      attribute ref { xsd:anyURI }?,
      text
   }

Zeilengruppe =
   element lg {
      element l { text }+
   }

Unsicher =
   element unclear { text }

TitleStmt =
   element titleStmt {
      element title { text },
      element principal { attribute ref { xsd:anyURI }, text },
      element funder { attribute ref { xsd:anyURI }, text },
      element respStmt {
         element name { attribute ref { xsd:anyURI }?, text },
         element resp { text }
      }*
   }

PublicationStmt =
   element publicationStmt {
      element publisher { element name { attribute ref { xsd:anyURI }, text } },
      element pubPlace { text },
      element date { attribute when { xsd:gYear }, text },
      element availability {
         element licence { attribute target { xsd:anyURI }, text }
      }
   }

Datierbar =
   attribute when { DatierbarTyp }?,
   attribute notBefore { DatierbarTyp }?,
   attribute notAfter { DatierbarTyp }?,
   attribute before { DatierbarTyp }?,
   attribute after { DatierbarTyp }?,
   attribute from { DatierbarTyp }?,
   attribute to { DatierbarTyp }?

DatierbarTyp =
   xsd:date
 | xsd:gYear
 | xsd:gMonth
 | xsd:gDay
 | xsd:gYearMonth
 | xsd:gMonthDay
 | xsd:time
 | xsd:dateTime