diff --git a/resources/schema/repertorium.rnc b/resources/schema/repertorium.rnc
index 1f01ff85d77b4f614127a113a53fb1262f41ddfa..77c844aa0b9b7c8a299072706888954f5a52bfc5 100644
--- a/resources/schema/repertorium.rnc
+++ b/resources/schema/repertorium.rnc
@@ -2,7 +2,7 @@
 # Schema Selbstzeugnisse Repertorium
 #
 # Autor:      David Maus <maus@hab.de>
-# Time-stamp: <2017-10-09 10:54:22 maus>
+# Time-stamp: <2017-10-09 11:13:07 maus>
 #
 # ChangeLog
 #
@@ -14,6 +14,7 @@
 #   * <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
@@ -65,26 +66,6 @@
 
 default namespace = "http://www.tei-c.org/ns/1.0"
 
-include "tei/tei.rnc" {
-   data.temporal.w3c =
-      xsd:date
-    | xsd:gYear
-    | xsd:gMonth
-    | xsd:gDay
-    | xsd:gYearMonth
-    | xsd:gMonthDay
-    | xsd:time
-    | xsd:dateTime
-    | empty
-}
-include "tei/core.rnc"
-include "tei/header.rnc"
-
-tei.att.datable.w3c.attributes = att.datable.w3c.attributes
-tei.data.text = data.text
-tei.titleStmt = titleStmt
-tei.publicationStmt = publicationStmt
-
 start = Repertoriumseintrag
 
 Repertoriumseintrag =
@@ -93,12 +74,11 @@ Repertoriumseintrag =
       attribute xml:id { xsd:ID },
       element teiHeader {
          element fileDesc {
-            tei.titleStmt,
-            tei.publicationStmt,
+            TitleStmt,
+            PublicationStmt,
             e.sourceDesc
          }
-      },
-      \text?
+      }
    }
 
 
@@ -117,8 +97,8 @@ e.ref =
       (
          attribute target { xsd:anyURI } |
          (
-            attribute cRef { tei.data.text },
-            attribute type { tei.data.text }
+            attribute cRef { text },
+            attribute type { text }
          )
       ),
       text?
@@ -231,7 +211,7 @@ E08 =
 # E09: Entstehungszeit
 E09 =
    element origDate {
-      tei.att.datable.w3c.attributes,
+      Datierbar,
       text
    }
 
@@ -239,7 +219,7 @@ E09 =
 E10 =
    element date {
       attribute type { "coverage" },
-      tei.att.datable.w3c.attributes,
+      Datierbar,
       text
    }
 
@@ -354,4 +334,44 @@ Zeilengruppe =
    }
 
 Unsicher =
-   element unclear { text }
\ No newline at end of file
+   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
\ No newline at end of file
diff --git a/resources/schema/tei/core.rnc b/resources/schema/tei/core.rnc
deleted file mode 100644
index db88e3dd998ee0df132211ca3bd713af38306237..0000000000000000000000000000000000000000
--- a/resources/schema/tei/core.rnc
+++ /dev/null
@@ -1,1248 +0,0 @@
-namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"
-namespace rng = "http://relaxng.org/ns/structure/1.0"
-namespace sch = "http://purl.oclc.org/dsdl/schematron"
-
-# Schema generated 2014-09-16T18:57:47Z
-# Edition: Version 2.7.0. Last updated on
-#	16th September 2014, revision 13036
-# This material is dual-licensed.
-# [http://creativecommons.org/licenses/by/3.0/] Distributed under a Creative Commons Attribution 3.0 Unported License.  [http://www.opensource.org/licenses/BSD-2-Clause] Copyright 2014 TEI Consortium. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. This software is provided by the copyright holders and contributors "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the copyright holder or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage. TEI material can be licensed differently depending on the use you intend to make of it. Hence it is made available under both the CC+BY and BSD-2 licences. The CC+BY licence is generally appropriate for usages which treat TEI content as data or documentation. The BSD-2 licence is generally appropriate for usage of TEI content in a software environment. For further information or clarification, please contact the TEI Consortium. Elements common to all TEI documents
-
-# Definitions from module core
-
-# Set global predeclared macros
-
-# Set predeclared macros
-
-# 0. predeclared macros
-
-# 1. classes
-att.milestoneUnit.attributes = att.milestoneUnit.attribute.unit
-att.milestoneUnit.attribute.unit =
-  
-  ## provides a conventional name for the kind of section changing at this milestone.
-  ## Suggested values include: 1] page; 2] column; 3] line; 4] book; 5] poem; 6] canto; 7] speaker; 8] stanza; 9] act; 10] scene; 11] section; 12] absent; 13] unnumbered
-  attribute unit {
-    
-    ## physical page breaks (synonymous with the pb element).
-    "page"
-    | 
-      ## column breaks.
-      "column"
-    | 
-      ## line breaks (synonymous with the lb element).
-      "line"
-    | 
-      ## any units termed book, liber, etc.
-      "book"
-    | 
-      ## individual poems in a collection.
-      "poem"
-    | 
-      ## cantos or other major sections of a poem.
-      "canto"
-    | 
-      ## changes of speaker or narrator.
-      "speaker"
-    | 
-      ## stanzas within a poem, book, or canto.
-      "stanza"
-    | 
-      ## acts within a play.
-      "act"
-    | 
-      ## scenes within a play or act.
-      "scene"
-    | 
-      ## sections of any kind.
-      "section"
-    | 
-      ## passages not present in the reference edition.
-      "absent"
-    | 
-      ## passages present in the text, but not to be included as part of the reference.
-      "unnumbered"
-    | xsd:Name
-  }
-# 2. elements
-abbr =
-  
-  ## (abbreviation) contains an abbreviation of any sort. []
-  element abbr { abbr.content, abbr.localattributes }
-abbr.content = macro.phraseSeq
-abbr.localattributes =
-  att.global.attributes,
-  att.responsibility.attributes,
-  att.typed.attribute.subtype,
-  
-  ## allows the encoder to classify the abbreviation according to some convenient typology.
-  attribute type { data.enumerated }?,
-  empty
-add =
-  
-  ## (addition) contains letters, words, or phrases inserted in the source text by an author, scribe, or a previous annotator or corrector. []
-  element add { add.content, add.localattributes }
-add.content = macro.paraContent
-add.localattributes =
-  att.global.attributes,
-  att.transcriptional.attributes,
-  att.placement.attributes,
-  att.typed.attributes,
-  empty
-addrLine =
-  
-  ## (address line) contains one line of a postal address. [  ]
-  element addrLine { addrLine.content, addrLine.localattributes }
-addrLine.content = macro.phraseSeq
-addrLine.localattributes = att.global.attributes, empty
-address =
-  
-  ## contains a postal address, for example of a publisher, an organization, or an individual. [  ]
-  element address { address.content, address.localattributes }
-address.content = model.global*, (model.addrPart, model.global*)+
-address.localattributes = att.global.attributes, empty
-analytic =
-  
-  ## (analytic level) contains bibliographic elements describing an item (e.g. an article or poem) published within a monograph or journal and not as an independent publication. []
-  element analytic { analytic.content, analytic.localattributes }
-analytic.content =
-  (author
-   | editor
-   | respStmt
-   | title
-   | model.ptrLike
-   | date
-   | textLang
-   | idno
-   | availability)*
-analytic.localattributes = att.global.attributes, empty
-author =
-  
-  ## in a bibliographic reference, contains the name(s) of an author, personal or corporate, of a work; for example in the same form as that provided by a recognized bibliographic name authority. [ ]
-  element author { author.content, author.localattributes }
-author.content = macro.phraseSeq
-author.localattributes =
-  att.global.attributes, att.naming.attributes, empty
-bibl =
-  
-  ## (bibliographic citation) contains a loosely-structured bibliographic citation of which the sub-components may or may not be explicitly tagged. [  ]
-  element bibl { bibl.content, bibl.localattributes }
-bibl.content =
-  (text
-   | model.gLike
-   | model.highlighted
-   | model.pPart.data
-   | model.pPart.edit
-   | model.segLike
-   | model.ptrLike
-   | model.biblPart
-   | model.global)*
-bibl.localattributes =
-  att.global.attributes,
-  att.declarable.attributes,
-  att.typed.attributes,
-  att.sortable.attributes,
-  att.docStatus.attributes,
-  empty
-biblScope =
-  
-  ## (scope of bibliographic reference) defines the scope of a bibliographic reference, for example as a list of page numbers, or a named subdivision of a larger work. []
-  element biblScope { biblScope.content, biblScope.localattributes }
-biblScope.content = macro.phraseSeq
-biblScope.localattributes =
-  att.global.attributes,
-  att.citing.attributes,
-  
-  ## identifies the type of information conveyed by the element, e.g. columns, pages, volume.
-  ## Suggested values include: 1] vol(volume) ; 2] issue; 3] pp(pages) ; 4] ll(lines) ; 5] chap(chapter) ; 6] part
-  attribute type {
-    
-    ## (volume) the element contains a volume number.
-    "vol"
-    | 
-      ## the element contains an issue number, or volume and issue numbers.
-      "issue"
-    | 
-      ## (pages) the element contains a page number or page range.
-      "pp"
-    | 
-      ## (lines) the element contains a line number or line range.
-      "ll"
-    | 
-      ## (chapter) the element contains a chapter indication (number and/or title)
-      "chap"
-    | 
-      ## the element identifies a part of a book or collection.
-      "part"
-    | xsd:Name
-  }?,
-  empty
-biblStruct =
-  
-  ## (structured bibliographic citation) contains a structured bibliographic citation, in which only bibliographic sub-elements appear and in a specified order. [  ]
-  element biblStruct { biblStruct.content, biblStruct.localattributes }
-biblStruct.content =
-  analytic*,
-  (monogr, series*)+,
-  (model.noteLike | idno | model.ptrLike | relatedItem | citedRange)*
-biblStruct.localattributes =
-  att.global.attributes,
-  att.declarable.attributes,
-  att.typed.attributes,
-  att.sortable.attributes,
-  att.docStatus.attributes,
-  empty
-binaryObject =
-  
-  ## provides encoded binary data representing an inline graphic, audio, video or other object. []
-  element binaryObject {
-    binaryObject.content, binaryObject.localattributes
-  }
-binaryObject.content = text
-binaryObject.localattributes =
-  att.global.attributes,
-  att.media.attributes,
-  att.timed.attributes,
-  att.typed.attributes,
-  
-  ## The encoding used to encode the binary data. If not specified, this is assumed to be Base64.
-  attribute encoding {
-    list { data.word+ }
-  }?,
-  empty
-cb =
-  
-  ## (column break) marks the beginning of a new column of a text on a multi-column page. []
-  element cb { cb.content, cb.localattributes }
-cb.content = empty
-cb.localattributes =
-  att.global.attributes,
-  att.typed.attributes,
-  att.edition.attributes,
-  att.spanning.attributes,
-  att.breaking.attributes,
-  empty
-choice =
-  
-  ## groups a number of alternative encodings for the same point in a text. []
-  element choice { choice.content, choice.localattributes }
-choice.content = (model.choicePart | choice)*
-choice.localattributes = att.global.attributes, empty
-cit =
-  
-  ## (cited quotation) contains a quotation from some other document, together with a bibliographic reference to its source. In a dictionary it may contain an example text with at least one occurrence of the word form, used in the sense being described, or a translation of the headword, or an example. [  ]
-  element cit { cit.content, cit.localattributes }
-cit.content =
-  (model.qLike
-   | model.egLike
-   | model.biblLike
-   | model.ptrLike
-   | model.global
-   | model.entryPart)+
-cit.localattributes = att.global.attributes, att.typed.attributes, empty
-citedRange =
-  
-  ## (cited range) defines the range of cited content, often represented by pages or other units []
-  element citedRange { citedRange.content, citedRange.localattributes }
-citedRange.content = macro.phraseSeq
-citedRange.localattributes =
-  att.global.attributes,
-  att.pointing.attributes,
-  att.citing.attributes,
-  empty
-corr =
-  
-  ## (correction) contains the correct form of a passage apparently erroneous in the copy text. []
-  element corr { corr.content, corr.localattributes }
-corr.content = macro.paraContent
-corr.localattributes =
-  att.global.attributes,
-  att.editLike.attributes,
-  att.typed.attributes,
-  empty
-date =
-  
-  ## contains a date in any format. [     ]
-  element date { date.content, date.localattributes }
-date.content = (text | model.gLike | model.phrase | model.global)*
-date.localattributes =
-  att.global.attributes,
-  att.datable.attributes,
-  att.duration.attributes,
-  att.editLike.attributes,
-  att.typed.attributes,
-  empty
-del =
-  
-  ## (deletion) contains a letter, word, or passage deleted, marked as deleted, or otherwise indicated as superfluous or spurious in the copy text by an author, scribe, or a previous annotator or corrector. []
-  element del { del.content, del.localattributes }
-del.content = macro.paraContent
-del.localattributes =
-  att.global.attributes,
-  att.transcriptional.attributes,
-  att.typed.attributes,
-  empty
-desc =
-  
-  ## (description) contains a brief description of the object documented by its parent element, including its intended usage, purpose, or application where this is appropriate. []
-  element desc { desc.content, desc.localattributes }
-desc.content = macro.limitedContent
-desc.localattributes =
-  att.global.attributes,
-  att.translatable.attributes,
-  att.typed.attributes,
-  empty
-distinct =
-  
-  ## identifies any word or phrase which is regarded as linguistically distinct, for example as archaic, technical, dialectal, non-preferred, etc., or as forming part of a sublanguage. []
-  element distinct { distinct.content, distinct.localattributes }
-distinct.content = macro.phraseSeq
-distinct.localattributes =
-  att.global.attributes,
-  
-  ## specifies the sublanguage or register to which the word or phrase is being assigned
-  attribute type { data.enumerated }?,
-  
-  ## specifies how the phrase is distinct diachronically
-  attribute time { data.text }?,
-  
-  ## specifies how the phrase is distinct diatopically
-  attribute space { data.text }?,
-  
-  ## specifies how the phrase is distinct diastatically
-  attribute social { data.text }?,
-  empty
-divGen =
-  
-  ## (automatically generated text division) indicates the location at which a textual division generated automatically by a text-processing application is to appear. []
-  element divGen { divGen.content, divGen.localattributes }
-divGen.content = model.headLike*
-divGen.localattributes =
-  att.global.attributes,
-  
-  ## specifies what type of generated text division (e.g. index, table of contents, etc.) is to appear.
-  ## Sample values include: 1] index; 2] toc; 3] figlist; 4] tablist
-  attribute type { data.enumerated }?,
-  empty
-editor =
-  
-  ## contains a secondary statement of responsibility for a bibliographic item, for example the name of an individual, institution or organization, (or of several such) acting as editor, compiler, translator, etc. []
-  element editor { editor.content, editor.localattributes }
-editor.content = macro.phraseSeq
-editor.localattributes =
-  att.global.attributes, att.naming.attributes, empty
-email =
-  
-  ## (electronic mail address) contains an email address identifying a location to which email messages can be delivered. []
-  element email { email.content, email.localattributes }
-email.content = macro.phraseSeq
-email.localattributes = att.global.attributes, empty
-emph =
-  
-  ## (emphasized) marks words or phrases which are stressed or emphasized for linguistic or rhetorical effect. [ ]
-  element emph { emph.content, emph.localattributes }
-emph.content = macro.paraContent
-emph.localattributes = att.global.attributes, empty
-expan =
-  
-  ## (expansion) contains the expansion of an abbreviation. []
-  element expan { expan.content, expan.localattributes }
-expan.content = macro.phraseSeq
-expan.localattributes =
-  att.global.attributes, att.editLike.attributes, empty
-foreign =
-  
-  ## identifies a word or phrase as belonging to some language other than that of the surrounding text. []
-  element foreign { foreign.content, foreign.localattributes }
-foreign.content = macro.phraseSeq
-foreign.localattributes = att.global.attributes, empty
-gap =
-  
-  ## indicates a point where material has been omitted in a transcription, whether for editorial reasons described in the TEI header, as part of sampling practice, or because the material is illegible, invisible, or inaudible. []
-  element gap { gap.content, gap.localattributes }
-gap.content = (model.descLike | model.certLike)*
-gap.localattributes =
-  att.global.attributes,
-  att.duration.attributes,
-  att.editLike.attributes,
-  
-  ## gives the reason for omission. Sample values include sampling, inaudible, irrelevant, cancelled.
-  attribute reason {
-    list { data.word+ }
-  }?,
-  
-  ## in the case of text omitted from the transcription because of deliberate deletion by an identifiable hand, indicates the hand which made the deletion.
-  attribute hand { data.pointer }?,
-  
-  ## in the case of text omitted because of damage, categorizes the cause of the damage, if it can be identified.
-  ## Sample values include: 1] rubbing; 2] mildew; 3] smoke
-  attribute agent { data.enumerated }?,
-  empty
-gb =
-  
-  ## (gathering begins) marks the point in a transcribed codex at which a new gathering or quire begins. []
-  element gb { gb.content, gb.localattributes }
-gb.content = empty
-gb.localattributes =
-  att.global.attributes,
-  att.typed.attributes,
-  att.spanning.attributes,
-  att.breaking.attributes,
-  empty
-gloss =
-  
-  ## identifies a phrase or word used to provide a gloss or definition for some other word or phrase. [ ]
-  element gloss { gloss.content, gloss.localattributes }
-gloss.content = macro.phraseSeq
-gloss.localattributes =
-  att.global.attributes,
-  att.declaring.attributes,
-  att.translatable.attributes,
-  att.typed.attributes,
-  att.pointing.attributes,
-  att.cReferencing.attributes,
-  empty
-graphic =
-  
-  ## indicates the location of an inline graphic, illustration, or figure. []
-  element graphic { graphic.content, graphic.localattributes }
-graphic.content = model.descLike*
-graphic.localattributes =
-  att.global.attributes,
-  att.media.attributes,
-  att.resourced.attributes,
-  att.declaring.attributes,
-  empty
-head =
-  
-  ## (heading) contains any type of heading, for example the title of a section, or the heading of a list, glossary, manuscript description, etc. []
-  element head { head.content, head.localattributes }
-head.content =
-  (text
-   | lg
-   | model.gLike
-   | model.phrase
-   | model.inter
-   | model.lLike
-   | model.global)*
-head.localattributes =
-  att.global.attributes, att.typed.attributes, empty
-headItem =
-  
-  ## (heading for list items) contains the heading for the item or gloss column in a glossary list or similar structured list. []
-  element headItem { headItem.content, headItem.localattributes }
-headItem.content = macro.phraseSeq
-headItem.localattributes = att.global.attributes, empty
-headLabel =
-  
-  ## (heading for list labels) contains the heading for the label or term column in a glossary list or similar structured list. []
-  element headLabel { headLabel.content, headLabel.localattributes }
-headLabel.content = macro.phraseSeq
-headLabel.localattributes = att.global.attributes, empty
-hi =
-  
-  ## (highlighted) marks a word or phrase as graphically distinct from the surrounding text, for reasons concerning which no claim is made. [ ]
-  element hi { hi.content, hi.localattributes }
-hi.content = macro.paraContent
-hi.localattributes = att.global.attributes, empty
-imprint =
-  
-  ## groups information relating to the publication or distribution of a bibliographic item. []
-  element imprint { imprint.content, imprint.localattributes }
-imprint.content =
-  (classCode | catRef)*,
-  ((model.imprintPart | model.dateLike), respStmt*, model.global*)+
-imprint.localattributes = att.global.attributes, empty
-index =
-  
-  ## (index entry) marks a location to be indexed for whatever purpose. []
-  element index { index.content, index.localattributes }
-index.content = (term, index?)*
-index.localattributes =
-  att.global.attributes,
-  att.spanning.attributes,
-  
-  ## a single word which follows the rules defining a legal XML name (see ), supplying a name to specify which index (of several) the index entry belongs to.
-  attribute indexName { data.name }?,
-  empty
-item =
-  
-  ## contains one component of a list. [ ]
-  element item { item.content, item.localattributes }
-item.content = macro.specialPara
-item.localattributes =
-  att.global.attributes, att.sortable.attributes, empty
-l =
-  
-  ## (verse line) contains a single, possibly incomplete, line of verse. [  ]
-  element l { l.content, l.localattributes }
-l.content = macro.paraContent
-l.localattributes =
-  att.global.attributes,
-  att.metrical.attributes,
-  att.enjamb.attributes,
-  att.fragmentable.attributes,
-  empty
-label =
-  
-  ## contains any label or heading used to identify part of a text, typically but not exclusively in a list or glossary. []
-  element label { label.content, label.localattributes }
-label.content = macro.phraseSeq
-label.localattributes =
-  att.global.attributes,
-  att.typed.attributes,
-  att.placement.attributes,
-  empty
-lb =
-  
-  ## (line break) marks the start of a new (typographic) line in some edition or version of a text. [ ]
-  element lb { lb.content, lb.localattributes }
-lb.content = empty
-lb.localattributes =
-  att.global.attributes,
-  att.typed.attributes,
-  att.edition.attributes,
-  att.spanning.attributes,
-  att.breaking.attributes,
-  empty
-lg =
-  
-  ## (line group) contains one or more verse lines functioning as a formal unit, e.g. a stanza, refrain, verse paragraph, etc. [  ]
-  element lg { lg.content, lg.localattributes }
-lg.content =
-  ((model.divTop | model.global)*,
-   (model.lLike | model.stageLike | model.labelLike | lg),
-   (model.lLike
-    | model.stageLike
-    | model.labelLike
-    | model.global
-    | lg)*,
-   (model.divBottom, model.global*)*)
-  >> sch:pattern [
-       id = "lg-atleast1oflggapl-constraint-7"
-       "\x{a}" ~
-       "         "
-       sch:rule [
-         context = "tei:lg"
-         "\x{a}" ~
-         "            "
-         sch:assert [
-           test =
-             "count(descendant::tei:lg|descendant::tei:l|descendant::tei:gap) > 0"
-           "An lg element\x{a}" ~
-           "        must contain at least one child l, lg or gap element."
-         ]
-         "\x{a}" ~
-         "         "
-       ]
-       "\x{a}" ~
-       "      "
-     ]
-lg.localattributes =
-  att.global.attributes,
-  att.divLike.attributes,
-  att.typed.attributes,
-  att.declaring.attributes,
-  empty
-\list =
-  
-  ## contains any sequence of items organized as a list. []
-  element list { list.content, list.localattributes }
-list.content =
-  (model.divTop | model.global)*,
-  ((item, model.global*)+
-   | (headLabel?,
-      headItem?,
-      (label, model.global*, item, model.global*)+)),
-  (model.divBottom, model.global*)*
-list.localattributes =
-  att.global.attributes,
-  att.sortable.attributes,
-  att.typed.attribute.subtype,
-  
-  ## describes the nature of the items in the list.
-  ## Suggested values include: 1] gloss; 2] index; 3] instructions; 4] litany; 5] syllogism
-  attribute type {
-    
-    ## each list item glosses some term or concept, which is given by a label element preceding the list item.
-    "gloss"
-    | 
-      ## each list item is an entry in an index such as the alphabetical topical index at the back of a print volume.
-      "index"
-    | 
-      ## each list item is a step in a sequence of instructions, as in a recipe.
-      "instructions"
-    | 
-      ## each list item is one of a sequence of petitions, supplications or invocations, typically in a religious ritual.
-      "litany"
-    | 
-      ## each list item is part of an argument consisting of two or more propositions and a final conclusion derived from them.
-      "syllogism"
-    | xsd:Name
-  }?,
-  empty
-listBibl =
-  
-  ## (citation list) contains a list of bibliographic citations of any kind. [  ]
-  element listBibl { listBibl.content, listBibl.localattributes }
-listBibl.content =
-  model.headLike*,
-  (model.biblLike | model.milestoneLike)+,
-  (relation | listRelation)*
-listBibl.localattributes =
-  att.global.attributes,
-  att.sortable.attributes,
-  att.declarable.attributes,
-  att.typed.attributes,
-  empty
-measure =
-  
-  ## contains a word or phrase referring to some quantity of an object or commodity, usually comprising a number, a unit, and a commodity name. []
-  element measure { measure.content, measure.localattributes }
-measure.content = macro.phraseSeq
-measure.localattributes =
-  att.global.attributes,
-  att.measurement.attributes,
-  
-  ## specifies the type of measurement in any convenient typology.
-  attribute type { data.enumerated }?,
-  empty
-measureGrp =
-  
-  ## (measure group) contains a group of dimensional specifications which relate to the same object, for example the height and width of a manuscript page. []
-  element measureGrp { measureGrp.content, measureGrp.localattributes }
-measureGrp.content = (text | model.gLike | model.measureLike)*
-measureGrp.localattributes =
-  att.global.attributes,
-  att.measurement.attributes,
-  att.typed.attributes,
-  empty
-media =
-  
-  ## indicates the location of any form of external media such as an audio or video clip etc. []
-  element media { media.content, media.localattributes }
-media.content = model.descLike*
-media.localattributes =
-  att.typed.attributes,
-  att.global.attributes,
-  att.resourced.attributes,
-  att.declaring.attributes,
-  att.timed.attributes,
-  att.media.attribute.width,
-  att.media.attribute.height,
-  att.media.attribute.scale,
-  
-  ## (MIME media type) specifies the applicable multimedia internet mail extension (MIME) media type
-  attribute mimeType {
-    list { data.word+ }
-  },
-  empty
-meeting =
-  
-  ## contains the formalized descriptive title for a meeting or conference, for use in a bibliographic description for an item derived from such a meeting, or as a heading or preamble to publications emanating from it. []
-  element meeting { meeting.content, meeting.localattributes }
-meeting.content = macro.limitedContent
-meeting.localattributes =
-  att.global.attributes, att.canonical.attributes, empty
-mentioned =
-  
-  ## marks words or phrases mentioned, not used. []
-  element mentioned { mentioned.content, mentioned.localattributes }
-mentioned.content = macro.phraseSeq
-mentioned.localattributes = att.global.attributes, empty
-milestone =
-  
-  ## marks a boundary point separating any kind of section of a text, typically but not necessarily indicating a point at which some part of a standard reference system changes, where the change is not represented by a structural element. []
-  element milestone { milestone.content, milestone.localattributes }
-milestone.content = empty
-milestone.localattributes =
-  att.global.attributes,
-  att.milestoneUnit.attributes,
-  att.typed.attributes,
-  att.edition.attributes,
-  att.spanning.attributes,
-  att.breaking.attributes,
-  empty
-monogr =
-  
-  ## (monographic level) contains bibliographic elements describing an item (e.g. a book or journal) published as an independent item (i.e. as a separate physical object). []
-  element monogr { monogr.content, monogr.localattributes }
-monogr.content =
-  (((author | editor | meeting | respStmt),
-    (author | editor | meeting | respStmt)*,
-    title+,
-    (model.ptrLike | idno | textLang | editor | respStmt)*)
-   | ((title | model.ptrLike | idno)+,
-      (textLang | author | editor | meeting | respStmt)*)
-   | (authority, idno))?,
-  availability*,
-  model.noteLike*,
-  (edition,
-   (idno | model.ptrLike | editor | sponsor | funder | respStmt)*)*,
-  imprint,
-  (imprint | extent | biblScope)*
-monogr.localattributes = att.global.attributes, empty
-name =
-  
-  ## (name, proper noun) contains a proper noun or noun phrase. []
-  element name { name.content, name.localattributes }
-name.content = macro.phraseSeq
-name.localattributes =
-  att.global.attributes,
-  att.personal.attributes,
-  att.datable.attributes,
-  att.editLike.attributes,
-  att.typed.attributes,
-  empty
-note =
-  
-  ## contains a note or annotation. [   ]
-  element note { note.content, note.localattributes }
-note.content = macro.specialPara
-note.localattributes =
-  att.global.attributes,
-  att.placement.attributes,
-  att.pointing.attributes,
-  att.responsibility.attributes,
-  att.typed.attributes,
-  
-  ## indicates whether the copy text shows the exact place of reference for the note.
-  [ a:defaultValue = "true" ] attribute anchored { data.truthValue }?,
-  
-  ## points to the end of the span to which the note is attached, if the note is not embedded in the text at that point.
-  attribute targetEnd {
-    list { data.pointer+ }
-  }?,
-  empty
-num =
-  
-  ## (number) contains a number, written in any form. []
-  element num { num.content, num.localattributes }
-num.content = macro.phraseSeq
-num.localattributes =
-  att.global.attributes,
-  att.ranging.attributes,
-  
-  ## indicates the type of numeric value.
-  ## Suggested values include: 1] cardinal; 2] ordinal; 3] fraction; 4] percentage
-  attribute type {
-    
-    ## absolute number, e.g. 21, 21.5
-    "cardinal"
-    | 
-      ## ordinal number, e.g. 21st
-      "ordinal"
-    | 
-      ## fraction, e.g. one half or three-quarters
-      "fraction"
-    | 
-      ## a percentage
-      "percentage"
-    | xsd:Name
-  }?,
-  
-  ## supplies the value of the number in standard form.
-  attribute value { data.numeric }?,
-  empty
-orig =
-  
-  ## (original form) contains a reading which is marked as following the original, rather than being normalized or corrected. [ ]
-  element orig { orig.content, orig.localattributes }
-orig.content = macro.paraContent
-orig.localattributes =
-  att.global.attributes, att.responsibility.attributes, empty
-p =
-  
-  ## (paragraph) marks paragraphs in prose. [ ]
-  element p { p.content, p.localattributes }
-p.content = macro.paraContent
-p.localattributes =
-  att.global.attributes,
-  att.declaring.attributes,
-  att.fragmentable.attributes,
-  empty
-pb =
-  
-  ## (page break) marks the start of a new page in a paginated document. []
-  element pb { pb.content, pb.localattributes }
-pb.content = empty
-pb.localattributes =
-  att.global.attributes,
-  att.typed.attributes,
-  att.edition.attributes,
-  att.spanning.attributes,
-  att.breaking.attributes,
-  empty
-postBox =
-  
-  ## (postal box or post office box) contains a number or other identifier for some postal delivery point other than a street address. []
-  element postBox { postBox.content, postBox.localattributes }
-postBox.content = text
-postBox.localattributes = att.global.attributes, empty
-postCode =
-  
-  ## (postal code) contains a numerical or alphanumeric code used as part of a postal address to simplify sorting or delivery of mail. []
-  element postCode { postCode.content, postCode.localattributes }
-postCode.content = text
-postCode.localattributes = att.global.attributes, empty
-ptr =
-  
-  ## (pointer) defines a pointer to another location. [ ]
-  element ptr { ptr.content, ptr.localattributes }
-ptr.content =
-  empty
-  >> sch:pattern [
-       id = "ptr-ptrAtts-constraint-2"
-       "\x{a}" ~
-       "         "
-       sch:rule [
-         context = "tei:ptr"
-         "\x{a}" ~
-         "            "
-         sch:report [
-           test = "@target and @cRef"
-           "Only one of the\x{a}" ~
-           "attributes @target and @cRef may be supplied on "
-           sch:name [ ]
-           "."
-         ]
-         "\x{a}" ~
-         "         "
-       ]
-       "\x{a}" ~
-       "      "
-     ]
-ptr.localattributes =
-  att.global.attributes,
-  att.pointing.attributes,
-  att.internetMedia.attributes,
-  att.typed.attributes,
-  att.declaring.attributes,
-  att.cReferencing.attributes,
-  empty
-pubPlace =
-  
-  ## (publication place) contains the name of the place where a bibliographic item was published. []
-  element pubPlace { pubPlace.content, pubPlace.localattributes }
-pubPlace.content = macro.phraseSeq
-pubPlace.localattributes =
-  att.global.attributes, att.naming.attributes, empty
-publisher =
-  
-  ## provides the name of the organization responsible for the publication or distribution of a bibliographic item. [ ]
-  element publisher { publisher.content, publisher.localattributes }
-publisher.content = macro.phraseSeq
-publisher.localattributes = att.global.attributes, empty
-q =
-  
-  ## (quoted) contains material which is distinguished from the surrounding text using quotation marks or a similar method, for any one of a variety of reasons including, but not limited to: direct speech or thought, technical terms or jargon, authorial distance, quotations from elsewhere, and passages that are mentioned but not used. []
-  element q { q.content, q.localattributes }
-q.content = macro.specialPara
-q.localattributes =
-  att.global.attributes,
-  att.ascribed.attributes,
-  att.source.attributes,
-  
-  ## may be used to indicate whether the offset passage is spoken or thought, or to characterize it more finely.
-  ## Suggested values include: 1] spoken; 2] thought; 3] written; 4] soCalled; 5] foreign; 6] distinct; 7] term; 8] emph; 9] mentioned
-  attribute type {
-    
-    ## representation of speech
-    "spoken"
-    | 
-      ## representation of thought, e.g. internal monologue
-      "thought"
-    | 
-      ## quotation from a written source
-      "written"
-    | 
-      ## authorial distance
-      "soCalled"
-    | 
-      ##
-      "foreign"
-    | 
-      ## linguistically distinct
-      "distinct"
-    | 
-      ## technical term
-      "term"
-    | 
-      ## rhetorically emphasized
-      "emph"
-    | 
-      ## refering to itself, not its normal referent
-      "mentioned"
-    | xsd:Name
-  }?,
-  empty
-quote =
-  
-  ## (quotation) contains a phrase or passage attributed by the narrator or author to some agency external to the text. [ ]
-  element quote { quote.content, quote.localattributes }
-quote.content = macro.specialPara
-quote.localattributes =
-  att.global.attributes,
-  att.typed.attributes,
-  att.msExcerpt.attributes,
-  att.source.attributes,
-  empty
-ref =
-  
-  ## (reference) defines a reference to another location, possibly modified by additional text or comment. [ ]
-  element ref { ref.content, ref.localattributes }
-ref.content =
-  macro.paraContent
-  >> sch:pattern [
-       id = "ref-refAtts-constraint-3"
-       "\x{a}" ~
-       "         "
-       sch:rule [
-         context = "tei:ref"
-         "\x{a}" ~
-         "            "
-         sch:report [
-           test = "@target and @cRef"
-           "Only one of the\x{a}" ~
-           "	attributes @target' and @cRef' may be supplied on "
-           sch:name [ ]
-           "\x{a}" ~
-           "            "
-         ]
-         "\x{a}" ~
-         "         "
-       ]
-       "\x{a}" ~
-       "      "
-     ]
-ref.localattributes =
-  att.global.attributes,
-  att.pointing.attributes,
-  att.internetMedia.attributes,
-  att.typed.attributes,
-  att.declaring.attributes,
-  att.cReferencing.attributes,
-  empty
-reg =
-  
-  ## (regularization) contains a reading which has been regularized or normalized in some sense. [ ]
-  element reg { reg.content, reg.localattributes }
-reg.content = macro.paraContent
-reg.localattributes =
-  att.global.attributes,
-  att.editLike.attributes,
-  att.typed.attributes,
-  empty
-relatedItem =
-  
-  ## contains or references some other bibliographic item which is related to the present one in some specified manner, for example as a constituent or alternative version of it. []
-  element relatedItem {
-    relatedItem.content, relatedItem.localattributes
-  }
-relatedItem.content =
-  ((model.biblLike | model.ptrLike)?)
-  >> sch:pattern [
-       id = "relatedItem-targetorcontent1-constraint-4"
-       "\x{a}" ~
-       "         "
-       sch:rule [
-         context = "tei:relatedItem"
-         "\x{a}" ~
-         "            "
-         sch:report [
-           test = "@target and count( child::* ) > 0"
-           "\x{a}" ~
-           "If the @target attribute on "
-           sch:name [ ]
-           " is used, the\x{a}" ~
-           "relatedItem element must be empty"
-         ]
-         "\x{a}" ~
-         "         "
-       ]
-       "\x{a}" ~
-       "      "
-     ]
-  >> sch:pattern [
-       id = "relatedItem-targetorcontent1-constraint-6"
-       "\x{a}" ~
-       "         "
-       sch:rule [
-         context = "tei:relatedItem"
-         "\x{a}" ~
-         "            "
-         sch:assert [
-           test = "@target or child::*"
-           "A relatedItem element should have either a 'target' attribute\x{a}" ~
-           "        or a child element to indicate the related bibliographic item"
-         ]
-         "\x{a}" ~
-         "         "
-       ]
-       "\x{a}" ~
-       "      "
-     ]
-relatedItem.localattributes =
-  att.global.attributes,
-  att.typed.attributes,
-  
-  ## points to the related bibliographic element by means of an absolute or relative URI reference
-  attribute target { data.pointer }?,
-  empty
-resp =
-  
-  ## (responsibility) contains a phrase describing the nature of a person's intellectual responsibility, or an organization's role in the production or distribution of a work. [   ]
-  element resp { resp.content, resp.localattributes }
-resp.content = macro.phraseSeq.limited
-resp.localattributes =
-  att.global.attributes,
-  att.canonical.attributes,
-  att.datable.attributes,
-  empty
-respStmt =
-  
-  ## (statement of responsibility) supplies a statement of responsibility for the intellectual content of a text, edition, recording, or series, where the specialized elements for authors, editors, etc. do not suffice or do not apply. May also be used to encode information about individuals or organizations which have played a role in the production or distribution of a bibliographic work. [   ]
-  element respStmt { respStmt.content, respStmt.localattributes }
-respStmt.content =
-  (resp+, model.nameLike.agent+) | (model.nameLike.agent+, resp+)
-respStmt.localattributes =
-  att.global.attributes, att.canonical.attributes, empty
-rs =
-  
-  ## (referencing string) contains a general purpose name or referring string. [ ]
-  element rs { rs.content, rs.localattributes }
-rs.content = macro.phraseSeq
-rs.localattributes =
-  att.global.attributes,
-  att.naming.attributes,
-  att.typed.attributes,
-  att.responsibility.attributes,
-  empty
-said =
-  
-  ## (speech or thought) indicates passages thought or spoken aloud, whether explicitly indicated in the source or not, whether directly or indirectly reported, whether by real people or fictional characters. []
-  element said { said.content, said.localattributes }
-said.content = macro.specialPara
-said.localattributes =
-  att.global.attributes,
-  att.ascribed.attributes,
-  
-  ## may be used to indicate whether the quoted matter is regarded as having been vocalized or signed.
-  [ a:defaultValue = "unknown" ] attribute aloud { data.xTruthValue }?,
-  
-  ## may be used to indicate whether the quoted matter is regarded as direct or indirect speech.
-  [ a:defaultValue = "true" ] attribute direct { data.xTruthValue }?,
-  empty
-series =
-  
-  ## (series information) contains information about the series in which a book or other bibliographic item has appeared. []
-  element series { series.content, series.localattributes }
-series.content =
-  (text
-   | model.gLike
-   | title
-   | model.ptrLike
-   | editor
-   | respStmt
-   | biblScope
-   | idno
-   | textLang
-   | model.global
-   | availability)*
-series.localattributes = att.global.attributes, empty
-sic =
-  
-  ## (Latin for thus or so
-  ##    ) contains text reproduced although apparently incorrect or inaccurate. []
-  element sic { sic.content, sic.localattributes }
-sic.content = macro.paraContent
-sic.localattributes =
-  att.global.attributes, att.responsibility.attributes, empty
-soCalled =
-  
-  ## contains a word or phrase for which the author or narrator indicates a disclaiming of responsibility, for example by the use of scare quotes or italics. []
-  element soCalled { soCalled.content, soCalled.localattributes }
-soCalled.content = macro.phraseSeq
-soCalled.localattributes = att.global.attributes, empty
-sp =
-  
-  ## (speech) contains an individual speech in a performance text, or a passage presented as such in a prose or verse text. [  ]
-  element sp { sp.content, sp.localattributes }
-sp.content =
-  model.global*,
-  (speaker, model.global*)?,
-  ((lg
-    | model.lLike
-    | model.pLike
-    | model.listLike
-    | model.stageLike
-    | model.qLike),
-   model.global*)+
-sp.localattributes =
-  att.global.attributes, att.ascribed.attributes, empty
-speaker =
-  
-  ## contains a specialized form of heading or label, giving the name of one or more speakers in a dramatic text or fragment. []
-  element speaker { speaker.content, speaker.localattributes }
-speaker.content = macro.phraseSeq
-speaker.localattributes = att.global.attributes, empty
-stage =
-  
-  ## (stage direction) contains any kind of stage direction within a dramatic text or fragment. [  ]
-  element stage { stage.content, stage.localattributes }
-stage.content = macro.specialPara
-stage.localattributes =
-  att.ascribed.attributes,
-  att.global.attributes,
-  att.placement.attributes,
-  
-  ## indicates the kind of stage direction.
-  ## Suggested values include: 1] setting; 2] entrance; 3] exit; 4] business; 5] novelistic; 6] delivery; 7] modifier; 8] location; 9] mixed
-  attribute type {
-    
-    ## describes a setting.
-    "setting"
-    | 
-      ## describes an entrance.
-      "entrance"
-    | 
-      ## describes an exit.
-      "exit"
-    | 
-      ## describes stage business.
-      "business"
-    | 
-      ## is a narrative, motivating stage direction.
-      "novelistic"
-    | 
-      ## describes how a character speaks.
-      "delivery"
-    | 
-      ## gives some detail about a character.
-      "modifier"
-    | 
-      ## describes a location.
-      "location"
-    | 
-      ## more than one of the above
-      "mixed"
-    | xsd:Name
-  }?,
-  empty
-street =
-  
-  ## contains a full street address including any name or number identifying a building as well as the name of the street or route on which it is located. []
-  element street { street.content, street.localattributes }
-street.content = macro.phraseSeq
-street.localattributes = att.global.attributes, empty
-teiCorpus =
-  
-  ## contains the whole of a TEI encoded corpus, comprising a single corpus header and one or more TEI elements, each containing a single text header and a text. [ ]
-  element teiCorpus { teiCorpus.content, teiCorpus.localattributes }
-teiCorpus.content =
-  teiHeader,
-  ((model.resourceLike+, (TEI | teiCorpus)*)
-   | (TEI | teiCorpus)+)
-teiCorpus.localattributes =
-  att.global.attributes,
-  
-  ## The version of the TEI scheme
-  [ a:defaultValue = "5.0" ] attribute version { data.version }?,
-  empty
-term =
-  
-  ## contains a single-word, multi-word, or symbolic designation which is regarded as a technical term. []
-  element term { term.content, term.localattributes }
-term.content = macro.phraseSeq
-term.localattributes =
-  att.global.attributes,
-  att.declaring.attributes,
-  att.pointing.attributes,
-  att.typed.attributes,
-  att.canonical.attributes,
-  att.sortable.attributes,
-  att.cReferencing.attributes,
-  empty
-textLang =
-  
-  ## (text language) describes the languages and writing systems identified within the bibliographic work being described, rather than its description. [ ]
-  element textLang { textLang.content, textLang.localattributes }
-textLang.content = macro.phraseSeq
-textLang.localattributes =
-  att.global.attributes,
-  
-  ## (main language) supplies a code which identifies the chief language used in the bibliographic work.
-  attribute mainLang { data.language }?,
-  
-  ## (other languages) one or more codes identifying any other languages used in the bibliographic work.
-  attribute otherLangs {
-    list { data.language* }
-  }?,
-  empty
-time =
-  
-  ## contains a phrase defining a time of day in any format. []
-  element time { time.content, time.localattributes }
-time.content = (text | model.gLike | model.phrase | model.global)*
-time.localattributes =
-  att.global.attributes,
-  att.datable.attributes,
-  att.duration.attributes,
-  att.editLike.attributes,
-  att.typed.attributes,
-  empty
-title =
-  
-  ## contains a title for any kind of work. [  ]
-  element title { title.content, title.localattributes }
-title.content = macro.paraContent
-title.localattributes =
-  att.global.attributes,
-  att.canonical.attributes,
-  att.typed.attribute.subtype,
-  
-  ## classifies the title according to some convenient typology.
-  ## Sample values include: 1] main; 2] sub(subordinate) ; 3] alt(alternate) ; 4] short; 5] desc(descriptive) 
-  attribute type { data.enumerated }?,
-  
-  ## indicates the bibliographic level for a title, that is, whether it identifies an article, book, journal, series, or unpublished material.
-  attribute level {
-    
-    ## (analytic) the title applies to an analytic item, such as an article, poem, or other work published as part of a larger item.
-    "a"
-    | 
-      ## (monographic) the title applies to a monograph such as a book or other item considered to be a distinct publication, including single volumes of multi-volume works
-      "m"
-    | 
-      ## (journal) the title applies to any serial or periodical publication such as a journal, magazine, or newspaper
-      "j"
-    | 
-      ## (series) the title applies to a series of otherwise distinct publications such as a collection
-      "s"
-    | 
-      ## (unpublished) the title applies to any unpublished material (including theses and dissertations unless published by a commercial press)
-      "u"
-  }?,
-  empty
-unclear =
-  
-  ## contains a word, phrase, or passage which cannot be transcribed with certainty because it is illegible or inaudible in the source. [ ]
-  element unclear { unclear.content, unclear.localattributes }
-unclear.content = macro.paraContent
-unclear.localattributes =
-  att.global.attributes,
-  att.editLike.attributes,
-  
-  ## indicates why the material is hard to transcribe.
-  attribute reason {
-    list { data.word+ }
-  }?,
-  
-  ## Where the difficulty in transcription arises from action (partial deletion, etc.) assignable to an identifiable hand, signifies the hand responsible for the action.
-  attribute hand { data.pointer }?,
-  
-  ## Where the difficulty in transcription arises from damage, categorizes the cause of the damage, if it can be identified.
-  ## Sample values include: 1] rubbing; 2] mildew; 3] smoke
-  attribute agent { data.enumerated }?,
-  empty
-# 3. macros
diff --git a/resources/schema/tei/header.rnc b/resources/schema/tei/header.rnc
deleted file mode 100644
index 8e544a352d735558463e9ee388090fccb2c549aa..0000000000000000000000000000000000000000
--- a/resources/schema/tei/header.rnc
+++ /dev/null
@@ -1,801 +0,0 @@
-namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"
-namespace ns1 = "http://purl.oclc.org/dsdl/schematron"
-namespace rng = "http://relaxng.org/ns/structure/1.0"
-
-# Schema generated 2014-09-16T18:57:47Z
-# Edition: Version 2.7.0. Last updated on
-#	16th September 2014, revision 13036
-# This material is dual-licensed.
-# [http://creativecommons.org/licenses/by/3.0/] Distributed under a Creative Commons Attribution 3.0 Unported License.  [http://www.opensource.org/licenses/BSD-2-Clause] Copyright 2014 TEI Consortium. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. This software is provided by the copyright holders and contributors "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the copyright holder or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage. TEI material can be licensed differently depending on the use you intend to make of it. Hence it is made available under both the CC+BY and BSD-2 licences. The CC+BY licence is generally appropriate for usages which treat TEI content as data or documentation. The BSD-2 licence is generally appropriate for usage of TEI content in a software environment. For further information or clarification, please contact the TEI Consortium. The TEI Header
-
-# Definitions from module header
-
-# Set global predeclared macros
-
-# Set predeclared macros
-
-# 0. predeclared macros
-
-# 1. classes
-att.patternReplacement.attributes =
-  att.patternReplacement.attribute.matchPattern,
-  att.patternReplacement.attribute.replacementPattern
-att.patternReplacement.attribute.matchPattern =
-  
-  ## specifies a regular expression against which the values of other attributes can be matched.
-  attribute matchPattern { data.pattern }
-att.patternReplacement.attribute.replacementPattern =
-  
-  ## specifies a replacement pattern, that is, the skeleton of a relative or absolute URI containing references to groups in the matchPattern which, once subpattern substitution has been performed, complete the URI.
-  attribute replacementPattern { data.replacement }
-# 2. elements
-abstract =
-  
-  ## contains a summary or formal abstract prefixed to an existing source document by the encoder. []
-  element abstract { abstract.content, abstract.localattributes }
-abstract.content = (model.pLike | model.listLike)+
-abstract.localattributes =
-  att.global.attributes, att.responsibility.attributes, empty
-appInfo =
-  
-  ## (application information) records information about an application which has edited the TEI file. []
-  element appInfo { appInfo.content, appInfo.localattributes }
-appInfo.content = model.applicationLike+
-appInfo.localattributes = att.global.attributes, empty
-application =
-  
-  ## provides information about an application which has acted upon the document. []
-  element application {
-    application.content, application.localattributes
-  }
-application.content = model.labelLike+, (model.ptrLike* | model.pLike*)
-application.localattributes =
-  att.global.attributes,
-  att.typed.attributes,
-  att.datable.attributes,
-  
-  ## supplies an identifier for the application, independent of its version number or display name.
-  attribute ident { data.name },
-  
-  ## supplies a version number for the application, independent of its identifier or display name.
-  attribute version { data.versionNumber },
-  empty
-authority =
-  
-  ## (release authority) supplies the name of a person or other agency responsible for making a work available, other than a publisher or distributor. []
-  element authority { authority.content, authority.localattributes }
-authority.content = macro.phraseSeq.limited
-authority.localattributes = att.global.attributes, empty
-availability =
-  
-  ## supplies information about the availability of a text, for example any restrictions on its use or distribution, its copyright status, any licence applying to it, etc. []
-  element availability {
-    availability.content, availability.localattributes
-  }
-availability.content = (model.availabilityPart | model.pLike)+
-availability.localattributes =
-  att.global.attributes,
-  att.declarable.attributes,
-  
-  ## supplies a code identifying the current availability of the text.
-  [ a:defaultValue = "unknown" ]
-  attribute status {
-    
-    ## the text is freely available.
-    "free"
-    | 
-      ## the status of the text is unknown.
-      "unknown"
-    | 
-      ## the text is not freely available.
-      "restricted"
-  }?,
-  empty
-biblFull =
-  
-  ## (fully-structured bibliographic citation) contains a fully-structured bibliographic citation, in which all components of the TEI file description are present. [   ]
-  element biblFull { biblFull.content, biblFull.localattributes }
-biblFull.content =
-  (titleStmt,
-   editionStmt?,
-   extent?,
-   publicationStmt,
-   seriesStmt?,
-   notesStmt?),
-  sourceDesc*
-biblFull.localattributes =
-  att.global.attributes,
-  att.declarable.attributes,
-  att.sortable.attributes,
-  att.docStatus.attributes,
-  empty
-cRefPattern =
-  
-  ## (canonical reference pattern) specifies an expression and replacement pattern for transforming a canonical reference into a URI. [  ]
-  element cRefPattern {
-    cRefPattern.content, cRefPattern.localattributes
-  }
-cRefPattern.content = model.pLike*
-cRefPattern.localattributes =
-  att.global.attributes, att.patternReplacement.attributes, empty
-calendar =
-  
-  ## describes a calendar or dating system used in a dating formula in the text. []
-  element calendar { calendar.content, calendar.localattributes }
-calendar.content = model.pLike+
-calendar.localattributes =
-  att.global.attributes, att.pointing.attributes, empty
-calendarDesc =
-  
-  ## (calendar description) contains a description of the calendar system used in any dating expression found in the text. [ ]
-  element calendarDesc {
-    calendarDesc.content, calendarDesc.localattributes
-  }
-calendarDesc.content = calendar+
-calendarDesc.localattributes = att.global.attributes, empty
-catDesc =
-  
-  ## (category description) describes some category within a taxonomy or text typology, either in the form of a brief prose description or in terms of the situational parameters used by the TEI formal textDesc. []
-  element catDesc { catDesc.content, catDesc.localattributes }
-catDesc.content = (text | model.limitedPhrase | model.catDescPart)*
-catDesc.localattributes = att.global.attributes, empty
-catRef =
-  
-  ## (category reference) specifies one or more defined categories within some taxonomy or text typology. []
-  element catRef { catRef.content, catRef.localattributes }
-catRef.content = empty
-catRef.localattributes =
-  att.global.attributes,
-  att.pointing.attributes,
-  
-  ## identifies the classification scheme within which the set of categories concerned is defined, for example by a taxonomy element, or by some other resource.
-  attribute scheme { data.pointer }?,
-  empty
-category =
-  
-  ## contains an individual descriptive category, possibly nested within a superordinate category, within a user-defined taxonomy. []
-  element category { category.content, category.localattributes }
-category.content =
-  (catDesc+ | (model.descLike | model.glossLike)*),
-  category*
-category.localattributes = att.global.attributes, empty
-change =
-  
-  ## documents a change or set of changes made during the production of a source document, or during the revision of an electronic file. [  ]
-  element change { change.content, change.localattributes }
-change.content = macro.specialPara
-change.localattributes =
-  att.ascribed.attributes,
-  att.datable.attributes,
-  att.docStatus.attributes,
-  att.global.attributes,
-  att.typed.attributes,
-  
-  ## points to one or more elements that belong to this change.
-  attribute target {
-    list { data.pointer+ }
-  }?,
-  empty
-classCode =
-  
-  ## (classification code) contains the classification code used for this text in some standard classification system. []
-  element classCode { classCode.content, classCode.localattributes }
-classCode.content = macro.phraseSeq.limited
-classCode.localattributes =
-  att.global.attributes,
-  
-  ## identifies the classification system in use, as defined by for example by a taxonomy element, or some other resource..
-  attribute scheme { data.pointer },
-  empty
-classDecl =
-  
-  ## (classification declarations) contains one or more taxonomies defining any classificatory codes used elsewhere in the text. [ ]
-  element classDecl { classDecl.content, classDecl.localattributes }
-classDecl.content = taxonomy+
-classDecl.localattributes = att.global.attributes, empty
-correction =
-  
-  ## (correction principles) states how and under what circumstances corrections have been made in the text. [ ]
-  element correction { correction.content, correction.localattributes }
-correction.content = model.pLike+
-correction.localattributes =
-  att.global.attributes,
-  att.declarable.attributes,
-  
-  ## indicates the degree of correction applied to the text.
-  [ a:defaultValue = "unknown" ]
-  attribute status {
-    
-    ## the text has been thoroughly checked and proofread.
-    "high"
-    | 
-      ## the text has been checked at least once.
-      "medium"
-    | 
-      ## the text has not been checked.
-      "low"
-    | 
-      ## the correction status of the text is unknown.
-      "unknown"
-  }?,
-  
-  ## indicates the method adopted to indicate corrections within the text.
-  [ a:defaultValue = "silent" ]
-  attribute method {
-    
-    ## corrections have been made silently
-    "silent"
-    | 
-      ## corrections have been represented using markup
-      "markup"
-  }?,
-  empty
-creation =
-  
-  ## contains information about the creation of a text. [ ]
-  element creation { creation.content, creation.localattributes }
-creation.content = (text | model.limitedPhrase | listChange)*
-creation.localattributes =
-  att.global.attributes, att.datable.attributes, empty
-distributor =
-  
-  ## supplies the name of a person or other agency responsible for the distribution of a text. []
-  element distributor {
-    distributor.content, distributor.localattributes
-  }
-distributor.content = macro.phraseSeq
-distributor.localattributes = att.global.attributes, empty
-edition =
-  
-  ## describes the particularities of one edition of a text. []
-  element edition { edition.content, edition.localattributes }
-edition.content = macro.phraseSeq
-edition.localattributes = att.global.attributes, empty
-editionStmt =
-  
-  ## (edition statement) groups information relating to one edition of a text. [ ]
-  element editionStmt {
-    editionStmt.content, editionStmt.localattributes
-  }
-editionStmt.content = model.pLike+ | (edition, model.respLike*)
-editionStmt.localattributes = att.global.attributes, empty
-editorialDecl =
-  
-  ## (editorial practice declaration) provides details of editorial principles and practices applied during the encoding of a text. [  ]
-  element editorialDecl {
-    editorialDecl.content, editorialDecl.localattributes
-  }
-editorialDecl.content = (model.pLike | model.editorialDeclPart)+
-editorialDecl.localattributes =
-  att.global.attributes, att.declarable.attributes, empty
-encodingDesc =
-  
-  ## (encoding description) documents the relationship between an electronic text and the source or sources from which it was derived. [ ]
-  element encodingDesc {
-    encodingDesc.content, encodingDesc.localattributes
-  }
-encodingDesc.content = (model.encodingDescPart | model.pLike)+
-encodingDesc.localattributes = att.global.attributes, empty
-extent =
-  
-  ## describes the approximate size of a text stored on some carrier medium or of some other object, digital or non-digital, specified in any convenient units. [   ]
-  element extent { extent.content, extent.localattributes }
-extent.content = macro.phraseSeq
-extent.localattributes = att.global.attributes, empty
-fileDesc =
-  
-  ## (file description) contains a full bibliographic description of an electronic file. [ ]
-  element fileDesc { fileDesc.content, fileDesc.localattributes }
-fileDesc.content =
-  (titleStmt,
-   editionStmt?,
-   extent?,
-   publicationStmt,
-   seriesStmt?,
-   notesStmt?),
-  sourceDesc+
-fileDesc.localattributes = att.global.attributes, empty
-funder =
-  
-  ## (funding body) specifies the name of an individual, institution, or organization responsible for the funding of a project or text. []
-  element funder { funder.content, funder.localattributes }
-funder.content = macro.phraseSeq.limited
-funder.localattributes =
-  att.global.attributes, att.canonical.attributes, empty
-geoDecl =
-  
-  ## (geographic coordinates declaration) documents the notation and the datum used for geographic coordinates expressed as content of the geo element elsewhere within the document. []
-  element geoDecl { geoDecl.content, geoDecl.localattributes }
-geoDecl.content = macro.phraseSeq
-geoDecl.localattributes =
-  att.global.attributes,
-  att.declarable.attributes,
-  
-  ## supplies a commonly used code name for the datum employed.
-  ## Suggested values include: 1] WGS84(World Geodetic System) ; 2] MGRS(Military Grid Reference System) ; 3] OSGB36(ordnance survey great britain) ; 4] ED50(European Datum coordinate system) 
-  [ a:defaultValue = "WGS84" ]
-  attribute datum {
-    
-    ## (World Geodetic System) a pair of numbers to be interpreted as latitude followed by longitude according to the World Geodetic System.
-    "WGS84"
-    | 
-      ## (Military Grid Reference System) the values supplied are geospatial entity object codes, based on
-      "MGRS"
-    | 
-      ## (ordnance survey great britain) the value supplied is to be interpreted as a British National Grid Reference.
-      "OSGB36"
-    | 
-      ## (European Datum coordinate system) the value supplied is to be interpreted as latitude followed by longitude according to the European Datum coordinate system.
-      "ED50"
-    | xsd:Name
-  }?,
-  empty
-handNote =
-  
-  ## (note on hand) describes a particular style or hand distinguished within a manuscript. []
-  element handNote { handNote.content, handNote.localattributes }
-handNote.content = macro.specialPara
-handNote.localattributes =
-  att.global.attributes, att.handFeatures.attributes, empty
-hyphenation =
-  
-  ## summarizes the way in which hyphenation in a source text has been treated in an encoded version of it. [ ]
-  element hyphenation {
-    hyphenation.content, hyphenation.localattributes
-  }
-hyphenation.content = model.pLike+
-hyphenation.localattributes =
-  att.global.attributes,
-  att.declarable.attributes,
-  
-  ## (end-of-line) indicates whether or not end-of-line hyphenation has been retained in a text.
-  [ a:defaultValue = "some" ]
-  attribute eol {
-    
-    ## all end-of-line hyphenation has been retained, even though the lineation of the original may not have been.
-    "all"
-    | 
-      ## end-of-line hyphenation has been retained in some cases.
-      "some"
-    | 
-      ## all soft end-of-line hyphenation has been removed: any remaining end-of-line hyphenation should be retained.
-      "hard"
-    | 
-      ## all end-of-line hyphenation has been removed: any remaining hyphenation occurred within the line.
-      "none"
-  }?,
-  empty
-idno =
-  
-  ## (identifier) supplies any form of identifier used to identify some object, such as a bibliographic item, a person, a title, an organization, etc. in a standardized way. [  ]
-  element idno { idno.content, idno.localattributes }
-idno.content = (text | model.gLike | idno)*
-idno.localattributes =
-  att.global.attributes,
-  att.sortable.attributes,
-  
-  ## categorizes the identifier, for example as an ISBN, Social Security number, etc.
-  attribute type { data.enumerated }?,
-  empty
-interpretation =
-  
-  ## describes the scope of any analytic or interpretive information added to the text in addition to the transcription. []
-  element interpretation {
-    interpretation.content, interpretation.localattributes
-  }
-interpretation.content = model.pLike+
-interpretation.localattributes =
-  att.global.attributes, att.declarable.attributes, empty
-keywords =
-  
-  ## contains a list of keywords or phrases identifying the topic or nature of a text. []
-  element keywords { keywords.content, keywords.localattributes }
-keywords.content = term+ | \list
-keywords.localattributes =
-  att.global.attributes,
-  
-  ## identifies the controlled vocabulary within which the set of keywords concerned is defined identifies the classification scheme within which the set of categories concerned is defined, for example by a taxonomy element, or by some other resource.
-  attribute scheme { data.pointer }?,
-  empty
-langUsage =
-  
-  ## (language usage) describes the languages, sublanguages, registers, dialects, etc. represented within a text. [  ]
-  element langUsage { langUsage.content, langUsage.localattributes }
-langUsage.content = language+
-langUsage.localattributes =
-  att.global.attributes, att.declarable.attributes, empty
-language =
-  
-  ## characterizes a single language or sublanguage used within a text. []
-  element language { language.content, language.localattributes }
-language.content = macro.phraseSeq.limited
-language.localattributes =
-  att.global.attributes,
-  
-  ## (identifier) Supplies a language code constructed as defined in BCP 47 which is used to identify the language documented by this element, and which is referenced by the global xml:lang attribute.
-  attribute ident { data.language },
-  
-  ## specifies the approximate percentage (by volume) of the text which uses this language.
-  attribute usage {
-    xsd:nonNegativeInteger { maxInclusive = "100" }
-  }?,
-  empty
-licence =
-  
-  ## contains information about a licence or other legal agreement applicable to the text. []
-  element licence { licence.content, licence.localattributes }
-licence.content = macro.specialPara
-licence.localattributes =
-  att.global.attributes,
-  att.pointing.attributes,
-  att.datable.attributes,
-  empty
-listChange =
-  
-  ## groups a number of change descriptions associated with either the creation of a source text or the revision of an encoded text. [ ]
-  element listChange { listChange.content, listChange.localattributes }
-listChange.content = (listChange | change)+
-listChange.localattributes =
-  att.global.attributes,
-  att.sortable.attributes,
-  
-  ## indicates whether the ordering of its child change elements is to be considered significant or not
-  [ a:defaultValue = "true" ] attribute ordered { data.truthValue }?,
-  empty
-listPrefixDef =
-  
-  ## (list of prefix definitions) contains a list of definitions of prefixing schemes used in data.pointer values, showing how abbreviated URIs using each scheme may be expanded into full URIs. []
-  element listPrefixDef {
-    listPrefixDef.content, listPrefixDef.localattributes
-  }
-listPrefixDef.content = (prefixDef | listPrefixDef)+
-listPrefixDef.localattributes = att.global.attributes, empty
-\namespace =
-  
-  ## supplies the formal name of the namespace to which the elements documented by its children belong. []
-  element namespace { namespace.content, namespace.localattributes }
-namespace.content = tagUsage+
-namespace.localattributes =
-  att.global.attributes,
-  
-  ## specifies the full formal name of the namespace concerned.
-  attribute name { data.namespace },
-  empty
-normalization =
-  
-  ## indicates the extent of normalization or regularization of the original source carried out in converting it to electronic form. [ ]
-  element normalization {
-    normalization.content, normalization.localattributes
-  }
-normalization.content = model.pLike+
-normalization.localattributes =
-  att.global.attributes,
-  att.declarable.attributes,
-  
-  ## indicates a bibliographic description or other resource documenting the principles underlying the normalization carried out.
-  attribute source { data.pointer }?,
-  
-  ## indicates the method adopted to indicate normalizations within the text.
-  [ a:defaultValue = "silent" ]
-  attribute method {
-    
-    ## normalization made silently
-    "silent"
-    | 
-      ## normalization represented using markup
-      "markup"
-  }?,
-  empty
-notesStmt =
-  
-  ## (notes statement) collects together any notes providing information about a text additional to that recorded in other parts of the bibliographic description. [ ]
-  element notesStmt { notesStmt.content, notesStmt.localattributes }
-notesStmt.content = (model.noteLike | relatedItem)+
-notesStmt.localattributes = att.global.attributes, empty
-prefixDef =
-  
-  ## (prefixing scheme used in data.pointer values) defines a prefixing scheme used in data.pointer values, showing how abbreviated URIs using the scheme may be expanded into full URIs. []
-  element prefixDef { prefixDef.content, prefixDef.localattributes }
-prefixDef.content = model.pLike*
-prefixDef.localattributes =
-  att.global.attributes,
-  att.patternReplacement.attributes,
-  
-  ## supplies a name which functions as the prefix for an abbreviated pointing scheme such as a private URI scheme. The prefix constitutes the text preceding the first colon.
-  attribute ident { data.name },
-  empty
-principal =
-  
-  ## (principal researcher) supplies the name of the principal researcher responsible for the creation of an electronic text. []
-  element principal { principal.content, principal.localattributes }
-principal.content = macro.phraseSeq.limited
-principal.localattributes =
-  att.global.attributes, att.canonical.attributes, empty
-profileDesc =
-  
-  ## (text-profile description) provides a detailed description of non-bibliographic aspects of a text, specifically the languages and sublanguages used, the situation in which it was produced, the participants and their setting. [ ]
-  element profileDesc {
-    profileDesc.content, profileDesc.localattributes
-  }
-profileDesc.content = model.profileDescPart*
-profileDesc.localattributes = att.global.attributes, empty
-projectDesc =
-  
-  ## (project description) describes in detail the aim or purpose for which an electronic file was encoded, together with any other relevant information concerning the process by which it was assembled or collected. [  ]
-  element projectDesc {
-    projectDesc.content, projectDesc.localattributes
-  }
-projectDesc.content = model.pLike+
-projectDesc.localattributes =
-  att.global.attributes, att.declarable.attributes, empty
-publicationStmt =
-  
-  ## (publication statement) groups information concerning the publication or distribution of an electronic or other text. [ ]
-  element publicationStmt {
-    publicationStmt.content, publicationStmt.localattributes
-  }
-publicationStmt.content =
-  (model.publicationStmtPart.agency, model.publicationStmtPart.detail*)+
-  | model.pLike+
-publicationStmt.localattributes = att.global.attributes, empty
-punctuation =
-  
-  ## specifies editorial practice adopted with respect to punctuation marks in the original. [ ]
-  element punctuation {
-    punctuation.content, punctuation.localattributes
-  }
-punctuation.content = model.pLike*
-punctuation.localattributes =
-  att.declarable.attributes,
-  att.global.attributes,
-  
-  ## indicates whether or not punctation marks have been retained as content within the text.
-  attribute marks {
-    
-    ## no punctuation marks have been retained
-    "none"
-    | 
-      ## some punctuation marks have been retained
-      "some"
-    | 
-      ## all punctuation marks have been retained
-      "all"
-  }?,
-  
-  ## indicates whether punctation marks have been captured inside or outside of an adjacent element.
-  attribute placement {
-    
-    ## punctuation marks are captured inside adjacent elements
-    "internal"
-    | 
-      ## punctuation marks are captured outside adjacent elements
-      "external"
-  }?,
-  empty
-quotation =
-  
-  ## specifies editorial practice adopted with respect to quotation marks in the original. [ ]
-  element quotation { quotation.content, quotation.localattributes }
-quotation.content =
-  (model.pLike*)
-  >> ns1:pattern [
-       id = "quotation-quotationContents-constraint-1"
-       "\x{a}" ~
-       "         "
-       ns1:rule [
-         context = "tei:quotation"
-         "\x{a}" ~
-         "            "
-         ns1:report [
-           test = "not(@marks) and not (tei:p)"
-           "\x{a}" ~
-           "On "
-           ns1:name [ ]
-           ", either the @marks attribute should be used, or a paragraph of description provided"
-         ]
-         "\x{a}" ~
-         "         "
-       ]
-       "\x{a}" ~
-       "      "
-     ]
-quotation.localattributes =
-  att.global.attributes,
-  att.declarable.attributes,
-  
-  ## (quotation marks) indicates whether or not quotation marks have been retained as content within the text.
-  attribute marks {
-    
-    ## no quotation marks have been retained
-    "none"
-    | 
-      ## some quotation marks have been retained
-      "some"
-    | 
-      ## all quotation marks have been retained
-      "all"
-  }?,
-  empty
-refState =
-  
-  ## (reference state) specifies one component of a canonical reference defined by the milestone method. [ ]
-  element refState { refState.content, refState.localattributes }
-refState.content = empty
-refState.localattributes =
-  att.global.attributes,
-  att.milestoneUnit.attributes,
-  att.edition.attributes,
-  
-  ## specifies the fixed length of the reference component.
-  attribute length { data.count }?,
-  
-  ## (delimiter) supplies a delimiting string following the reference component.
-  attribute delim { data.text }?,
-  empty
-refsDecl =
-  
-  ## (references declaration) specifies how canonical references are constructed for this text. [  ]
-  element refsDecl { refsDecl.content, refsDecl.localattributes }
-refsDecl.content = model.pLike+ | cRefPattern+ | refState+
-refsDecl.localattributes =
-  att.global.attributes, att.declarable.attributes, empty
-rendition =
-  
-  ## supplies information about the rendition or appearance of one or more elements in the source text. []
-  element rendition { rendition.content, rendition.localattributes }
-rendition.content = macro.limitedContent
-rendition.localattributes =
-  att.global.attributes,
-  att.styleDef.attributes,
-  
-  ## where CSS is used, provides a way of defining pseudo-elements, that is, styling rules applicable to specific sub-portions of an element.
-  ## Sample values include: 1] first-line; 2] first-letter; 3] before; 4] after
-  attribute scope { data.enumerated }?,
-  empty
-revisionDesc =
-  
-  ## (revision description) summarizes the revision history for a file. [ ]
-  element revisionDesc {
-    revisionDesc.content, revisionDesc.localattributes
-  }
-revisionDesc.content = \list | listChange | change+
-revisionDesc.localattributes =
-  att.global.attributes, att.docStatus.attributes, empty
-samplingDecl =
-  
-  ## (sampling declaration) contains a prose description of the rationale and methods used in sampling texts in the creation of a corpus or collection. [  ]
-  element samplingDecl {
-    samplingDecl.content, samplingDecl.localattributes
-  }
-samplingDecl.content = model.pLike+
-samplingDecl.localattributes =
-  att.global.attributes, att.declarable.attributes, empty
-scriptNote =
-  
-  ## describes a particular script distinguished within the description of a manuscript or similar resource. []
-  element scriptNote { scriptNote.content, scriptNote.localattributes }
-scriptNote.content = macro.specialPara
-scriptNote.localattributes =
-  att.global.attributes, att.handFeatures.attributes, empty
-segmentation =
-  
-  ## describes the principles according to which the text has been segmented, for example into sentences, tone-units, graphemic strata, etc. [ ]
-  element segmentation {
-    segmentation.content, segmentation.localattributes
-  }
-segmentation.content = model.pLike+
-segmentation.localattributes =
-  att.global.attributes, att.declarable.attributes, empty
-seriesStmt =
-  
-  ## (series statement) groups information about the series, if any, to which a publication belongs. [ ]
-  element seriesStmt { seriesStmt.content, seriesStmt.localattributes }
-seriesStmt.content =
-  model.pLike+
-  | (title+, (editor | respStmt)*, (idno | biblScope)*)
-seriesStmt.localattributes = att.global.attributes, empty
-sourceDesc =
-  
-  ## (source description) describes the source from which an electronic text was derived or generated, typically a bibliographic description in the case of a digitized text, or a phrase such as "born digital" for a text which has no previous existence. []
-  element sourceDesc { sourceDesc.content, sourceDesc.localattributes }
-sourceDesc.content =
-  model.pLike+
-  | (model.biblLike | model.sourceDescPart | model.listLike)+
-sourceDesc.localattributes =
-  att.global.attributes, att.declarable.attributes, empty
-sponsor =
-  
-  ## specifies the name of a sponsoring organization or institution. []
-  element sponsor { sponsor.content, sponsor.localattributes }
-sponsor.content = macro.phraseSeq.limited
-sponsor.localattributes =
-  att.global.attributes, att.canonical.attributes, empty
-stdVals =
-  
-  ## (standard values) specifies the format used when standardized date or number values are supplied. [ ]
-  element stdVals { stdVals.content, stdVals.localattributes }
-stdVals.content = model.pLike+
-stdVals.localattributes =
-  att.global.attributes, att.declarable.attributes, empty
-styleDefDecl =
-  
-  ## (style definition language declaration) specifies the name of the formal language in which style or renditional information is supplied elsewhere in the document. The specific version of the scheme may also be supplied. []
-  element styleDefDecl {
-    styleDefDecl.content, styleDefDecl.localattributes
-  }
-styleDefDecl.content = model.pLike*
-styleDefDecl.localattributes =
-  att.global.attributes,
-  att.declarable.attributes,
-  att.styleDef.attributes,
-  empty
-tagUsage =
-  
-  ## supplies information about the usage of a specific element within a text. []
-  element tagUsage { tagUsage.content, tagUsage.localattributes }
-tagUsage.content = macro.limitedContent
-tagUsage.localattributes =
-  att.global.attributes,
-  
-  ## (generic identifier) specifies the name (generic identifier) of the element indicated by the tag, within the namespace indicated by the parent namespace element.
-  attribute gi { data.name },
-  
-  ## specifies the number of occurrences of this element within the text.
-  attribute occurs { data.count }?,
-  
-  ## (with unique identifier) specifies the number of occurrences of this element within the text which bear a distinct value for the global xml:id attribute.
-  attribute withId { data.count }?,
-  
-  ## specifies the identifier of a rendition element which defines how this element was rendered in the source text.
-  attribute render {
-    list { data.pointer+ }
-  }?,
-  empty
-tagsDecl =
-  
-  ## (tagging declaration) provides detailed information about the tagging applied to a document. [ ]
-  element tagsDecl { tagsDecl.content, tagsDecl.localattributes }
-tagsDecl.content = rendition*, \namespace*
-tagsDecl.localattributes = att.global.attributes, empty
-taxonomy =
-  
-  ## defines a typology either implicitly, by means of a bibliographic citation, or explicitly by a structured taxonomy. []
-  element taxonomy { taxonomy.content, taxonomy.localattributes }
-taxonomy.content =
-  (model.glossLike | model.descLike)*
-  | category+
-  | (model.biblLike, category*)
-taxonomy.localattributes = att.global.attributes, empty
-teiHeader =
-  
-  ## (TEI header) supplies the descriptive and declarative information making up an electronic title page for every TEI-conformant document. [ ]
-  element teiHeader { teiHeader.content, teiHeader.localattributes }
-teiHeader.content = fileDesc, model.teiHeaderPart*, revisionDesc?
-teiHeader.localattributes =
-  att.global.attributes,
-  
-  ## specifies the kind of document to which the header is attached, for example whether it is a corpus or individual text.
-  ## Sample values include: 1] text; 2] corpus
-  [ a:defaultValue = "text" ] attribute type { data.enumerated }?,
-  empty
-textClass =
-  
-  ## (text classification) groups information which describes the nature or topic of a text in terms of a standard classification scheme, thesaurus, etc. []
-  element textClass { textClass.content, textClass.localattributes }
-textClass.content = (classCode | catRef | keywords)*
-textClass.localattributes =
-  att.global.attributes, att.declarable.attributes, empty
-titleStmt =
-  
-  ## (title statement) groups information about the title of a work and those responsible for its content. [ ]
-  element titleStmt { titleStmt.content, titleStmt.localattributes }
-titleStmt.content = title+, model.respLike*
-titleStmt.localattributes = att.global.attributes, empty
-typeNote =
-  
-  ## describes a particular font or other significant typographic feature distinguished within the description of a printed resource. []
-  element typeNote { typeNote.content, typeNote.localattributes }
-typeNote.content = macro.specialPara
-typeNote.localattributes =
-  att.global.attributes, att.handFeatures.attributes, empty
-# 3. macros
diff --git a/resources/schema/tei/msdescription.rnc b/resources/schema/tei/msdescription.rnc
deleted file mode 100644
index b2bd2a9f16aa5535af7e840a32f5677eb9a4d871..0000000000000000000000000000000000000000
--- a/resources/schema/tei/msdescription.rnc
+++ /dev/null
@@ -1,768 +0,0 @@
-namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"
-namespace rng = "http://relaxng.org/ns/structure/1.0"
-namespace sch = "http://purl.oclc.org/dsdl/schematron"
-
-# Schema generated 2014-09-16T18:57:47Z
-# Edition: Version 2.7.0. Last updated on
-#	16th September 2014, revision 13036
-# This material is dual-licensed.
-# [http://creativecommons.org/licenses/by/3.0/] Distributed under a Creative Commons Attribution 3.0 Unported License.  [http://www.opensource.org/licenses/BSD-2-Clause] Copyright 2014 TEI Consortium. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. This software is provided by the copyright holders and contributors "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the copyright holder or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage. TEI material can be licensed differently depending on the use you intend to make of it. Hence it is made available under both the CC+BY and BSD-2 licences. The CC+BY licence is generally appropriate for usages which treat TEI content as data or documentation. The BSD-2 licence is generally appropriate for usage of TEI content in a software environment. For further information or clarification, please contact the TEI Consortium. Manuscript Description
-
-# Definitions from module msdescription
-
-# Set global predeclared macros
-
-# Set predeclared macros
-
-# 0. predeclared macros
-
-# 1. classes
-att.msExcerpt.attributes = att.msExcerpt.attribute.defective
-att.msExcerpt.attribute.defective =
-  
-  ## indicates whether the passage being quoted is defective, i.e. incomplete through loss or damage.
-  [ a:defaultValue = "false" ] attribute defective { data.xTruthValue }?
-# 2. elements
-accMat =
-  
-  ## (accompanying material) contains details of any significant additional material which may be closely associated with the manuscript being described, such as non-contemporaneous documents or fragments bound in with the manuscript at some earlier historical period. []
-  element accMat { accMat.content, accMat.localattributes }
-accMat.content = macro.specialPara
-accMat.localattributes =
-  att.global.attributes, att.typed.attributes, empty
-acquisition =
-  
-  ## contains any descriptive or other information concerning the process by which a manuscript or manuscript part entered the holding institution. []
-  element acquisition {
-    acquisition.content, acquisition.localattributes
-  }
-acquisition.content = macro.specialPara
-acquisition.localattributes =
-  att.global.attributes, att.datable.attributes, empty
-additional =
-  
-  ## groups additional information, combining bibliographic information about a manuscript, or surrogate copies of it with curatorial or administrative information. []
-  element additional { additional.content, additional.localattributes }
-additional.content = adminInfo?, surrogates?, listBibl?
-additional.localattributes = att.global.attributes, empty
-additions =
-  
-  ## contains a description of any significant additions found within a manuscript, such as marginalia or other annotations. []
-  element additions { additions.content, additions.localattributes }
-additions.content = macro.specialPara
-additions.localattributes = att.global.attributes, empty
-adminInfo =
-  
-  ## (administrative information) contains information about the present custody and availability of the manuscript, and also about the record description itself. []
-  element adminInfo { adminInfo.content, adminInfo.localattributes }
-adminInfo.content =
-  recordHist?, availability?, custodialHist?, model.noteLike?
-adminInfo.localattributes = att.global.attributes, empty
-altIdentifier =
-  
-  ## (alternative identifier) contains an alternative or former structured identifier used for a manuscript, such as a former catalogue number. []
-  element altIdentifier {
-    altIdentifier.content, altIdentifier.localattributes
-  }
-altIdentifier.content =
-  model.placeNamePart_sequenceOptional,
-  institution?,
-  repository?,
-  collection?,
-  idno,
-  note?
-altIdentifier.localattributes =
-  att.global.attributes, att.typed.attributes, empty
-binding =
-  
-  ## contains a description of one binding, i.e. type of covering, boards, etc. applied to a manuscript. []
-  element binding { binding.content, binding.localattributes }
-binding.content = (model.pLike | condition | decoNote)+
-binding.localattributes =
-  att.global.attributes,
-  att.datable.attributes,
-  
-  ## specifies whether or not the binding is contemporary with the majority of its contents
-  attribute contemporary { data.xTruthValue }?,
-  empty
-bindingDesc =
-  
-  ## (binding description) describes the present and former bindings of a manuscript, either as a series of paragraphs or as a series of distinct binding elements, one for each binding of the manuscript. []
-  element bindingDesc {
-    bindingDesc.content, bindingDesc.localattributes
-  }
-bindingDesc.content = (model.pLike | decoNote | condition)+ | binding+
-bindingDesc.localattributes = att.global.attributes, empty
-catchwords =
-  
-  ## describes the system used to ensure correct ordering of the quires making up a codex or incunable, typically by means of annotations at the foot of the page. []
-  element catchwords { catchwords.content, catchwords.localattributes }
-catchwords.content = macro.phraseSeq
-catchwords.localattributes = att.global.attributes, empty
-collation =
-  
-  ## contains a description of how the leaves or bifolia are physically arranged. []
-  element collation { collation.content, collation.localattributes }
-collation.content = macro.specialPara
-collation.localattributes = att.global.attributes, empty
-collection =
-  
-  ## contains the name of a collection of manuscripts, not necessarily located within a single repository. []
-  element collection { collection.content, collection.localattributes }
-collection.content = macro.xtext
-collection.localattributes =
-  att.global.attributes,
-  att.naming.attributes,
-  att.typed.attributes,
-  empty
-colophon =
-  
-  ## contains the colophon of a manuscript item: that is, a statement providing information regarding the date, place, agency, or reason for production of the manuscript. []
-  element colophon { colophon.content, colophon.localattributes }
-colophon.content = macro.phraseSeq
-colophon.localattributes = att.global.attributes, empty
-condition =
-  
-  ## contains a description of the physical condition of the manuscript. []
-  element condition { condition.content, condition.localattributes }
-condition.content = macro.specialPara
-condition.localattributes = att.global.attributes, empty
-custEvent =
-  
-  ## (custodial event) describes a single event during the custodial history of a manuscript. []
-  element custEvent { custEvent.content, custEvent.localattributes }
-custEvent.content = macro.specialPara
-custEvent.localattributes =
-  att.global.attributes,
-  att.datable.attributes,
-  att.typed.attributes,
-  empty
-custodialHist =
-  
-  ## (custodial history) contains a description of a manuscript's custodial history, either as running prose or as a series of dated custodial events. []
-  element custodialHist {
-    custodialHist.content, custodialHist.localattributes
-  }
-custodialHist.content = model.pLike+ | custEvent+
-custodialHist.localattributes = att.global.attributes, empty
-decoDesc =
-  
-  ## (decoration description) contains a description of the decoration of a manuscript, either as a sequence of paragraphs, or as a sequence of topically organized decoNote elements. []
-  element decoDesc { decoDesc.content, decoDesc.localattributes }
-decoDesc.content = model.pLike+ | (summary?, decoNote+)
-decoDesc.localattributes = att.global.attributes, empty
-decoNote =
-  
-  ## (note on decoration) contains a note describing either a decorative component of a manuscript, or a fairly homogenous class of such components. []
-  element decoNote { decoNote.content, decoNote.localattributes }
-decoNote.content = macro.specialPara
-decoNote.localattributes =
-  att.global.attributes, att.typed.attributes, empty
-depth =
-  
-  ## contains a measurement measured across the spine of a book or codex, or (for other text-bearing objects) perpendicular to the measurement given by the width element. []
-  element depth { depth.content, depth.localattributes }
-depth.content = macro.xtext
-depth.localattributes =
-  att.global.attributes, att.dimensions.attributes, empty
-dim =
-  
-  ## contains any single measurement forming part of a dimensional specification of some sort. []
-  element dim { dim.content, dim.localattributes }
-dim.content = macro.xtext
-dim.localattributes =
-  att.global.attributes,
-  att.typed.attributes,
-  att.dimensions.attributes,
-  empty
-dimensions =
-  
-  ## contains a dimensional specification. []
-  element dimensions { dimensions.content, dimensions.localattributes }
-dimensions.content =
-  ((dim | model.dimLike)*)
-  >> sch:pattern [
-       id = "dimensions-duplicateDim-constraint-5"
-       "\x{a}" ~
-       "         "
-       sch:rule [
-         context = "tei:dimensions"
-         "\x{a}" ~
-         "            "
-         sch:report [
-           test = "count(tei:width)> 1"
-           "\x{a}" ~
-           "The element "
-           sch:name [ ]
-           " may appear once only\x{a}" ~
-           "      "
-         ]
-         "\x{a}" ~
-         "         "
-       ]
-       "\x{a}" ~
-       "      "
-     ]
-  >> sch:pattern [
-       id = "dimensions-duplicateDim-constraint-6"
-       "\x{a}" ~
-       "         "
-       sch:rule [
-         context = "tei:dimensions"
-         "\x{a}" ~
-         "            "
-         sch:report [
-           test = "count(tei:height)> 1"
-           "\x{a}" ~
-           "The element "
-           sch:name [ ]
-           " may appear once only\x{a}" ~
-           "      "
-         ]
-         "\x{a}" ~
-         "         "
-       ]
-       "\x{a}" ~
-       "      "
-     ]
-  >> sch:pattern [
-       id = "dimensions-duplicateDim-constraint-7"
-       "\x{a}" ~
-       "         "
-       sch:rule [
-         context = "tei:dimensions"
-         "\x{a}" ~
-         "            "
-         sch:report [
-           test = "count(tei:depth)> 1"
-           "\x{a}" ~
-           "The element "
-           sch:name [ ]
-           " may appear once only\x{a}" ~
-           "      "
-         ]
-         "\x{a}" ~
-         "         "
-       ]
-       "\x{a}" ~
-       "      "
-     ]
-dimensions.localattributes =
-  att.global.attributes,
-  att.dimensions.attributes,
-  
-  ## indicates which aspect of the object is being measured.
-  ## Sample values include: 1] leaves; 2] ruled; 3] pricked; 4] written; 5] miniatures; 6] binding; 7] box
-  attribute type { data.enumerated }?,
-  empty
-explicit =
-  
-  ## contains the explicit of a manuscript item, that is, the closing words of the text proper, exclusive of any rubric or colophon which might follow it. []
-  element explicit { explicit.content, explicit.localattributes }
-explicit.content = macro.phraseSeq
-explicit.localattributes =
-  att.global.attributes,
-  att.typed.attributes,
-  att.msExcerpt.attributes,
-  empty
-filiation =
-  
-  ## contains information concerning the manuscript's filiation, i.e. its relationship to other surviving manuscripts of the same text, its protographs, antigraphs and apographs. []
-  element filiation { filiation.content, filiation.localattributes }
-filiation.content = macro.specialPara
-filiation.localattributes =
-  att.global.attributes, att.typed.attributes, empty
-finalRubric =
-  
-  ## contains the string of words that denotes the end of a text division, often with an assertion as to its author and title, usually set off from the text itself by red ink, by a different size or type of script, or by some other such visual device. []
-  element finalRubric {
-    finalRubric.content, finalRubric.localattributes
-  }
-finalRubric.content = macro.phraseSeq
-finalRubric.localattributes =
-  att.global.attributes, att.typed.attributes, empty
-foliation =
-  
-  ## describes the numbering system or systems used to count the leaves or pages in a codex. []
-  element foliation { foliation.content, foliation.localattributes }
-foliation.content = macro.specialPara
-foliation.localattributes = att.global.attributes, empty
-handDesc =
-  
-  ## (description of hands) contains a description of all the different kinds of writing used in a manuscript. []
-  element handDesc { handDesc.content, handDesc.localattributes }
-handDesc.content = model.pLike+ | (summary?, handNote+)
-handDesc.localattributes =
-  att.global.attributes,
-  
-  ## specifies the number of distinct hands identified within the manuscript
-  attribute hands { data.count }?,
-  empty
-height =
-  
-  ## contains a measurement measured along the axis at right angles to the bottom of the written surface, i.e. parallel to the spine for a codex or book. []
-  element height { height.content, height.localattributes }
-height.content = macro.xtext
-height.localattributes =
-  att.global.attributes, att.dimensions.attributes, empty
-heraldry =
-  
-  ## contains a heraldic formula or phrase, typically found as part of a blazon, coat of arms, etc.  []
-  element heraldry { heraldry.content, heraldry.localattributes }
-heraldry.content = macro.phraseSeq
-heraldry.localattributes = att.global.attributes, empty
-history =
-  
-  ## groups elements describing the full history of a manuscript or manuscript part. []
-  element history { history.content, history.localattributes }
-history.content =
-  model.pLike+ | (summary?, origin?, provenance*, acquisition?)
-history.localattributes = att.global.attributes, empty
-incipit =
-  
-  ## contains the incipit of a manuscript item, that is the opening words of the text proper, exclusive of any rubric which might precede it, of sufficient length to identify the work uniquely; such incipits were, in former times, frequently used a means of reference to a work, in place of a title. []
-  element incipit { incipit.content, incipit.localattributes }
-incipit.content = macro.phraseSeq
-incipit.localattributes =
-  att.global.attributes,
-  att.typed.attributes,
-  att.msExcerpt.attributes,
-  empty
-institution =
-  
-  ## contains the name of an organization such as a university or library, with which a manuscript is identified, generally its holding institution. []
-  element institution {
-    institution.content, institution.localattributes
-  }
-institution.content = macro.xtext
-institution.localattributes =
-  att.global.attributes, att.naming.attributes, empty
-layout =
-  
-  ## describes how text is laid out on the page, including information about any ruling, pricking, or other evidence of page-preparation techniques. []
-  element layout { layout.content, layout.localattributes }
-layout.content = macro.specialPara
-layout.localattributes =
-  att.global.attributes,
-  
-  ## specifies the number of columns per page
-  attribute columns {
-    list { data.count, data.count? }
-  }?,
-  
-  ## specifies the number of ruled lines per column
-  attribute ruledLines {
-    list { data.count, data.count? }
-  }?,
-  
-  ## specifies the number of written lines per column
-  attribute writtenLines {
-    list { data.count, data.count? }
-  }?,
-  empty
-layoutDesc =
-  
-  ## (layout description) collects the set of layout descriptions applicable to a manuscript. []
-  element layoutDesc { layoutDesc.content, layoutDesc.localattributes }
-layoutDesc.content = model.pLike+ | (summary?, layout+)
-layoutDesc.localattributes = att.global.attributes, empty
-locus =
-  
-  ## defines a location within a manuscript or manuscript part, usually as a (possibly discontinuous) sequence of folio references. []
-  element locus { locus.content, locus.localattributes }
-locus.content = macro.xtext
-locus.localattributes =
-  att.global.attributes,
-  att.pointing.attributes,
-  
-  ## identifies the foliation scheme in terms of which the location is being specified by pointing to some foliation element defining it, or to some other equivalent resource.
-  attribute scheme { data.pointer }?,
-  
-  ## specifies the starting point of the location in a normalized form, typically a page number.
-  attribute from { data.word }?,
-  
-  ## specifies the end-point of the location in a normalized form, typically as a page number.
-  attribute to { data.word }?,
-  empty
-locusGrp =
-  
-  ## groups a number of locations which together form a distinct but discontinuous item within a manuscript or manuscript part, according to a specific foliation. []
-  element locusGrp { locusGrp.content, locusGrp.localattributes }
-locusGrp.content = locus+
-locusGrp.localattributes =
-  att.global.attributes,
-  
-  ## identifies the foliation scheme in terms of which all the locations contained by the group are specified by pointing to some foliation element defining it, or to some other equivalent resource.
-  attribute scheme { data.pointer }?,
-  empty
-material =
-  
-  ## contains a word or phrase describing the material of which the object being described is composed. []
-  element material { material.content, material.localattributes }
-material.content = macro.phraseSeq
-material.localattributes =
-  att.global.attributes, att.canonical.attributes, empty
-msContents =
-  
-  ## (manuscript contents) describes the intellectual content of a manuscript or manuscript part, either as a series of paragraphs or as a series of structured manuscript items. []
-  element msContents { msContents.content, msContents.localattributes }
-msContents.content =
-  model.pLike+
-  | (summary?, textLang?, titlePage?, (msItem | msItemStruct)*)
-msContents.localattributes =
-  att.global.attributes,
-  att.msExcerpt.attributes,
-  
-  ## identifies the text types or classifications applicable to this object by pointing to other elements or resources defining the classification concerned. 
-  attribute class {
-    list { data.pointer+ }
-  }?,
-  empty
-msDesc =
-  
-  ## (manuscript description) contains a description of a single identifiable manuscript or other text-bearing object. []
-  element msDesc { msDesc.content, msDesc.localattributes }
-msDesc.content =
-  msIdentifier,
-  model.headLike*,
-  (model.pLike+
-   | (msContents?, physDesc?, history?, additional?, msPart*))
-msDesc.localattributes =
-  att.global.attributes,
-  att.sortable.attributes,
-  att.typed.attributes,
-  att.declaring.attributes,
-  empty
-msIdentifier =
-  
-  ## (manuscript identifier) contains the information required to identify the manuscript being described. []
-  element msIdentifier {
-    msIdentifier.content, msIdentifier.localattributes
-  }
-msIdentifier.content =
-  ((model.placeNamePart_sequenceOptional,
-    institution?,
-    repository?,
-    collection*,
-    idno?),
-   (msName | altIdentifier)*)
-  >> sch:pattern [
-       id = "msIdentifier-msId_minimal-constraint-8"
-       "\x{a}" ~
-       "         "
-       sch:rule [
-         context = "tei:msIdentifier"
-         "\x{a}" ~
-         "            "
-         sch:report [
-           test =
-             "not(parent::tei:msPart) and       (local-name(*[1])='idno' or       local-name(*[1])='altIdentifier' or       normalize-space(.)='')"
-           "An msIdentifier must contain either a repository or location of some type, or a manuscript name"
-         ]
-         "\x{a}" ~
-         "         "
-       ]
-       "\x{a}" ~
-       "      "
-     ]
-msIdentifier.localattributes = att.global.attributes, empty
-msItem =
-  
-  ## (manuscript item) describes an individual work or item within the intellectual content of a manuscript or manuscript part. []
-  element msItem { msItem.content, msItem.localattributes }
-msItem.content =
-  (locus | locusGrp)*,
-  (model.pLike+
-   | (model.titlepagePart | model.msItemPart | model.global)+)
-msItem.localattributes =
-  att.global.attributes,
-  att.msExcerpt.attributes,
-  
-  ## identifies the text types or classifications applicable to this item by pointing to other elements or resources defining the classification concerned. 
-  attribute class {
-    list { data.pointer+ }
-  }?,
-  empty
-msItemStruct =
-  
-  ## (structured manuscript item) contains a structured description for an individual work or item within the intellectual content of a manuscript or manuscript part. []
-  element msItemStruct {
-    msItemStruct.content, msItemStruct.localattributes
-  }
-msItemStruct.content =
-  (locus | locusGrp)?,
-  (model.pLike+
-   | (author*,
-      respStmt*,
-      title*,
-      rubric?,
-      incipit?,
-      msItemStruct*,
-      explicit?,
-      finalRubric?,
-      colophon*,
-      decoNote*,
-      listBibl*,
-      (bibl | biblStruct)*,
-      model.noteLike*,
-      textLang?))
-msItemStruct.localattributes =
-  att.global.attributes,
-  att.msExcerpt.attributes,
-  
-  ## identifies the text types or classifications applicable to this item by pointing to other elements or resources defining the classification concerned.
-  attribute class {
-    list { data.pointer+ }
-  }?,
-  empty
-msName =
-  
-  ## (alternative name) contains any form of unstructured alternative name used for a manuscript, such as an ocellus nominum, or nickname. []
-  element msName { msName.content, msName.localattributes }
-msName.content = macro.xtext
-msName.localattributes =
-  att.global.attributes, att.typed.attributes, empty
-msPart =
-  
-  ## (manuscript part) contains information about an originally distinct manuscript or part of a manuscript, now forming part of a composite manuscript. []
-  element msPart { msPart.content, msPart.localattributes }
-msPart.content =
-  ((altIdentifier | msIdentifier),
-   model.headLike*,
-   (model.pLike+
-    | (msContents?, physDesc?, history?, additional?, msPart*)))
-  >> sch:pattern [
-       id = "msPart-deprecate-altIdentifier-child-constraint-9"
-       "\x{a}" ~
-       "         "
-       sch:rule [
-         context = "tei:msPart"
-         "\x{a}" ~
-         "            "
-         sch:report [
-           test = "child::tei:altIdentifier"
-           role = "nonfatal"
-           "WARNING: use of deprecated method — the use of the altIdentifier element as a direct child of the msPart element will be removed from the TEI on 2016-09-09"
-         ]
-         "\x{a}" ~
-         "         "
-       ]
-       "\x{a}" ~
-       "      "
-     ]
-msPart.localattributes = att.global.attributes, empty
-musicNotation =
-  
-  ## contains description of type of musical notation. []
-  element musicNotation {
-    musicNotation.content, musicNotation.localattributes
-  }
-musicNotation.content = macro.specialPara
-musicNotation.localattributes = att.global.attributes, empty
-objectDesc =
-  
-  ## contains a description of the physical components making up the object which is being described. []
-  element objectDesc { objectDesc.content, objectDesc.localattributes }
-objectDesc.content = model.pLike+ | (supportDesc?, layoutDesc?)
-objectDesc.localattributes =
-  att.global.attributes,
-  
-  ## a short project-specific name identifying the physical form of the carrier, for example as a codex, roll, fragment, partial leaf, cutting etc.
-  attribute form { data.enumerated }?,
-  empty
-objectType =
-  
-  ## contains a word or phrase describing the type of object being referred to. []
-  element objectType { objectType.content, objectType.localattributes }
-objectType.content = macro.phraseSeq
-objectType.localattributes =
-  att.global.attributes, att.canonical.attributes, empty
-origDate =
-  
-  ## (origin date) contains any form of date, used to identify the date of origin for a manuscript or manuscript part. []
-  element origDate { origDate.content, origDate.localattributes }
-origDate.content = (text | model.gLike | model.phrase | model.global)*
-origDate.localattributes =
-  att.global.attributes,
-  att.datable.attributes,
-  att.editLike.attributes,
-  att.typed.attributes,
-  empty
-origPlace =
-  
-  ## (origin place) contains any form of place name, used to identify the place of origin for a manuscript or manuscript part. []
-  element origPlace { origPlace.content, origPlace.localattributes }
-origPlace.content = macro.phraseSeq
-origPlace.localattributes =
-  att.global.attributes,
-  att.naming.attributes,
-  att.datable.attributes,
-  att.editLike.attributes,
-  att.typed.attributes,
-  empty
-origin =
-  
-  ## contains any descriptive or other information concerning the origin of a manuscript or manuscript part. []
-  element origin { origin.content, origin.localattributes }
-origin.content = macro.specialPara
-origin.localattributes =
-  att.global.attributes,
-  att.editLike.attributes,
-  att.datable.attributes,
-  empty
-physDesc =
-  
-  ## (physical description) contains a full physical description of a manuscript or manuscript part, optionally subdivided using more specialized elements from the model.physDescPart class. []
-  element physDesc { physDesc.content, physDesc.localattributes }
-physDesc.content = model.pLike*, model.physDescPart_sequenceOptional
-physDesc.localattributes = att.global.attributes, empty
-provenance =
-  
-  ## contains any descriptive or other information concerning a single identifiable episode during the history of a manuscript or manuscript part, after its creation but before its acquisition. []
-  element provenance { provenance.content, provenance.localattributes }
-provenance.content = macro.specialPara
-provenance.localattributes =
-  att.global.attributes,
-  att.datable.attributes,
-  att.typed.attributes,
-  att.responsibility.attributes,
-  empty
-recordHist =
-  
-  ## (recorded history) provides information about the source and revision status of the parent manuscript description itself. []
-  element recordHist { recordHist.content, recordHist.localattributes }
-recordHist.content = model.pLike+ | (source, change*)
-recordHist.localattributes = att.global.attributes, empty
-repository =
-  
-  ## contains the name of a repository within which manuscripts are stored, possibly forming part of an institution. []
-  element repository { repository.content, repository.localattributes }
-repository.content = macro.xtext
-repository.localattributes =
-  att.global.attributes, att.naming.attributes, empty
-rubric =
-  
-  ## contains the text of any rubric or heading attached to a particular manuscript item, that is, a string of words through which a manuscript signals the beginning of a text division, often with an assertion as to its author and title, which is in some way set off from the text itself, usually in red ink, or by use of different size or type of script, or some other such visual device. []
-  element rubric { rubric.content, rubric.localattributes }
-rubric.content = macro.phraseSeq
-rubric.localattributes =
-  att.global.attributes, att.typed.attributes, empty
-scriptDesc =
-  
-  ## contains a description of the scripts used in a manuscript or similar source. []
-  element scriptDesc { scriptDesc.content, scriptDesc.localattributes }
-scriptDesc.content = model.pLike+ | (summary?, scriptNote+)
-scriptDesc.localattributes = att.global.attributes, empty
-seal =
-  
-  ## contains a description of one seal or similar attachment applied to a manuscript. []
-  element seal { seal.content, seal.localattributes }
-seal.content = (model.pLike | decoNote)+
-seal.localattributes =
-  att.global.attributes,
-  att.typed.attributes,
-  att.datable.attributes,
-  
-  ## specifies whether or not the seal is contemporary with the item to which it is affixed
-  attribute contemporary { data.xTruthValue }?,
-  empty
-sealDesc =
-  
-  ## (seal description) describes the seals or other external items attached to a manuscript, either as a series of paragraphs or as a series of distinct seal elements, possibly with additional decoNotes. []
-  element sealDesc { sealDesc.content, sealDesc.localattributes }
-sealDesc.content =
-  model.pLike+
-  | (summary?, (decoNote | seal | condition)+)
-sealDesc.localattributes = att.global.attributes, empty
-secFol =
-  
-  ## (second folio) marks the word or words taken from a fixed point in a codex (typically the beginning of the second leaf) in order to provide a unique identifier for it.  []
-  element secFol { secFol.content, secFol.localattributes }
-secFol.content = macro.phraseSeq
-secFol.localattributes = att.global.attributes, empty
-signatures =
-  
-  ## contains discussion of the leaf or quire signatures found within a codex. []
-  element signatures { signatures.content, signatures.localattributes }
-signatures.content = macro.phraseSeq
-signatures.localattributes = att.global.attributes, empty
-source =
-  
-  ## describes the original source for the information contained with a manuscript description. []
-  element source { source.content, source.localattributes }
-source.content = macro.specialPara
-source.localattributes = att.global.attributes, empty
-stamp =
-  
-  ## contains a word or phrase describing a stamp or similar device. []
-  element stamp { stamp.content, stamp.localattributes }
-stamp.content = macro.phraseSeq
-stamp.localattributes =
-  att.global.attributes,
-  att.typed.attributes,
-  att.datable.attributes,
-  empty
-summary =
-  
-  ## contains an overview of the available information concerning some aspect of an item (for example, its intellectual content, history, layout, typography etc.) as a complement or alternative to the more detailed information carried by more specific elements. []
-  element summary { summary.content, summary.localattributes }
-summary.content = macro.specialPara
-summary.localattributes = att.global.attributes, empty
-support =
-  
-  ## contains a description of the materials etc. which make up the physical support for the written part of a manuscript. []
-  element support { support.content, support.localattributes }
-support.content = macro.specialPara
-support.localattributes = att.global.attributes, empty
-supportDesc =
-  
-  ## (support description) groups elements describing the physical support for the written part of a manuscript. []
-  element supportDesc {
-    supportDesc.content, supportDesc.localattributes
-  }
-supportDesc.content =
-  model.pLike+ | (support?, extent?, foliation*, collation?, condition?)
-supportDesc.localattributes =
-  att.global.attributes,
-  
-  ## a short project-defined name for the material composing the majority of the support
-  ## Suggested values include: 1] paper; 2] parch(parchment) ; 3] mixed
-  attribute material {
-    
-    ##
-    "paper"
-    | 
-      ## (parchment) 
-      "parch"
-    | 
-      ##
-      "mixed"
-    | xsd:Name
-  }?,
-  empty
-surrogates =
-  
-  ## contains information about any representations of the manuscript being described which may exist in the holding institution or elsewhere. []
-  element surrogates { surrogates.content, surrogates.localattributes }
-surrogates.content = macro.specialPara
-surrogates.localattributes = att.global.attributes, empty
-typeDesc =
-  
-  ## contains a description of the typefaces or other aspects of the printing of an incunable or other printed source. []
-  element typeDesc { typeDesc.content, typeDesc.localattributes }
-typeDesc.content = model.pLike+ | (summary?, typeNote+)
-typeDesc.localattributes = att.global.attributes, empty
-watermark =
-  
-  ## contains a word or phrase describing a watermark or similar device. []
-  element watermark { watermark.content, watermark.localattributes }
-watermark.content = macro.phraseSeq
-watermark.localattributes = att.global.attributes, empty
-width =
-  
-  ## contains a measurement measured along the axis parallel to the bottom of the written surface, i.e. perpendicular to the spine of a book or codex. []
-  element width { width.content, width.localattributes }
-width.content = macro.xtext
-width.localattributes =
-  att.global.attributes, att.dimensions.attributes, empty
-# 3. macros
diff --git a/resources/schema/tei/namesdates.rnc b/resources/schema/tei/namesdates.rnc
deleted file mode 100644
index 7df7f1048e7cf5784e4c1320e0d5aed0db8bf7de..0000000000000000000000000000000000000000
--- a/resources/schema/tei/namesdates.rnc
+++ /dev/null
@@ -1,869 +0,0 @@
-namespace ns1 = "http://purl.oclc.org/dsdl/schematron"
-namespace rng = "http://relaxng.org/ns/structure/1.0"
-
-# Schema generated 2014-09-16T18:57:47Z
-# Edition: Version 2.7.0. Last updated on
-#	16th September 2014, revision 13036
-# This material is dual-licensed.
-# [http://creativecommons.org/licenses/by/3.0/] Distributed under a Creative Commons Attribution 3.0 Unported License.  [http://www.opensource.org/licenses/BSD-2-Clause] Copyright 2014 TEI Consortium. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. This software is provided by the copyright holders and contributors "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the copyright holder or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage. TEI material can be licensed differently depending on the use you intend to make of it. Hence it is made available under both the CC+BY and BSD-2 licences. The CC+BY licence is generally appropriate for usages which treat TEI content as data or documentation. The BSD-2 licence is generally appropriate for usage of TEI content in a software environment. For further information or clarification, please contact the TEI Consortium. Names and dates
-
-# Definitions from module namesdates
-
-# Set global predeclared macros
-
-# Set predeclared macros
-
-# 0. predeclared macros
-
-# 1. classes
-att.datable.custom.attributes =
-  att.datable.custom.attribute.when-custom,
-  att.datable.custom.attribute.notBefore-custom,
-  att.datable.custom.attribute.notAfter-custom,
-  att.datable.custom.attribute.from-custom,
-  att.datable.custom.attribute.to-custom,
-  att.datable.custom.attribute.datingPoint,
-  att.datable.custom.attribute.datingMethod
-att.datable.custom.attribute.when-custom =
-  
-  ## supplies the value of a date or time in some standard form.
-  attribute when-custom {
-    list { data.word+ }
-  }?
-att.datable.custom.attribute.notBefore-custom =
-  
-  ## specifies the earliest possible date for the event in some custom standard form.
-  attribute notBefore-custom {
-    list { data.word+ }
-  }?
-att.datable.custom.attribute.notAfter-custom =
-  
-  ## specifies the latest possible date for the event in some custom standard form.
-  attribute notAfter-custom {
-    list { data.word+ }
-  }?
-att.datable.custom.attribute.from-custom =
-  
-  ## indicates the starting point of the period in some standard form.
-  attribute from-custom {
-    list { data.word+ }
-  }?
-att.datable.custom.attribute.to-custom =
-  
-  ## indicates the ending point of the period in some standard form.
-  attribute to-custom {
-    list { data.word+ }
-  }?
-att.datable.custom.attribute.datingPoint =
-  
-  ## supplies a pointer to some location defining a named point in time with reference to which the datable item is understood to have occurred
-  attribute datingPoint { data.pointer }?
-att.datable.custom.attribute.datingMethod =
-  
-  ## supplies a pointer to a calendar element or other means of interpreting the values of the custom dating attributes.
-  attribute datingMethod { data.pointer }?
-model.persNamePart =
-  surname | forename | genName | nameLink | addName | roleName
-model.persNamePart_alternation =
-  surname | forename | genName | nameLink | addName | roleName
-model.persNamePart_sequence =
-  surname, forename, genName, nameLink, addName, roleName
-model.persNamePart_sequenceOptional =
-  surname?, forename?, genName?, nameLink?, addName?, roleName?
-model.persNamePart_sequenceOptionalRepeatable =
-  surname*, forename*, genName*, nameLink*, addName*, roleName*
-model.persNamePart_sequenceRepeatable =
-  surname+, forename+, genName+, nameLink+, addName+, roleName+
-att.datable.iso.attributes =
-  att.datable.iso.attribute.when-iso,
-  att.datable.iso.attribute.notBefore-iso,
-  att.datable.iso.attribute.notAfter-iso,
-  att.datable.iso.attribute.from-iso,
-  att.datable.iso.attribute.to-iso
-att.datable.iso.attribute.when-iso =
-  
-  ## supplies the value of a date or time in a standard form.
-  attribute when-iso { data.temporal.iso }?
-att.datable.iso.attribute.notBefore-iso =
-  
-  ## specifies the earliest possible date for the event in standard form, e.g. yyyy-mm-dd.
-  attribute notBefore-iso { data.temporal.iso }?
-att.datable.iso.attribute.notAfter-iso =
-  
-  ## specifies the latest possible date for the event in standard form, e.g. yyyy-mm-dd.
-  attribute notAfter-iso { data.temporal.iso }?
-att.datable.iso.attribute.from-iso =
-  
-  ## indicates the starting point of the period in standard form.
-  attribute from-iso { data.temporal.iso }?
-att.datable.iso.attribute.to-iso =
-  
-  ## indicates the ending point of the period in standard form.
-  attribute to-iso { data.temporal.iso }?
-# 2. elements
-addName =
-  
-  ## (additional name) contains an additional name component, such as a nickname, epithet, or alias, or any other descriptive phrase used within a personal name. []
-  element addName { addName.content, addName.localattributes }
-addName.content = macro.phraseSeq
-addName.localattributes =
-  att.global.attributes,
-  att.personal.attributes,
-  att.typed.attributes,
-  empty
-affiliation =
-  
-  ## contains an informal description of a person's present or past affiliation with some organization, for example an employer or sponsor. []
-  element affiliation {
-    affiliation.content, affiliation.localattributes
-  }
-affiliation.content = macro.phraseSeq
-affiliation.localattributes =
-  att.global.attributes,
-  att.editLike.attributes,
-  att.datable.attributes,
-  att.naming.attributes,
-  empty
-age =
-  
-  ## specifies the age of a person. []
-  element age { age.content, age.localattributes }
-age.content = macro.phraseSeq.limited
-age.localattributes =
-  att.global.attributes,
-  att.editLike.attributes,
-  att.datable.attributes,
-  
-  ## supplies a numeric code representing the age or age group
-  attribute value { data.count }?,
-  empty
-birth =
-  
-  ## contains information about a person's birth, such as its date and place. []
-  element birth { birth.content, birth.localattributes }
-birth.content = macro.phraseSeq
-birth.localattributes =
-  att.global.attributes,
-  att.editLike.attributes,
-  att.datable.attributes,
-  att.naming.attributes,
-  empty
-bloc =
-  
-  ## contains the name of a geo-political unit consisting of two or more nation states or countries. []
-  element bloc { bloc.content, bloc.localattributes }
-bloc.content = macro.phraseSeq
-bloc.localattributes =
-  att.global.attributes,
-  att.naming.attributes,
-  att.typed.attributes,
-  att.datable.attributes,
-  empty
-climate =
-  
-  ## contains information about the physical climate of a place. []
-  element climate { climate.content, climate.localattributes }
-climate.content =
-  model.headLike*,
-  (model.pLike+ | model.labelLike+),
-  (model.noteLike | model.biblLike)*,
-  climate*
-climate.localattributes =
-  att.global.attributes,
-  att.datable.attributes,
-  att.editLike.attributes,
-  att.naming.attributes,
-  att.typed.attributes,
-  empty
-country =
-  
-  ## contains the name of a geo-political unit, such as a nation, country, colony, or commonwealth, larger than or administratively superior to a region and smaller than a bloc. []
-  element country { country.content, country.localattributes }
-country.content = macro.phraseSeq
-country.localattributes =
-  att.global.attributes,
-  att.naming.attributes,
-  att.typed.attributes,
-  att.datable.attributes,
-  empty
-death =
-  
-  ## contains information about a person's death, such as its date and place. []
-  element death { death.content, death.localattributes }
-death.content = macro.phraseSeq
-death.localattributes =
-  att.global.attributes,
-  att.editLike.attributes,
-  att.datable.attributes,
-  att.naming.attributes,
-  empty
-district =
-  
-  ## contains the name of any kind of subdivision of a settlement, such as a parish, ward, or other administrative or geographic unit. []
-  element district { district.content, district.localattributes }
-district.content = macro.phraseSeq
-district.localattributes =
-  att.global.attributes,
-  att.naming.attributes,
-  att.typed.attributes,
-  att.datable.attributes,
-  empty
-education =
-  
-  ## contains a description of the educational experience of a person. []
-  element education { education.content, education.localattributes }
-education.content = macro.phraseSeq
-education.localattributes =
-  att.global.attributes,
-  att.editLike.attributes,
-  att.datable.attributes,
-  att.naming.attributes,
-  empty
-event =
-  
-  ## contains data relating to any kind of significant event associated with a person, place, or organization. []
-  element event { event.content, event.localattributes }
-event.content =
-  model.headLike*,
-  (model.pLike+ | model.labelLike+),
-  (model.noteLike | model.biblLike | linkGrp | link)*,
-  event*
-event.localattributes =
-  att.global.attributes,
-  att.datable.attributes,
-  att.editLike.attributes,
-  att.typed.attributes,
-  att.naming.attributes,
-  att.sortable.attributes,
-  
-  ## indicates the location of an event by pointing to a place element
-  attribute where { data.pointer }?,
-  empty
-faith =
-  
-  ## specifies the faith, religion, or belief set of a person. []
-  element faith { faith.content, faith.localattributes }
-faith.content = macro.phraseSeq
-faith.localattributes =
-  att.global.attributes,
-  att.editLike.attributes,
-  att.datable.attributes,
-  att.canonical.attributes,
-  empty
-floruit =
-  
-  ## contains information about a person's period of activity. []
-  element floruit { floruit.content, floruit.localattributes }
-floruit.content = macro.phraseSeq
-floruit.localattributes =
-  att.global.attributes,
-  att.datable.attributes,
-  att.editLike.attributes,
-  empty
-forename =
-  
-  ## contains a forename, given or baptismal name. []
-  element forename { forename.content, forename.localattributes }
-forename.content = macro.phraseSeq
-forename.localattributes =
-  att.global.attributes,
-  att.personal.attributes,
-  att.typed.attributes,
-  empty
-genName =
-  
-  ## (generational name component) contains a name component used to distinguish otherwise similar names on the basis of the relative ages or generations of the persons named. []
-  element genName { genName.content, genName.localattributes }
-genName.content = macro.phraseSeq
-genName.localattributes =
-  att.global.attributes,
-  att.personal.attributes,
-  att.typed.attributes,
-  empty
-geo =
-  
-  ## (geographical coordinates) contains any expression of a set of geographic coordinates, representing a point, line, or area on the surface of the earth in some notation. []
-  element geo { geo.content, geo.localattributes }
-geo.content = text
-geo.localattributes =
-  att.global.attributes, att.declaring.attributes, empty
-geogFeat =
-  
-  ## (geographical feature name) contains a common noun identifying some geographical feature contained within a geographic name, such as valley, mount, etc. []
-  element geogFeat { geogFeat.content, geogFeat.localattributes }
-geogFeat.content = macro.phraseSeq
-geogFeat.localattributes =
-  att.datable.attributes,
-  att.editLike.attributes,
-  att.global.attributes,
-  att.naming.attributes,
-  att.typed.attributes,
-  empty
-geogName =
-  
-  ## (geographical name) identifies a name associated with some geographical feature such as Windrush Valley or Mount Sinai. []
-  element geogName { geogName.content, geogName.localattributes }
-geogName.content = macro.phraseSeq
-geogName.localattributes =
-  att.datable.attributes,
-  att.editLike.attributes,
-  att.global.attributes,
-  att.naming.attributes,
-  att.typed.attributes,
-  empty
-langKnowledge =
-  
-  ## (language knowledge) summarizes the state of a person's linguistic knowledge, either as prose or by a list of langKnown elements. []
-  element langKnowledge {
-    langKnowledge.content, langKnowledge.localattributes
-  }
-langKnowledge.content = model.pLike | langKnown+
-langKnowledge.localattributes =
-  att.global.attributes,
-  att.datable.attributes,
-  att.editLike.attributes,
-  
-  ## supplies one or more valid language tags for the languages specified
-  attribute tags {
-    list { data.language+ }
-  }?,
-  empty
-langKnown =
-  
-  ## (language known) summarizes the state of a person's linguistic competence, i.e., knowledge of a single language. []
-  element langKnown { langKnown.content, langKnown.localattributes }
-langKnown.content = macro.phraseSeq.limited
-langKnown.localattributes =
-  att.global.attributes,
-  att.datable.attributes,
-  att.editLike.attributes,
-  
-  ## supplies a valid language tag for the language concerned.
-  attribute tag { data.language },
-  
-  ## a code indicating the person's level of knowledge for this language
-  attribute level { data.word }?,
-  empty
-listEvent =
-  
-  ## (list of events) contains a list of descriptions, each of which provides information about an identifiable event. []
-  element listEvent { listEvent.content, listEvent.localattributes }
-listEvent.content =
-  model.headLike*, (event | listEvent)+, (relation | listRelation)*
-listEvent.localattributes =
-  att.global.attributes,
-  att.typed.attributes,
-  att.declarable.attributes,
-  att.sortable.attributes,
-  empty
-listNym =
-  
-  ## (list of canonical names) contains a list of nyms, that is, standardized names for any thing. []
-  element listNym { listNym.content, listNym.localattributes }
-listNym.content =
-  model.headLike*, (nym | listNym)+, (relation | listRelation)*
-listNym.localattributes =
-  att.global.attributes,
-  att.typed.attributes,
-  att.declarable.attributes,
-  att.sortable.attributes,
-  empty
-listOrg =
-  
-  ## (list of organizations) contains a list of elements, each of which provides information about an identifiable organization. []
-  element listOrg { listOrg.content, listOrg.localattributes }
-listOrg.content =
-  model.headLike*, (org | listOrg)+, (relation | listRelation)*
-listOrg.localattributes =
-  att.global.attributes,
-  att.typed.attributes,
-  att.declarable.attributes,
-  att.sortable.attributes,
-  empty
-listPerson =
-  
-  ## (list of persons) contains a list of descriptions, each of which provides information about an identifiable person or a group of people, for example the participants in a language interaction, or the people referred to in a historical source. [   ]
-  element listPerson { listPerson.content, listPerson.localattributes }
-listPerson.content =
-  model.headLike*,
-  (model.personLike | listPerson)+,
-  (relation | listRelation)*
-listPerson.localattributes =
-  att.global.attributes,
-  att.typed.attributes,
-  att.declarable.attributes,
-  att.sortable.attributes,
-  empty
-listPlace =
-  
-  ## (list of places) contains a list of places, optionally followed by a list of relationships (other than containment) defined amongst them. [ ]
-  element listPlace { listPlace.content, listPlace.localattributes }
-listPlace.content =
-  model.headLike*,
-  (model.placeLike | listPlace)+,
-  (relation | listRelation)*
-listPlace.localattributes =
-  att.global.attributes,
-  att.typed.attributes,
-  att.declarable.attributes,
-  att.sortable.attributes,
-  empty
-listRelation =
-  
-  ## provides information about relationships identified amongst people, places, and organizations, either informally as prose or as formally expressed relation links. []
-  element listRelation {
-    listRelation.content, listRelation.localattributes
-  }
-listRelation.content =
-  model.headLike*,
-  (model.pLike | (relation | listRelation)+)
-listRelation.localattributes =
-  att.global.attributes,
-  att.typed.attributes,
-  att.sortable.attributes,
-  empty
-location =
-  
-  ## defines the location of a place as a set of geographical coordinates, in terms of other named geo-political entities, or as an address. []
-  element location { location.content, location.localattributes }
-location.content =
-  (model.labelLike
-   | model.placeNamePart
-   | model.offsetLike
-   | model.measureLike
-   | model.addressLike
-   | model.noteLike
-   | model.biblLike)*
-location.localattributes =
-  att.global.attributes,
-  att.typed.attributes,
-  att.datable.attributes,
-  att.editLike.attributes,
-  empty
-nameLink =
-  
-  ## (name link) contains a connecting phrase or link used within a name but not regarded as part of it, such as van der or of. []
-  element nameLink { nameLink.content, nameLink.localattributes }
-nameLink.content = macro.phraseSeq
-nameLink.localattributes =
-  att.global.attributes, att.typed.attributes, empty
-nationality =
-  
-  ## contains an informal description of a person's present or past nationality or citizenship. []
-  element nationality {
-    nationality.content, nationality.localattributes
-  }
-nationality.content = macro.phraseSeq
-nationality.localattributes =
-  att.global.attributes,
-  att.datable.attributes,
-  att.editLike.attributes,
-  att.naming.attributes,
-  empty
-nym =
-  
-  ## (canonical name) contains the definition for a canonical name or name component of any kind. []
-  element nym { nym.content, nym.localattributes }
-nym.content = model.entryPart*, model.pLike*, nym*
-nym.localattributes =
-  att.global.attributes,
-  att.typed.attributes,
-  att.sortable.attributes,
-  
-  ## points to constituent nyms
-  attribute parts {
-    list { data.pointer+ }
-  }?,
-  empty
-occupation =
-  
-  ## contains an informal description of a person's trade, profession or occupation. []
-  element occupation { occupation.content, occupation.localattributes }
-occupation.content = macro.phraseSeq
-occupation.localattributes =
-  att.global.attributes,
-  att.datable.attributes,
-  att.editLike.attributes,
-  att.naming.attributes,
-  
-  ## indicates the classification system or taxonomy in use, for example by supplying the identifier of a taxonomy element, or pointing to some other resource.
-  attribute scheme { data.pointer }?,
-  
-  ## identifies an occupation code defined within the classification system or taxonomy defined by the scheme attribute.
-  attribute code { data.pointer }?,
-  empty
-offset =
-  
-  ## marks that part of a relative temporal or spatial expression which indicates the direction of the offset between the two place names, dates, or times involved in the expression. []
-  element offset { offset.content, offset.localattributes }
-offset.content = macro.phraseSeq
-offset.localattributes =
-  att.datable.attributes,
-  att.editLike.attributes,
-  att.global.attributes,
-  att.naming.attributes,
-  att.typed.attributes,
-  empty
-org =
-  
-  ## (organization) provides information about an identifiable organization such as a business, a tribe, or any other grouping of people. []
-  element org { org.content, org.localattributes }
-org.content =
-  model.headLike*,
-  (model.pLike*
-   | (model.labelLike
-      | model.nameLike
-      | model.placeLike
-      | model.orgPart)*),
-  (model.noteLike | model.biblLike | linkGrp | link)*,
-  model.personLike*
-org.localattributes =
-  att.global.attributes,
-  att.typed.attributes,
-  att.editLike.attributes,
-  att.sortable.attributes,
-  
-  ## specifies a primary role or classification for the organization.
-  attribute role {
-    list { data.word+ }
-  }?,
-  empty
-orgName =
-  
-  ## (organization name) contains an organizational name. []
-  element orgName { orgName.content, orgName.localattributes }
-orgName.content = macro.phraseSeq
-orgName.localattributes =
-  att.global.attributes,
-  att.datable.attributes,
-  att.editLike.attributes,
-  att.personal.attributes,
-  att.typed.attributes,
-  empty
-persName =
-  
-  ## (personal name) contains a proper noun or proper-noun phrase referring to a person, possibly including one or more of the person's forenames, surnames, honorifics, added names, etc. []
-  element persName { persName.content, persName.localattributes }
-persName.content = macro.phraseSeq
-persName.localattributes =
-  att.global.attributes,
-  att.datable.attributes,
-  att.editLike.attributes,
-  att.personal.attributes,
-  att.typed.attributes,
-  empty
-person =
-  
-  ## provides information about an identifiable individual, for example a participant in a language interaction, or a person referred to in a historical source. [ ]
-  element person { person.content, person.localattributes }
-person.content = model.pLike+ | (model.personPart | model.global)*
-person.localattributes =
-  att.global.attributes,
-  att.editLike.attributes,
-  att.sortable.attributes,
-  
-  ## specifies a primary role or classification for the person.
-  attribute role {
-    list { data.enumerated+ }
-  }?,
-  
-  ## specifies the sex of the person.
-  attribute sex {
-    list { data.sex+ }
-  }?,
-  
-  ## specifies an age group for the person.
-  attribute age { data.enumerated }?,
-  empty
-personGrp =
-  
-  ## (personal group) describes a group of individuals treated as a single person for analytic purposes. []
-  element personGrp { personGrp.content, personGrp.localattributes }
-personGrp.content = model.pLike+ | (model.personPart | model.global)*
-personGrp.localattributes =
-  att.global.attributes,
-  att.sortable.attributes,
-  
-  ## specifies the role of this group of participants in the interaction.
-  attribute role { data.enumerated }?,
-  
-  ## specifies the sex of the participant group.
-  attribute sex {
-    list { data.sex+ }
-  }?,
-  
-  ## specifies the age group of the participants.
-  attribute age { data.enumerated }?,
-  
-  ## describes informally the size or approximate size of the group for example by means of a number and an indication of accuracy e.g. approx 200.
-  attribute size {
-    list { data.word+ }
-  }?,
-  empty
-place =
-  
-  ## contains data about a geographic location []
-  element place { place.content, place.localattributes }
-place.content =
-  model.headLike*,
-  (model.pLike*
-   | (model.labelLike | model.placeStateLike | model.placeEventLike)*),
-  (model.noteLike | model.biblLike | idno | linkGrp | link)*,
-  (model.placeLike | listPlace)*
-place.localattributes =
-  att.global.attributes,
-  att.typed.attributes,
-  att.editLike.attributes,
-  att.sortable.attributes,
-  empty
-placeName =
-  
-  ## contains an absolute or relative place name. []
-  element placeName { placeName.content, placeName.localattributes }
-placeName.content = macro.phraseSeq
-placeName.localattributes =
-  att.datable.attributes,
-  att.editLike.attributes,
-  att.global.attributes,
-  att.personal.attributes,
-  att.typed.attributes,
-  empty
-population =
-  
-  ## contains information about the population of a place. []
-  element population { population.content, population.localattributes }
-population.content =
-  model.headLike*,
-  ((model.pLike+ | model.labelLike+),
-   (model.noteLike | model.biblLike)*)?,
-  population*
-population.localattributes =
-  att.global.attributes,
-  att.datable.attributes,
-  att.editLike.attributes,
-  att.naming.attributes,
-  att.typed.attributes,
-  empty
-region =
-  
-  ## contains the name of an administrative unit such as a state, province, or county, larger than a settlement, but smaller than a country. []
-  element region { region.content, region.localattributes }
-region.content = macro.phraseSeq
-region.localattributes =
-  att.global.attributes,
-  att.naming.attributes,
-  att.typed.attributes,
-  att.datable.attributes,
-  empty
-relation =
-  
-  ## (relationship) describes any kind of relationship or linkage amongst a specified group of places, events, persons, objects or other items. []
-  element relation { relation.content, relation.localattributes }
-relation.content =
-  (desc?)
-  >> ns1:pattern [
-       id = "relation-reforkeyorname-constraint-18"
-       "\x{a}" ~
-       "         "
-       ns1:rule [
-         context = "tei:relation"
-         "\x{a}" ~
-         "            "
-         ns1:assert [
-           test = "@ref or @key or @name"
-           "One of the attributes  'name', 'ref' or 'key' must be supplied"
-         ]
-         "\x{a}" ~
-         "         "
-       ]
-       "\x{a}" ~
-       "      "
-     ]
-  >> ns1:pattern [
-       id = "relation-activemutual-constraint-10"
-       "\x{a}" ~
-       "         "
-       ns1:rule [
-         context = "tei:relation"
-         "\x{a}" ~
-         "            "
-         ns1:report [
-           test = "@active and @mutual"
-           "Only one of the attributes\x{a}" ~
-           "@active and @mutual may be supplied"
-         ]
-         "\x{a}" ~
-         "         "
-       ]
-       "\x{a}" ~
-       "      "
-     ]
-  >> ns1:pattern [
-       id = "relation-activepassive-constraint-11"
-       "\x{a}" ~
-       "         "
-       ns1:rule [
-         context = "tei:relation"
-         "\x{a}" ~
-         "            "
-         ns1:report [
-           test = "@passive and not(@active)"
-           "the attribute 'passive'\x{a}" ~
-           "	may be supplied only if the attribute 'active' is\x{a}" ~
-           "	supplied"
-         ]
-         "\x{a}" ~
-         "         "
-       ]
-       "\x{a}" ~
-       "      "
-     ]
-relation.localattributes =
-  att.global.attributes,
-  att.datable.attributes,
-  att.editLike.attributes,
-  att.canonical.attributes,
-  att.sortable.attributes,
-  att.typed.attributes,
-  
-  ## supplies a name for the kind of relationship of which this is an instance.
-  attribute name { data.enumerated }?,
-  (
-   ## identifies the active participants in a non-mutual relationship, or all the participants in a mutual one.
-   attribute active {
-     list { data.pointer+ }
-   }?
-   | 
-     ## supplies a list of participants amongst all of whom the relationship holds equally.
-     attribute mutual {
-       list { data.pointer+ }
-     }?),
-  
-  ## identifies the passive participants in a non-mutual relationship.
-  attribute passive {
-    list { data.pointer+ }
-  }?,
-  empty
-residence =
-  
-  ## describes a person's present or past places of residence. []
-  element residence { residence.content, residence.localattributes }
-residence.content = macro.phraseSeq
-residence.localattributes =
-  att.global.attributes,
-  att.datable.attributes,
-  att.editLike.attributes,
-  att.naming.attributes,
-  empty
-roleName =
-  
-  ## contains a name component which indicates that the referent has a particular role or position in society, such as an official title or rank. []
-  element roleName { roleName.content, roleName.localattributes }
-roleName.content = macro.phraseSeq
-roleName.localattributes =
-  att.global.attributes,
-  att.personal.attributes,
-  att.typed.attributes,
-  empty
-settlement =
-  
-  ## contains the name of a settlement such as a city, town, or village identified as a single geo-political or administrative unit. []
-  element settlement { settlement.content, settlement.localattributes }
-settlement.content = macro.phraseSeq
-settlement.localattributes =
-  att.global.attributes,
-  att.naming.attributes,
-  att.typed.attributes,
-  att.datable.attributes,
-  empty
-sex =
-  
-  ## specifies the sex of a person. []
-  element sex { sex.content, sex.localattributes }
-sex.content = macro.phraseSeq
-sex.localattributes =
-  att.global.attributes,
-  att.editLike.attributes,
-  att.datable.attributes,
-  
-  ## supplies a coded value for sex
-  attribute value {
-    list { data.sex+ }
-  }?,
-  empty
-socecStatus =
-  
-  ## (socio-economic status) contains an informal description of a person's perceived social or economic status. []
-  element socecStatus {
-    socecStatus.content, socecStatus.localattributes
-  }
-socecStatus.content = macro.phraseSeq
-socecStatus.localattributes =
-  att.global.attributes,
-  att.datable.attributes,
-  att.editLike.attributes,
-  att.naming.attributes,
-  
-  ## identifies the classification system or taxonomy in use, for example by pointing to a locally-defined taxonomy element or by supplying a URI for an externally-defined system.
-  attribute scheme { data.pointer }?,
-  
-  ## identifies a status code defined within the classification system or taxonomy defined by the scheme attribute.
-  attribute code { data.pointer }?,
-  empty
-state =
-  
-  ## contains a description of some status or quality attributed to a person, place, or organization often at some specific time or for a specific date range. [ ]
-  element state { state.content, state.localattributes }
-state.content =
-  state+
-  | (model.headLike*, model.pLike+, (model.noteLike | model.biblLike)*)
-  | (model.labelLike | model.noteLike | model.biblLike)*
-state.localattributes =
-  att.global.attributes,
-  att.datable.attributes,
-  att.editLike.attributes,
-  att.typed.attributes,
-  att.naming.attributes,
-  empty
-surname =
-  
-  ## contains a family (inherited) name, as opposed to a given, baptismal, or nick name. []
-  element surname { surname.content, surname.localattributes }
-surname.content = macro.phraseSeq
-surname.localattributes =
-  att.global.attributes,
-  att.personal.attributes,
-  att.typed.attributes,
-  empty
-terrain =
-  
-  ## contains information about the physical terrain of a place. []
-  element terrain { terrain.content, terrain.localattributes }
-terrain.content =
-  model.headLike*,
-  (model.pLike+ | model.labelLike+),
-  (model.noteLike | model.biblLike)*,
-  terrain*
-terrain.localattributes =
-  att.global.attributes,
-  att.datable.attributes,
-  att.editLike.attributes,
-  att.naming.attributes,
-  att.typed.attributes,
-  empty
-trait =
-  
-  ## contains a description of some status or quality attributed to a person, place, or organization typically, but not necessarily, independent of the volition or action of the holder and usually not at some specific time or for a specific date range. [ ]
-  element trait { trait.content, trait.localattributes }
-trait.content =
-  trait+
-  | (model.headLike*, model.pLike+, (model.noteLike | model.biblLike)*)
-  | (model.labelLike | model.noteLike | model.biblLike)*
-trait.localattributes =
-  att.global.attributes,
-  att.datable.attributes,
-  att.editLike.attributes,
-  att.naming.attributes,
-  att.typed.attributes,
-  empty
-# 3. macros
diff --git a/resources/schema/tei/tei.rnc b/resources/schema/tei/tei.rnc
deleted file mode 100644
index 6e73e91dc43f7a113fd91a7494583be24326bc38..0000000000000000000000000000000000000000
--- a/resources/schema/tei/tei.rnc
+++ /dev/null
@@ -1,4234 +0,0 @@
-namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"
-namespace ns1 = "http://www.isocat.org/ns/dcr"
-namespace rng = "http://relaxng.org/ns/structure/1.0"
-namespace sch = "http://purl.oclc.org/dsdl/schematron"
-
-# Schema generated 2014-09-16T18:57:47Z
-# Edition: Version 2.7.0. Last updated on
-#	16th September 2014, revision 13036
-# This material is dual-licensed.
-# [http://creativecommons.org/licenses/by/3.0/] Distributed under a Creative Commons Attribution 3.0 Unported License.  [http://www.opensource.org/licenses/BSD-2-Clause] Copyright 2014 TEI Consortium. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. This software is provided by the copyright holders and contributors "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the copyright holder or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage. TEI material can be licensed differently depending on the use you intend to make of it. Hence it is made available under both the CC+BY and BSD-2 licences. The CC+BY licence is generally appropriate for usages which treat TEI content as data or documentation. The BSD-2 licence is generally appropriate for usage of TEI content in a software environment. For further information or clarification, please contact the TEI Consortium. Declarations for classes, datatypes, and macros available to all TEI modules
-
-# Definitions from module tei
-
-# Set global predeclared macros
-TEI |= notAllowed
-ab |= notAllowed
-abbr |= notAllowed
-abstract |= notAllowed
-accMat |= notAllowed
-acquisition |= notAllowed
-activity |= notAllowed
-actor |= notAllowed
-add |= notAllowed
-addName |= notAllowed
-addSpan |= notAllowed
-additional |= notAllowed
-additions |= notAllowed
-addrLine |= notAllowed
-address |= notAllowed
-adminInfo |= notAllowed
-affiliation |= notAllowed
-age |= notAllowed
-alt |= notAllowed
-altGrp |= notAllowed
-altIdent |= notAllowed
-altIdentifier |= notAllowed
-alternate |= notAllowed
-am |= notAllowed
-analytic |= notAllowed
-anchor |= notAllowed
-app |= notAllowed
-appInfo |= notAllowed
-application |= notAllowed
-arc |= notAllowed
-argument |= notAllowed
-att |= notAllowed
-attDef |= notAllowed
-attList |= notAllowed
-attRef |= notAllowed
-author |= notAllowed
-authority |= notAllowed
-availability |= notAllowed
-back |= notAllowed
-bibl |= notAllowed
-biblFull |= notAllowed
-biblScope |= notAllowed
-biblStruct |= notAllowed
-bicond |= notAllowed
-binary |= notAllowed
-binaryObject |= notAllowed
-binding |= notAllowed
-bindingDesc |= notAllowed
-birth |= notAllowed
-bloc |= notAllowed
-body |= notAllowed
-broadcast |= notAllowed
-byline |= notAllowed
-c |= notAllowed
-cRefPattern |= notAllowed
-caesura |= notAllowed
-calendar |= notAllowed
-calendarDesc |= notAllowed
-camera |= notAllowed
-caption |= notAllowed
-case |= notAllowed
-castGroup |= notAllowed
-castItem |= notAllowed
-castList |= notAllowed
-catDesc |= notAllowed
-catRef |= notAllowed
-catchwords |= notAllowed
-category |= notAllowed
-cb |= notAllowed
-cell |= notAllowed
-certainty |= notAllowed
-change |= notAllowed
-channel |= notAllowed
-char |= notAllowed
-charDecl |= notAllowed
-charName |= notAllowed
-charProp |= notAllowed
-choice |= notAllowed
-cit |= notAllowed
-citedRange |= notAllowed
-cl |= notAllowed
-classCode |= notAllowed
-classDecl |= notAllowed
-classRef |= notAllowed
-classSpec |= notAllowed
-classes |= notAllowed
-climate |= notAllowed
-closer |= notAllowed
-code |= notAllowed
-collation |= notAllowed
-collection |= notAllowed
-colloc |= notAllowed
-colophon |= notAllowed
-cond |= notAllowed
-condition |= notAllowed
-constitution |= notAllowed
-constraint |= notAllowed
-constraintSpec |= notAllowed
-content |= notAllowed
-corr |= notAllowed
-correction |= notAllowed
-country |= notAllowed
-creation |= notAllowed
-custEvent |= notAllowed
-custodialHist |= notAllowed
-damage |= notAllowed
-damageSpan |= notAllowed
-datatype |= notAllowed
-date |= notAllowed
-dateline |= notAllowed
-death |= notAllowed
-decoDesc |= notAllowed
-decoNote |= notAllowed
-def |= notAllowed
-\default |= notAllowed
-defaultVal |= notAllowed
-del |= notAllowed
-delSpan |= notAllowed
-depth |= notAllowed
-derivation |= notAllowed
-desc |= notAllowed
-dictScrap |= notAllowed
-dim |= notAllowed
-dimensions |= notAllowed
-distinct |= notAllowed
-distributor |= notAllowed
-district |= notAllowed
-\div |= notAllowed
-div1 |= notAllowed
-div2 |= notAllowed
-div3 |= notAllowed
-div4 |= notAllowed
-div5 |= notAllowed
-div6 |= notAllowed
-div7 |= notAllowed
-divGen |= notAllowed
-docAuthor |= notAllowed
-docDate |= notAllowed
-docEdition |= notAllowed
-docImprint |= notAllowed
-docTitle |= notAllowed
-domain |= notAllowed
-eLeaf |= notAllowed
-eTree |= notAllowed
-edition |= notAllowed
-editionStmt |= notAllowed
-editor |= notAllowed
-editorialDecl |= notAllowed
-education |= notAllowed
-eg |= notAllowed
-egXML |= notAllowed
-elementRef |= notAllowed
-elementSpec |= notAllowed
-email |= notAllowed
-emph |= notAllowed
-encodingDesc |= notAllowed
-entry |= notAllowed
-entryFree |= notAllowed
-epigraph |= notAllowed
-epilogue |= notAllowed
-equipment |= notAllowed
-equiv |= notAllowed
-etym |= notAllowed
-event |= notAllowed
-ex |= notAllowed
-exemplum |= notAllowed
-expan |= notAllowed
-explicit |= notAllowed
-extent |= notAllowed
-f |= notAllowed
-fDecl |= notAllowed
-fDescr |= notAllowed
-fLib |= notAllowed
-facsimile |= notAllowed
-factuality |= notAllowed
-faith |= notAllowed
-figDesc |= notAllowed
-figure |= notAllowed
-fileDesc |= notAllowed
-filiation |= notAllowed
-finalRubric |= notAllowed
-floatingText |= notAllowed
-floruit |= notAllowed
-foliation |= notAllowed
-foreign |= notAllowed
-forename |= notAllowed
-forest |= notAllowed
-form |= notAllowed
-formula |= notAllowed
-front |= notAllowed
-fs |= notAllowed
-fsConstraints |= notAllowed
-fsDecl |= notAllowed
-fsDescr |= notAllowed
-fsdDecl |= notAllowed
-fsdLink |= notAllowed
-funder |= notAllowed
-fvLib |= notAllowed
-fw |= notAllowed
-g |= notAllowed
-gap |= notAllowed
-gb |= notAllowed
-gen |= notAllowed
-genName |= notAllowed
-geo |= notAllowed
-geoDecl |= notAllowed
-geogFeat |= notAllowed
-geogName |= notAllowed
-gi |= notAllowed
-gloss |= notAllowed
-glyph |= notAllowed
-glyphName |= notAllowed
-gram |= notAllowed
-gramGrp |= notAllowed
-graph |= notAllowed
-graphic |= notAllowed
-group |= notAllowed
-handDesc |= notAllowed
-handNote |= notAllowed
-handNotes |= notAllowed
-handShift |= notAllowed
-head |= notAllowed
-headItem |= notAllowed
-headLabel |= notAllowed
-height |= notAllowed
-heraldry |= notAllowed
-hi |= notAllowed
-history |= notAllowed
-hom |= notAllowed
-hyph |= notAllowed
-hyphenation |= notAllowed
-iNode |= notAllowed
-iType |= notAllowed
-ident |= notAllowed
-idno |= notAllowed
-if |= notAllowed
-iff |= notAllowed
-imprimatur |= notAllowed
-imprint |= notAllowed
-incident |= notAllowed
-incipit |= notAllowed
-index |= notAllowed
-institution |= notAllowed
-interaction |= notAllowed
-interp |= notAllowed
-interpGrp |= notAllowed
-interpretation |= notAllowed
-item |= notAllowed
-join |= notAllowed
-joinGrp |= notAllowed
-keywords |= notAllowed
-kinesic |= notAllowed
-l |= notAllowed
-label |= notAllowed
-lacunaEnd |= notAllowed
-lacunaStart |= notAllowed
-lang |= notAllowed
-langKnowledge |= notAllowed
-langKnown |= notAllowed
-langUsage |= notAllowed
-language |= notAllowed
-layout |= notAllowed
-layoutDesc |= notAllowed
-lb |= notAllowed
-lbl |= notAllowed
-leaf |= notAllowed
-lem |= notAllowed
-lg |= notAllowed
-licence |= notAllowed
-line |= notAllowed
-link |= notAllowed
-linkGrp |= notAllowed
-\list |= notAllowed
-listApp |= notAllowed
-listBibl |= notAllowed
-listChange |= notAllowed
-listEvent |= notAllowed
-listForest |= notAllowed
-listNym |= notAllowed
-listOrg |= notAllowed
-listPerson |= notAllowed
-listPlace |= notAllowed
-listPrefixDef |= notAllowed
-listRef |= notAllowed
-listRelation |= notAllowed
-listTranspose |= notAllowed
-listWit |= notAllowed
-localName |= notAllowed
-locale |= notAllowed
-location |= notAllowed
-locus |= notAllowed
-locusGrp |= notAllowed
-m |= notAllowed
-macroRef |= notAllowed
-macroSpec |= notAllowed
-mapping |= notAllowed
-material |= notAllowed
-measure |= notAllowed
-measureGrp |= notAllowed
-media |= notAllowed
-meeting |= notAllowed
-memberOf |= notAllowed
-mentioned |= notAllowed
-metDecl |= notAllowed
-metSym |= notAllowed
-metamark |= notAllowed
-milestone |= notAllowed
-mod |= notAllowed
-moduleRef |= notAllowed
-moduleSpec |= notAllowed
-monogr |= notAllowed
-mood |= notAllowed
-move |= notAllowed
-msContents |= notAllowed
-msDesc |= notAllowed
-msIdentifier |= notAllowed
-msItem |= notAllowed
-msItemStruct |= notAllowed
-msName |= notAllowed
-msPart |= notAllowed
-musicNotation |= notAllowed
-name |= notAllowed
-nameLink |= notAllowed
-\namespace |= notAllowed
-nationality |= notAllowed
-node |= notAllowed
-normalization |= notAllowed
-notatedMusic |= notAllowed
-note |= notAllowed
-notesStmt |= notAllowed
-num |= notAllowed
-number |= notAllowed
-numeric |= notAllowed
-nym |= notAllowed
-oRef |= notAllowed
-oVar |= notAllowed
-objectDesc |= notAllowed
-objectType |= notAllowed
-occupation |= notAllowed
-offset |= notAllowed
-opener |= notAllowed
-org |= notAllowed
-orgName |= notAllowed
-orig |= notAllowed
-origDate |= notAllowed
-origPlace |= notAllowed
-origin |= notAllowed
-orth |= notAllowed
-p |= notAllowed
-pRef |= notAllowed
-pVar |= notAllowed
-particDesc |= notAllowed
-pause |= notAllowed
-pb |= notAllowed
-pc |= notAllowed
-per |= notAllowed
-performance |= notAllowed
-persName |= notAllowed
-person |= notAllowed
-personGrp |= notAllowed
-phr |= notAllowed
-physDesc |= notAllowed
-place |= notAllowed
-placeName |= notAllowed
-population |= notAllowed
-pos |= notAllowed
-postBox |= notAllowed
-postCode |= notAllowed
-postscript |= notAllowed
-precision |= notAllowed
-prefixDef |= notAllowed
-preparedness |= notAllowed
-principal |= notAllowed
-profileDesc |= notAllowed
-projectDesc |= notAllowed
-prologue |= notAllowed
-pron |= notAllowed
-provenance |= notAllowed
-ptr |= notAllowed
-pubPlace |= notAllowed
-publicationStmt |= notAllowed
-publisher |= notAllowed
-punctuation |= notAllowed
-purpose |= notAllowed
-q |= notAllowed
-quotation |= notAllowed
-quote |= notAllowed
-rdg |= notAllowed
-rdgGrp |= notAllowed
-re |= notAllowed
-recordHist |= notAllowed
-recording |= notAllowed
-recordingStmt |= notAllowed
-redo |= notAllowed
-ref |= notAllowed
-refState |= notAllowed
-refsDecl |= notAllowed
-reg |= notAllowed
-region |= notAllowed
-relatedItem |= notAllowed
-relation |= notAllowed
-remarks |= notAllowed
-rendition |= notAllowed
-repository |= notAllowed
-residence |= notAllowed
-resp |= notAllowed
-respStmt |= notAllowed
-respons |= notAllowed
-restore |= notAllowed
-retrace |= notAllowed
-revisionDesc |= notAllowed
-rhyme |= notAllowed
-role |= notAllowed
-roleDesc |= notAllowed
-roleName |= notAllowed
-root |= notAllowed
-row |= notAllowed
-rs |= notAllowed
-rubric |= notAllowed
-s |= notAllowed
-said |= notAllowed
-salute |= notAllowed
-samplingDecl |= notAllowed
-schemaSpec |= notAllowed
-scriptDesc |= notAllowed
-scriptNote |= notAllowed
-scriptStmt |= notAllowed
-seal |= notAllowed
-sealDesc |= notAllowed
-secFol |= notAllowed
-seg |= notAllowed
-segmentation |= notAllowed
-sense |= notAllowed
-sequence |= notAllowed
-series |= notAllowed
-seriesStmt |= notAllowed
-set |= notAllowed
-setting |= notAllowed
-settingDesc |= notAllowed
-settlement |= notAllowed
-sex |= notAllowed
-shift |= notAllowed
-sic |= notAllowed
-signatures |= notAllowed
-signed |= notAllowed
-soCalled |= notAllowed
-socecStatus |= notAllowed
-sound |= notAllowed
-source |= notAllowed
-sourceDesc |= notAllowed
-sourceDoc |= notAllowed
-sp |= notAllowed
-spGrp |= notAllowed
-space |= notAllowed
-span |= notAllowed
-spanGrp |= notAllowed
-speaker |= notAllowed
-specDesc |= notAllowed
-specGrp |= notAllowed
-specGrpRef |= notAllowed
-specList |= notAllowed
-sponsor |= notAllowed
-stage |= notAllowed
-stamp |= notAllowed
-state |= notAllowed
-stdVals |= notAllowed
-street |= notAllowed
-stress |= notAllowed
-\string |= notAllowed
-styleDefDecl |= notAllowed
-subc |= notAllowed
-subst |= notAllowed
-substJoin |= notAllowed
-summary |= notAllowed
-superEntry |= notAllowed
-supplied |= notAllowed
-support |= notAllowed
-supportDesc |= notAllowed
-surface |= notAllowed
-surfaceGrp |= notAllowed
-surname |= notAllowed
-surplus |= notAllowed
-surrogates |= notAllowed
-syll |= notAllowed
-symbol |= notAllowed
-table |= notAllowed
-tag |= notAllowed
-tagUsage |= notAllowed
-tagsDecl |= notAllowed
-taxonomy |= notAllowed
-tech |= notAllowed
-teiCorpus |= notAllowed
-teiHeader |= notAllowed
-term |= notAllowed
-terrain |= notAllowed
-\text |= notAllowed
-textClass |= notAllowed
-textDesc |= notAllowed
-textLang |= notAllowed
-then |= notAllowed
-time |= notAllowed
-timeline |= notAllowed
-title |= notAllowed
-titlePage |= notAllowed
-titlePart |= notAllowed
-titleStmt |= notAllowed
-tns |= notAllowed
-trailer |= notAllowed
-trait |= notAllowed
-transpose |= notAllowed
-tree |= notAllowed
-triangle |= notAllowed
-typeDesc |= notAllowed
-typeNote |= notAllowed
-u |= notAllowed
-unclear |= notAllowed
-undo |= notAllowed
-unicodeName |= notAllowed
-usg |= notAllowed
-vAlt |= notAllowed
-vColl |= notAllowed
-vDefault |= notAllowed
-vLabel |= notAllowed
-vMerge |= notAllowed
-vNot |= notAllowed
-vRange |= notAllowed
-val |= notAllowed
-valDesc |= notAllowed
-valItem |= notAllowed
-valList |= notAllowed
-value |= notAllowed
-variantEncoding |= notAllowed
-view |= notAllowed
-vocal |= notAllowed
-w |= notAllowed
-watermark |= notAllowed
-when |= notAllowed
-width |= notAllowed
-wit |= notAllowed
-witDetail |= notAllowed
-witEnd |= notAllowed
-witStart |= notAllowed
-witness |= notAllowed
-writing |= notAllowed
-xr |= notAllowed
-zone |= notAllowed
-# Set predeclared macros
-
-# 0. predeclared classes
-att.datable.custom.attributes |= empty
-att.duration.w3c.attributes |= empty
-att.duration.iso.attributes |= empty
-att.duration.attributes |= empty
-model.entryPart |= notAllowed
-model.entryPart_alternation |= notAllowed
-model.entryPart_sequence |= notAllowed
-model.entryPart_sequenceOptional |= notAllowed
-model.entryPart_sequenceOptionalRepeatable |= notAllowed
-model.entryPart_sequenceRepeatable |= notAllowed
-model.global.spoken |= notAllowed
-model.global.spoken_alternation |= notAllowed
-model.global.spoken_sequence |= notAllowed
-model.global.spoken_sequenceOptional |= notAllowed
-model.global.spoken_sequenceOptionalRepeatable |= notAllowed
-model.global.spoken_sequenceRepeatable |= notAllowed
-model.placeNamePart |= notAllowed
-model.placeNamePart_alternation |= notAllowed
-model.placeNamePart_sequence |= notAllowed
-model.placeNamePart_sequenceOptional |= notAllowed
-model.placeNamePart_sequenceOptionalRepeatable |= notAllowed
-model.placeNamePart_sequenceRepeatable |= notAllowed
-model.placeStateLike |= notAllowed
-model.placeStateLike_alternation |= notAllowed
-model.placeStateLike_sequence |= notAllowed
-model.placeStateLike_sequenceOptional |= notAllowed
-model.placeStateLike_sequenceOptionalRepeatable |= notAllowed
-model.placeStateLike_sequenceRepeatable |= notAllowed
-model.placeEventLike |= notAllowed
-model.placeEventLike_alternation |= notAllowed
-model.placeEventLike_sequence |= notAllowed
-model.placeEventLike_sequenceOptional |= notAllowed
-model.placeEventLike_sequenceOptionalRepeatable |= notAllowed
-model.placeEventLike_sequenceRepeatable |= notAllowed
-model.orgPart |= notAllowed
-model.orgPart_alternation |= notAllowed
-model.orgPart_sequence |= notAllowed
-model.orgPart_sequenceOptional |= notAllowed
-model.orgPart_sequenceOptionalRepeatable |= notAllowed
-model.orgPart_sequenceRepeatable |= notAllowed
-model.persNamePart |= notAllowed
-model.persNamePart_alternation |= notAllowed
-model.persNamePart_sequence |= notAllowed
-model.persNamePart_sequenceOptional |= notAllowed
-model.persNamePart_sequenceOptionalRepeatable |= notAllowed
-model.persNamePart_sequenceRepeatable |= notAllowed
-att.source.attributes |= empty
-att.metrical.attributes |= empty
-att.enjamb.attributes |= empty
-model.divPart.spoken |= notAllowed
-model.divPart.spoken_alternation |= notAllowed
-model.divPart.spoken_sequence |= notAllowed
-model.divPart.spoken_sequenceOptional |= notAllowed
-model.divPart.spoken_sequenceOptionalRepeatable |= notAllowed
-model.divPart.spoken_sequenceRepeatable |= notAllowed
-model.entryLike |= notAllowed
-model.entryLike_alternation |= notAllowed
-model.entryLike_sequence |= notAllowed
-model.entryLike_sequenceOptional |= notAllowed
-model.entryLike_sequenceOptionalRepeatable |= notAllowed
-model.entryLike_sequenceRepeatable |= notAllowed
-model.ptrLike.form |= notAllowed
-model.ptrLike.form_alternation |= notAllowed
-model.ptrLike.form_sequence |= notAllowed
-model.ptrLike.form_sequenceOptional |= notAllowed
-model.ptrLike.form_sequenceOptionalRepeatable |= notAllowed
-model.ptrLike.form_sequenceRepeatable |= notAllowed
-att.msExcerpt.attributes |= empty
-att.global.facs.attributes |= empty
-att.global.change.attributes |= empty
-model.resourceLike |= notAllowed
-model.resourceLike_alternation |= notAllowed
-model.resourceLike_sequence |= notAllowed
-model.resourceLike_sequenceOptional |= notAllowed
-model.resourceLike_sequenceOptionalRepeatable |= notAllowed
-model.resourceLike_sequenceRepeatable |= notAllowed
-model.orgStateLike |= notAllowed
-model.orgStateLike_alternation |= notAllowed
-model.orgStateLike_sequence |= notAllowed
-model.orgStateLike_sequenceOptional |= notAllowed
-model.orgStateLike_sequenceOptionalRepeatable |= notAllowed
-model.orgStateLike_sequenceRepeatable |= notAllowed
-att.datable.iso.attributes |= empty
-att.global.linking.attributes |= empty
-att.global.analytic.attributes |= empty
-att.deprecated.attributes |= empty
-# 0. predeclared macros
-
-# 1. classes
-att.ascribed.attributes = att.ascribed.attribute.who
-att.ascribed.attribute.who =
-  
-  ## indicates the person, or group of people, to whom the element content is ascribed.
-  attribute who {
-    list { data.pointer+ }
-  }?
-att.canonical.attributes =
-  att.canonical.attribute.key, att.canonical.attribute.ref
-att.canonical.attribute.key =
-  
-  ## provides an externally-defined means of identifying the entity (or entities) being named, using a coded value of some kind.
-  attribute key { data.text }?
-att.canonical.attribute.ref =
-  
-  ## (reference) provides an explicit means of locating a full definition for the entity being named by means of one or more URIs.
-  attribute ref {
-    list { data.pointer+ }
-  }?
-att.ranging.attributes =
-  att.ranging.attribute.atLeast,
-  att.ranging.attribute.atMost,
-  att.ranging.attribute.min,
-  att.ranging.attribute.max,
-  att.ranging.attribute.confidence
-att.ranging.attribute.atLeast =
-  
-  ## gives a minimum estimated value for the approximate measurement.
-  attribute atLeast { data.numeric }?
-att.ranging.attribute.atMost =
-  
-  ## gives a maximum estimated value for the approximate measurement.
-  attribute atMost { data.numeric }?
-att.ranging.attribute.min =
-  
-  ## where the measurement summarizes more than one observation or a range, supplies the minimum value observed.
-  attribute min { data.numeric }?
-att.ranging.attribute.max =
-  
-  ## where the measurement summarizes more than one observation or a range, supplies the maximum value observed.
-  attribute max { data.numeric }?
-att.ranging.attribute.confidence =
-  
-  ## specifies the degree of statistical confidence (between zero and one) that a value falls within the range specified by min and max, or the proportion of observed values that fall within that range.
-  attribute confidence { data.probability }?
-att.dimensions.attributes =
-  att.ranging.attributes,
-  att.dimensions.attribute.unit,
-  att.dimensions.attribute.quantity,
-  att.dimensions.attribute.extent,
-  att.dimensions.attribute.precision,
-  att.dimensions.attribute.scope
-att.dimensions.attribute.unit =
-  
-  ## names the unit used for the measurement
-  ## Suggested values include: 1] cm(centimetres) ; 2] mm(millimetres) ; 3] in(inches) ; 4] lines; 5] chars(characters) 
-  attribute unit {
-    
-    ## (centimetres) 
-    "cm"
-    | 
-      ## (millimetres) 
-      "mm"
-    | 
-      ## (inches) 
-      "in"
-    | 
-      ## lines of text
-      "lines"
-    | 
-      ## (characters) characters of text
-      "chars"
-    | xsd:Name
-  }?
-att.dimensions.attribute.quantity =
-  
-  ## specifies the length in the units specified
-  attribute quantity { data.numeric }?
-att.dimensions.attribute.extent =
-  
-  ## indicates the size of the object concerned using a project-specific vocabulary combining quantity and units in a single string of words.
-  attribute extent { data.text }?
-att.dimensions.attribute.precision =
-  
-  ## characterizes the precision of the values specified by the other attributes.
-  attribute precision { data.certainty }?
-att.dimensions.attribute.scope =
-  
-  ## where the measurement summarizes more than one observation, specifies the applicability of this measurement.
-  ## Sample values include: 1] all; 2] most; 3] range
-  attribute scope { data.enumerated }?
-att.damaged.attributes =
-  att.dimensions.attributes,
-  att.damaged.attribute.hand,
-  att.damaged.attribute.agent,
-  att.damaged.attribute.degree,
-  att.damaged.attribute.group
-att.damaged.attribute.hand =
-  
-  ## in the case of damage (deliberate defacement, inking out, etc.) assignable to a distinct hand, signifies the hand responsible for the damage by pointing to one of the hand identifiers declared in the document header (see section ).
-  attribute hand { data.pointer }?
-att.damaged.attribute.agent =
-  
-  ## categorizes the cause of the damage, if it can be identified.
-  ## Sample values include: 1] rubbing; 2] mildew; 3] smoke
-  attribute agent { data.enumerated }?
-att.damaged.attribute.degree =
-  
-  ## provides a coded representation of the degree of damage, either as a number between 0 (undamaged) and 1 (very extensively damaged), or as one of the codes high, medium, low, or unknown. The damage element with the degree attribute should only be used where the text may be read with some confidence; text supplied from other sources should be tagged as supplied.
-  attribute degree { data.probability | data.certainty }?
-att.damaged.attribute.group =
-  
-  ## assigns an arbitrary number to each stretch of damage regarded as forming part of the same physical phenomenon.
-  attribute group { data.count }?
-att.breaking.attributes = att.breaking.attribute.break
-att.breaking.attribute.break =
-  
-  ## indicates whether or not the element bearing this attribute should be considered to mark the end of an orthographic token in the same way as whitespace.
-  attribute break { data.enumerated }?
-att.cReferencing.attributes = att.cReferencing.attribute.cRef
-att.cReferencing.attribute.cRef =
-  
-  ## (canonical reference) specifies the destination of the pointer by supplying a canonical reference expressed using the scheme defined in a refsDecl element in the TEI header
-  attribute cRef { data.text }?
-att.datable.w3c.attributes =
-  att.datable.w3c.attribute.when,
-  att.datable.w3c.attribute.notBefore,
-  att.datable.w3c.attribute.notAfter,
-  att.datable.w3c.attribute.from,
-  att.datable.w3c.attribute.to
-att.datable.w3c.attribute.when =
-  
-  ## supplies the value of the date or time in a standard form, e.g. yyyy-mm-dd.
-  attribute when { data.temporal.w3c }?
-att.datable.w3c.attribute.notBefore =
-  
-  ## specifies the earliest possible date for the event in standard form, e.g. yyyy-mm-dd.
-  attribute notBefore { data.temporal.w3c }?
-att.datable.w3c.attribute.notAfter =
-  
-  ## specifies the latest possible date for the event in standard form, e.g. yyyy-mm-dd.
-  attribute notAfter { data.temporal.w3c }?
-att.datable.w3c.attribute.from =
-  
-  ## indicates the starting point of the period in standard form, e.g. yyyy-mm-dd.
-  attribute from { data.temporal.w3c }?
-att.datable.w3c.attribute.to =
-  
-  ## indicates the ending point of the period in standard form, e.g. yyyy-mm-dd.
-  attribute to { data.temporal.w3c }?
-att.datable.attributes =
-  att.datable.w3c.attributes,
-  att.datable.iso.attributes,
-  att.datable.custom.attributes,
-  att.datable.attribute.calendar,
-  att.datable.attribute.period
-att.datable.attribute.calendar =
-  
-  ## indicates the system or calendar to which the date represented by the content of this element belongs.
-  attribute calendar { data.pointer }?
-sch:pattern [
-  id = "att.datable-calendar-calendar-constraint-1"
-  "\x{a}" ~
-  "      "
-  sch:rule [
-    context = "tei:*[@calendar]"
-    "\x{a}" ~
-    "            "
-    sch:assert [
-      test = "string-length(.) gt 0"
-      "\x{a}" ~
-      "@calendar indicates the system or calendar to which the date represented by the content of this element\x{a}" ~
-      "belongs, but this "
-      sch:name [ ]
-      " element has no textual content."
-    ]
-    "\x{a}" ~
-    "          "
-  ]
-  "\x{a}" ~
-  "   "
-]
-att.datable.attribute.period =
-  
-  ## supplies a pointer to some location defining a named period of time within which the datable item is understood to have occurred.
-  attribute period { data.pointer }?
-att.datcat.attributes =
-  att.datcat.attribute.datcat, att.datcat.attribute.valueDatcat
-att.datcat.attribute.datcat =
-  
-  ## contains a PID (persistent identifier) that aligns the given element with the appropriate Data Category (or categories) in ISOcat.
-  attribute ns1:datcat {
-    list { data.pointer+ }
-  }?
-att.datcat.attribute.valueDatcat =
-  
-  ## contains a PID (persistent identifier) that aligns the content of the given element or the value of the given attribute with the appropriate simple Data Category (or categories) in ISOcat.
-  attribute ns1:valueDatcat {
-    list { data.pointer+ }
-  }?
-att.declarable.attributes = att.declarable.attribute.default
-att.declarable.attribute.default =
-  
-  ## indicates whether or not this element is selected by default when its parent is selected.
-  [ a:defaultValue = "false" ]
-  attribute default {
-    
-    ## This element is selected if its parent is selected
-    "true"
-    | 
-      ## This element can only be selected explicitly, unless it is the only one of its kind, in which case it is selected if its parent is selected.
-      "false"
-  }?
-att.declaring.attributes = att.declaring.attribute.decls
-att.declaring.attribute.decls =
-  
-  ## identifies one or more declarable elements within the header, which are understood to apply to the element bearing this attribute and its content.
-  attribute decls {
-    list { data.pointer+ }
-  }?
-att.fragmentable.attributes = att.fragmentable.attribute.part
-att.fragmentable.attribute.part =
-  
-  ## specifies whether or not its parent element is fragmented in some way, typically by some other overlapping structure: for example a speech which is divided between two or more verse stanzas, a paragraph which is split across a page division, a verse line which is divided between two speakers.
-  [ a:defaultValue = "N" ]
-  attribute part {
-    
-    ## (yes) the element is fragmented in some (unspecified) respect
-    "Y"
-    | 
-      ## (no) either the element is not fragmented, or no claim is made as to its completeness.
-      "N"
-    | 
-      ## (initial) this is the initial part of a fragmented element
-      "I"
-    | 
-      ## (medial) this is a medial part of a fragmented element
-      "M"
-    | 
-      ## (final) this is the final part of a fragmented element
-      "F"
-  }?
-att.divLike.attributes =
-  att.metrical.attributes,
-  att.fragmentable.attributes,
-  att.divLike.attribute.org,
-  att.divLike.attribute.sample
-att.divLike.attribute.org =
-  
-  ## (organization) specifies how the content of the division is organized.
-  [ a:defaultValue = "uniform" ]
-  attribute org {
-    
-    ## no claim is made about the sequence in which the immediate contents of this division are to be processed, or their inter-relationships.
-    "composite"
-    | 
-      ## the immediate contents of this element are regarded as forming a logical unit, to be processed in sequence.
-      "uniform"
-  }?
-att.divLike.attribute.sample =
-  
-  ## indicates whether this division is a sample of the original source and if so, from which part.
-  [ a:defaultValue = "complete" ]
-  attribute sample {
-    
-    ## division lacks material present at end in source.
-    "initial"
-    | 
-      ## division lacks material at start and end.
-      "medial"
-    | 
-      ## division lacks material at start.
-      "final"
-    | 
-      ## position of sampled material within original unknown.
-      "unknown"
-    | 
-      ## division is not a sample.
-      "complete"
-  }?
-att.docStatus.attributes = att.docStatus.attribute.status
-att.docStatus.attribute.status =
-  
-  ## describes the status of a document either currently or, when associated with a dated element, at the time indicated.
-  ## Sample values include: 1] approved; 2] candidate; 3] cleared; 4] deprecated; 5] draft; 6] embargoed; 7] expired; 8] frozen; 9] galley; 10] proposed; 11] published; 12] recommendation; 13] submitted; 14] unfinished; 15] withdrawn
-  [ a:defaultValue = "draft" ] attribute status { data.enumerated }?
-att.duration.w3c.attributes = att.duration.w3c.attribute.dur
-att.duration.w3c.attribute.dur =
-  
-  ## (duration) indicates the length of this element in time.
-  attribute dur { data.duration.w3c }?
-att.duration.iso.attributes = att.duration.iso.attribute.dur-iso
-att.duration.iso.attribute.dur-iso =
-  
-  ## (duration) indicates the length of this element in time.
-  attribute dur-iso { data.duration.iso }?
-att.responsibility.attributes =
-  att.source.attributes,
-  att.responsibility.attribute.cert,
-  att.responsibility.attribute.resp
-att.responsibility.attribute.cert =
-  
-  ## (certainty) signifies the degree of certainty associated with the intervention or interpretation.
-  attribute cert { data.certainty }?
-att.responsibility.attribute.resp =
-  
-  ## (responsible party) indicates the agency responsible for the intervention or interpretation, for example an editor or transcriber.
-  attribute resp {
-    list { data.pointer+ }
-  }?
-att.editLike.attributes =
-  att.dimensions.attributes,
-  att.responsibility.attributes,
-  att.editLike.attribute.evidence,
-  att.editLike.attribute.instant
-att.editLike.attribute.evidence =
-  
-  ## indicates the nature of the evidence supporting the reliability or accuracy of the intervention or interpretation.
-  ## Suggested values include: 1] internal; 2] external; 3] conjecture
-  attribute evidence {
-    list {
-      (
-       ## there is internal evidence to support the intervention.
-       "internal"
-       | 
-         ## there is external evidence to support the intervention.
-         "external"
-       | 
-         ## the intervention or interpretation has been made by the editor, cataloguer, or scholar on the basis of their expertise.
-         "conjecture"
-       | xsd:Name)+
-    }
-  }?
-att.editLike.attribute.instant =
-  
-  ## indicates whether this is an instant revision or not.
-  [ a:defaultValue = "false" ] attribute instant { data.xTruthValue }?
-att.global.attributes =
-  att.global.linking.attributes,
-  att.global.analytic.attributes,
-  att.global.facs.attributes,
-  att.global.change.attributes,
-  att.global.attribute.xmlid,
-  att.global.attribute.n,
-  att.global.attribute.xmllang,
-  att.global.attribute.rend,
-  att.global.attribute.style,
-  att.global.attribute.rendition,
-  att.global.attribute.xmlbase,
-  att.global.attribute.xmlspace
-att.global.attribute.xmlid =
-  
-  ## (identifier) provides a unique identifier for the element bearing the attribute.
-  attribute xml:id { xsd:ID }?
-att.global.attribute.n =
-  
-  ## (number) gives a number (or other label) for an element, which is not necessarily unique within the document.
-  attribute n { data.text }?
-att.global.attribute.xmllang =
-  
-  ## (language) indicates the language of the element content using a tag generated according to BCP 47.
-  attribute xml:lang { data.language }?
-att.global.attribute.rend =
-  
-  ## (rendition) indicates how the element in question was rendered or presented in the source text.
-  attribute rend {
-    list { data.word+ }
-  }?
-att.global.attribute.style =
-  
-  ## contains an expression in some formal style definition language which defines the rendering or presentation used for this element in the source text
-  attribute style { data.text }?
-att.global.attribute.rendition =
-  
-  ## points to a description of the rendering or presentation used for this element in the source text.
-  attribute rendition {
-    list { data.pointer+ }
-  }?
-att.global.attribute.xmlbase =
-  
-  ## provides a base URI reference with which applications can resolve relative URI references into absolute URI references.
-  attribute xml:base { data.pointer }?
-att.global.attribute.xmlspace =
-  
-  ## signals an intention about how white space should be managed by applications.
-  attribute xml:space {
-    
-    ## signals that the application's default white-space processing modes are acceptable
-    "default"
-    | 
-      ## indicates the intent that applications preserve all white space
-      "preserve"
-  }?
-att.handFeatures.attributes =
-  att.handFeatures.attribute.scribe,
-  att.handFeatures.attribute.scribeRef,
-  att.handFeatures.attribute.script,
-  att.handFeatures.attribute.scriptRef,
-  att.handFeatures.attribute.medium,
-  att.handFeatures.attribute.scope
-att.handFeatures.attribute.scribe =
-  
-  ## gives a name or other identifier for the scribe believed to be responsible for this hand.
-  attribute scribe { data.name }?
-att.handFeatures.attribute.scribeRef =
-  
-  ## points to a full description of the scribe concerned, typically supplied by a person element elsewhere in the description.
-  attribute scribeRef {
-    list { data.pointer+ }
-  }?
-att.handFeatures.attribute.script =
-  
-  ## characterizes the particular script or writing style used by this hand, for example secretary, copperplate, Chancery, Italian, etc.
-  attribute script {
-    list { data.name+ }
-  }?
-att.handFeatures.attribute.scriptRef =
-  
-  ## points to a full description of the script or writing style used by this hand, typically supplied by a scriptNote element elsewhere in the description.
-  attribute scriptRef {
-    list { data.pointer+ }
-  }?
-att.handFeatures.attribute.medium =
-  
-  ## describes the tint or type of ink, e.g. brown, or other writing medium, e.g. pencil
-  attribute medium {
-    list { data.enumerated+ }
-  }?
-att.handFeatures.attribute.scope =
-  
-  ## specifies how widely this hand is used in the manuscript.
-  attribute scope {
-    
-    ## only this hand is used throughout the manuscript
-    "sole"
-    | 
-      ## this hand is used through most of the manuscript
-      "major"
-    | 
-      ## this hand is used occasionally in the manuscript
-      "minor"
-  }?
-att.internetMedia.attributes = att.internetMedia.attribute.mimeType
-att.internetMedia.attribute.mimeType =
-  
-  ## (MIME media type) specifies the applicable multimedia internet mail extension (MIME) media type
-  attribute mimeType {
-    list { data.word+ }
-  }?
-att.media.attributes =
-  att.internetMedia.attributes,
-  att.media.attribute.width,
-  att.media.attribute.height,
-  att.media.attribute.scale
-att.media.attribute.width =
-  
-  ## Where the media are displayed, indicates the display width
-  attribute width { data.outputMeasurement }?
-att.media.attribute.height =
-  
-  ## Where the media are displayed, indicates the display height
-  attribute height { data.outputMeasurement }?
-att.media.attribute.scale =
-  
-  ## Where the media are displayed, indicates a scale factor to be applied when generating the desired display size
-  attribute scale { data.numeric }?
-att.resourced.attributes = att.resourced.attribute.url
-att.resourced.attribute.url =
-  
-  ## (uniform resource locator) specifies the URL from which the media concerned may be obtained.
-  attribute url { data.pointer }
-att.interpLike.attributes =
-  att.responsibility.attributes,
-  att.interpLike.attribute.type,
-  att.interpLike.attribute.inst
-att.interpLike.attribute.type =
-  
-  ## indicates what kind of phenomenon is being noted in the passage.
-  ## Sample values include: 1] image; 2] character; 3] theme; 4] allusion
-  attribute type { data.enumerated }?
-att.interpLike.attribute.inst =
-  
-  ## (instances) points to instances of the analysis or interpretation represented by the current element.
-  attribute inst {
-    list { data.pointer+ }
-  }?
-att.measurement.attributes =
-  att.measurement.attribute.unit,
-  att.measurement.attribute.quantity,
-  att.measurement.attribute.commodity
-att.measurement.attribute.unit =
-  
-  ## indicates the units used for the measurement, usually using the standard symbol for the desired units.
-  ## Suggested values include: 1] m(metre) ; 2] kg(kilogram) ; 3] s(second) ; 4] Hz(hertz) ; 5] Pa(pascal) ; 6] Ω(ohm) ; 7] L(litre) ; 8] t(tonne) ; 9] ha(hectare) ; 10] Å(ångström) ; 11] mL(millilitre) ; 12] cm(centimetre) ; 13] dB(decibel) ; 14] kbit(kilobit) ; 15] Kibit(kibibit) ; 16] kB(kilobyte) ; 17] KiB(kibibyte) ; 18] MB(megabyte) ; 19] MiB(mebibyte) 
-  attribute unit {
-    
-    ## (metre) SI base unit of length
-    "m"
-    | 
-      ## (kilogram) SI base unit of mass
-      "kg"
-    | 
-      ## (second) SI base unit of time
-      "s"
-    | 
-      ## (hertz) SI unit of frequency
-      "Hz"
-    | 
-      ## (pascal) SI unit of pressure or stress
-      "Pa"
-    | 
-      ## (ohm) SI unit of electric resistance
-      "Ω"
-    | 
-      ## (litre) 1 dm³
-      "L"
-    | 
-      ## (tonne) 10³ kg
-      "t"
-    | 
-      ## (hectare) 1 hm²
-      "ha"
-    | 
-      ## (ångström) 10⁻¹⁰ m
-      "â„«"
-    | 
-      ## (millilitre) 
-      "mL"
-    | 
-      ## (centimetre) 
-      "cm"
-    | 
-      ## (decibel) see remarks, below
-      "dB"
-    | 
-      ## (kilobit) 10³ or 1000 bits
-      "kbit"
-    | 
-      ## (kibibit) 2¹⁰ or 1024 bits
-      "Kibit"
-    | 
-      ## (kilobyte) 10³ or 1000 bytes
-      "kB"
-    | 
-      ## (kibibyte) 2¹⁰ or 1024 bytes
-      "KiB"
-    | 
-      ## (megabyte) 10⁶ or 1 000 000 bytes
-      "MB"
-    | 
-      ## (mebibyte) 2²⁰ or 1 048 576 bytes
-      "MiB"
-    | xsd:Name
-  }?
-att.measurement.attribute.quantity =
-  
-  ## specifies the number of the specified units that comprise the measurement
-  attribute quantity { data.numeric }?
-att.measurement.attribute.commodity =
-  
-  ## indicates the substance that is being measured
-  attribute commodity {
-    list { data.word+ }
-  }?
-att.naming.attributes =
-  att.canonical.attributes,
-  att.naming.attribute.role,
-  att.naming.attribute.nymRef
-att.naming.attribute.role =
-  
-  ## may be used to specify further information about the entity referenced by this name in the form of a set of whitespace-separated values, for example the occupation of a person, or the status of a place.
-  attribute role {
-    list { data.enumerated+ }
-  }?
-att.naming.attribute.nymRef =
-  
-  ## (reference to the canonical name) provides a means of locating the canonical form (nym) of the names associated with the object named by the element bearing it.
-  attribute nymRef {
-    list { data.pointer+ }
-  }?
-att.placement.attributes = att.placement.attribute.place
-att.placement.attribute.place =
-  
-  ## specifies where this item is placed
-  ## Suggested values include: 1] below; 2] bottom; 3] margin; 4] top; 5] opposite; 6] overleaf; 7] above; 8] end; 9] inline; 10] inspace
-  attribute place {
-    list {
-      (
-       ## below the line
-       "below"
-       | 
-         ## at the foot of the page
-         "bottom"
-       | 
-         ## in the margin (left, right, or both)
-         "margin"
-       | 
-         ## at the top of the page
-         "top"
-       | 
-         ## on the opposite, i.e. facing, page
-         "opposite"
-       | 
-         ## on the other side of the leaf
-         "overleaf"
-       | 
-         ## above the line
-         "above"
-       | 
-         ## at the end of e.g. chapter or volume.
-         "end"
-       | 
-         ## within the body of the text.
-         "inline"
-       | 
-         ## in a predefined space, for example left by an earlier scribe.
-         "inspace"
-       | xsd:Name)+
-    }
-  }?
-att.typed.attributes =
-  att.typed.attribute.type, att.typed.attribute.subtype
-att.typed.attribute.type =
-  
-  ## characterizes the element in some sense, using any convenient classification scheme or typology.
-  attribute type { data.enumerated }?
-att.typed.attribute.subtype =
-  
-  ## provides a sub-categorization of the element, if needed
-  attribute subtype { data.enumerated }?
-sch:pattern [
-  id = "att.typed-subtypeTyped-constraint-2"
-  "\x{a}" ~
-  "      "
-  sch:rule [
-    context = "*[@subtype]"
-    "\x{a}" ~
-    "        "
-    sch:assert [
-      test = "@type"
-      "The "
-      sch:name [ ]
-      " element should not be categorized in detail with @subtype\x{a}" ~
-      " unless also categorized in general with @type"
-    ]
-    "\x{a}" ~
-    "      "
-  ]
-  "\x{a}" ~
-  "   "
-]
-att.pointing.attributes =
-  att.pointing.attribute.targetLang,
-  att.pointing.attribute.target,
-  att.pointing.attribute.evaluate
-att.pointing.attribute.targetLang =
-  
-  ## specifies the language of the content to be found at the destination referenced by target, using a language tag generated according to BCP 47.
-  attribute targetLang { data.language }?
-sch:pattern [
-  id = "att.pointing-targetLang-targetLang-constraint-3"
-  "\x{a}" ~
-  "      "
-  sch:rule [
-    context = "tei:*[not(self::tei:schemaSpec)][@targetLang]"
-    "\x{a}" ~
-    "            "
-    sch:assert [
-      test = "count(@target)"
-      "@targetLang can only be used if @target is specified."
-    ]
-    "\x{a}" ~
-    "          "
-  ]
-  "\x{a}" ~
-  "   "
-]
-att.pointing.attribute.target =
-  
-  ## specifies the destination of the reference by supplying one or more URI References
-  attribute target {
-    list { data.pointer+ }
-  }?
-att.pointing.attribute.evaluate =
-  
-  ## specifies the intended meaning when the target of a pointer is itself a pointer.
-  attribute evaluate {
-    
-    ## if the element pointed to is itself a pointer, then the target of that pointer will be taken, and so on, until an element is found which is not a pointer.
-    "all"
-    | 
-      ## if the element pointed to is itself a pointer, then its target (whether a pointer or not) is taken as the target of this pointer.
-      "one"
-    | 
-      ## no further evaluation of targets is carried out beyond that needed to find the element specified in the pointer's target.
-      "none"
-  }?
-att.pointing.group.attributes =
-  att.pointing.attributes,
-  att.typed.attributes,
-  att.pointing.group.attribute.domains,
-  att.pointing.group.attribute.targFunc
-att.pointing.group.attribute.domains =
-  
-  ## optionally specifies the identifiers of the elements within which all elements indicated by the contents of this element lie.
-  attribute domains {
-    list { data.pointer, data.pointer, data.pointer* }
-  }?
-att.pointing.group.attribute.targFunc =
-  
-  ## (target function) describes the function of each of the values of the target attribute of the enclosed link, join, or alt tags.
-  attribute targFunc {
-    list { data.word, data.word, data.word* }
-  }?
-att.readFrom.attributes = att.readFrom.attribute.source
-att.readFrom.attribute.source =
-  
-  ## specifies the source from which declarations and definitions for the components of the object being defined may be obtained.
-  attribute source { data.pointer }?
-att.scoping.attributes =
-  att.scoping.attribute.target, att.scoping.attribute.match
-att.scoping.attribute.target =
-  
-  ## points at one or several elements or sets of elements by means of one or more data pointers, using the URI syntax.
-  attribute target {
-    list { data.pointer+ }
-  }?
-att.scoping.attribute.match =
-  
-  ## supplies an arbitrary XPath expression using the syntax defined in  which identifies a set of nodes, selected within the context identified by the target attribute if this is supplied, or within the context of the element bearing this attribute if it is not.
-  attribute match { text }?
-att.segLike.attributes =
-  att.metrical.attributes,
-  att.datcat.attributes,
-  att.fragmentable.attributes,
-  att.segLike.attribute.function
-att.segLike.attribute.function =
-  
-  ## characterizes the function of the segment.
-  attribute function { data.enumerated }?
-att.sortable.attributes = att.sortable.attribute.sortKey
-att.sortable.attribute.sortKey =
-  
-  ## supplies the sort key for this element in an index, list or group which contains it.
-  attribute sortKey { data.word }?
-att.edition.attributes =
-  att.edition.attribute.ed, att.edition.attribute.edRef
-att.edition.attribute.ed =
-  
-  ## (edition) supplies a sigil or other arbitrary identifier for the source edition in which the associated feature (for example, a page, column, or line break) occurs at this point in the text.
-  attribute ed {
-    list { data.word+ }
-  }?
-att.edition.attribute.edRef =
-  
-  ## (edition reference) provides a pointer to the source edition in which the associated feature (for example, a page, column, or line break) occurs at this point in the text.
-  attribute edRef {
-    list { data.pointer+ }
-  }?
-att.spanning.attributes = att.spanning.attribute.spanTo
-att.spanning.attribute.spanTo =
-  
-  ## indicates the end of a span initiated by the element bearing this attribute.
-  attribute spanTo { data.pointer }?
-sch:pattern [
-  id = "att.spanning-spanTo-spanTo-2-constraint-4"
-  "\x{a}" ~
-  "      "
-  sch:rule [
-    context = "tei:*[@spanTo]"
-    "\x{a}" ~
-    "            "
-    sch:assert [
-      test =
-        "id(substring(@spanTo,2)) and following::*[@xml:id=substring(current()/@spanTo,2)]"
-      "\x{a}" ~
-      "The element indicated by @spanTo ("
-      sch:value-of [ select = "@spanTo" ]
-      ") must follow the current element "
-      sch:name [ ]
-      "\x{a}" ~
-      "                  "
-    ]
-    "\x{a}" ~
-    "          "
-  ]
-  "\x{a}" ~
-  "   "
-]
-att.styleDef.attributes =
-  att.styleDef.attribute.scheme, att.styleDef.attribute.schemeVersion
-att.styleDef.attribute.scheme =
-  
-  ## identifies the language used to describe the rendition.
-  attribute scheme {
-    
-    ## Cascading Stylesheet Language
-    "css"
-    | 
-      ## Extensible Stylesheet Language Formatting Objects
-      "xslfo"
-    | 
-      ## Informal free text description
-      "free"
-    | 
-      ## A user-defined rendition description language
-      "other"
-  }?
-att.styleDef.attribute.schemeVersion =
-  
-  ## supplies a version number for the style language provided in scheme.
-  attribute schemeVersion { data.versionNumber }?
-sch:pattern [
-  id =
-    "att.styleDef-schemeVersion-schemeVersionRequiresScheme-constraint-5"
-  "\x{a}" ~
-  "      "
-  sch:rule [
-    context = "tei:*[@schemeVersion]"
-    "\x{a}" ~
-    "            "
-    sch:assert [
-      test = "@scheme and not(@scheme = 'free')"
-      "\x{a}" ~
-      "              @schemeVersion can only be used if @scheme is specified.\x{a}" ~
-      "            "
-    ]
-    "\x{a}" ~
-    "          "
-  ]
-  "\x{a}" ~
-  "   "
-]
-att.tableDecoration.attributes =
-  att.tableDecoration.attribute.role,
-  att.tableDecoration.attribute.rows,
-  att.tableDecoration.attribute.cols
-att.tableDecoration.attribute.role =
-  
-  ## indicates the kind of information held in this cell or in each cell of this row.
-  ## Suggested values include: 1] label; 2] data
-  [ a:defaultValue = "data" ]
-  attribute role {
-    
-    ## labelling or descriptive information only.
-    "label"
-    | 
-      ## data values.
-      "data"
-    | xsd:Name
-  }?
-att.tableDecoration.attribute.rows =
-  
-  ## indicates the number of rows occupied by this cell or row.
-  [ a:defaultValue = "1" ] attribute rows { data.count }?
-att.tableDecoration.attribute.cols =
-  
-  ## (columns) indicates the number of columns occupied by this cell or row.
-  [ a:defaultValue = "1" ] attribute cols { data.count }?
-att.timed.attributes =
-  att.duration.attributes,
-  att.timed.attribute.start,
-  att.timed.attribute.end
-att.timed.attribute.start =
-  
-  ## indicates the location within a temporal alignment at which this element begins.
-  attribute start { data.pointer }?
-att.timed.attribute.end =
-  
-  ## indicates the location within a temporal alignment at which this element ends.
-  attribute end { data.pointer }?
-att.transcriptional.attributes =
-  att.editLike.attributes,
-  att.transcriptional.attribute.hand,
-  att.transcriptional.attribute.status,
-  att.transcriptional.attribute.cause,
-  att.transcriptional.attribute.seq
-att.transcriptional.attribute.hand =
-  
-  ## indicates the hand of the agent which made the intervention.
-  attribute hand { data.pointer }?
-att.transcriptional.attribute.status =
-  
-  ## indicates the effect of the intervention, for example in the case of a deletion, strikeouts which include too much or too little text, or in the case of an addition, an insertion which duplicates some of the text already present.
-  ## Sample values include: 1] duplicate; 2] duplicate-partial; 3] excessStart; 4] excessEnd; 5] shortStart; 6] shortEnd; 7] partial; 8] unremarkable
-  [ a:defaultValue = "unremarkable" ]
-  attribute status { data.enumerated }?
-att.transcriptional.attribute.cause =
-  
-  ## documents the presumed cause for the intervention.
-  attribute cause {
-    
-    ## repeated for the purpose of fixation
-    "fix"
-    | 
-      ## repeated to clarify a previously illegible or badly written text or mark
-      "unclear"
-  }?
-att.transcriptional.attribute.seq =
-  
-  ## (sequence) assigns a sequence number related to the order in which the encoded features carrying this attribute are believed to have occurred.
-  attribute seq { data.count }?
-att.translatable.attributes = att.translatable.attribute.versionDate
-att.translatable.attribute.versionDate =
-  
-  ## specifies the date on which the source text was extracted and sent to the translator
-  attribute versionDate { data.temporal.w3c }?
-att.citing.attributes =
-  att.citing.attribute.unit,
-  att.citing.attribute.from,
-  att.citing.attribute.to
-att.citing.attribute.unit =
-  
-  ## identifies the unit of information conveyed by the element, e.g. columns, pages, volume.
-  ## Suggested values include: 1] volume; 2] issue; 3] page; 4] line; 5] chapter; 6] part; 7] column
-  attribute unit {
-    
-    ## the element contains a volume number.
-    "volume"
-    | 
-      ## the element contains an issue number, or volume and issue numbers.
-      "issue"
-    | 
-      ## the element contains a page number or page range.
-      "page"
-    | 
-      ## the element contains a line number or line range.
-      "line"
-    | 
-      ## the element contains a chapter indication (number and/or title)
-      "chapter"
-    | 
-      ## the element identifies a part of a book or collection.
-      "part"
-    | 
-      ## the element identifies a column.
-      "column"
-    | xsd:Name
-  }?
-att.citing.attribute.from =
-  
-  ## specifies the starting point of the range of units indicated by the unit attribute.
-  attribute from { data.word }?
-att.citing.attribute.to =
-  
-  ## specifies the end-point of the range of units indicated by the unit attribute.
-  attribute to { data.word }?
-model.nameLike.agent = name | orgName | persName
-model.nameLike.agent_alternation = name | orgName | persName
-model.nameLike.agent_sequence = name, orgName, persName
-model.nameLike.agent_sequenceOptional = name?, orgName?, persName?
-model.nameLike.agent_sequenceOptionalRepeatable =
-  name*, orgName*, persName*
-model.nameLike.agent_sequenceRepeatable = name+, orgName+, persName+
-model.segLike = seg | s | cl | phr | w | m | c | pc
-model.segLike_alternation = seg | s | cl | phr | w | m | c | pc
-model.segLike_sequence = seg, s, cl, phr, w, m, c, pc
-model.segLike_sequenceOptional = seg?, s?, cl?, phr?, w?, m?, c?, pc?
-model.segLike_sequenceOptionalRepeatable =
-  seg*, s*, cl*, phr*, w*, m*, c*, pc*
-model.segLike_sequenceRepeatable = seg+, s+, cl+, phr+, w+, m+, c+, pc+
-model.hiLike = hi
-model.hiLike_alternation = hi
-model.hiLike_sequence = hi
-model.hiLike_sequenceOptional = hi?
-model.hiLike_sequenceOptionalRepeatable = hi*
-model.hiLike_sequenceRepeatable = hi+
-model.emphLike =
-  foreign
-  | emph
-  | distinct
-  | mentioned
-  | soCalled
-  | gloss
-  | term
-  | title
-  | code
-  | ident
-model.emphLike_alternation =
-  foreign
-  | emph
-  | distinct
-  | mentioned
-  | soCalled
-  | gloss
-  | term
-  | title
-  | code
-  | ident
-model.emphLike_sequence =
-  foreign,
-  emph,
-  distinct,
-  mentioned,
-  soCalled,
-  gloss,
-  term,
-  title,
-  code,
-  ident
-model.emphLike_sequenceOptional =
-  foreign?,
-  emph?,
-  distinct?,
-  mentioned?,
-  soCalled?,
-  gloss?,
-  term?,
-  title?,
-  code?,
-  ident?
-model.emphLike_sequenceOptionalRepeatable =
-  foreign*,
-  emph*,
-  distinct*,
-  mentioned*,
-  soCalled*,
-  gloss*,
-  term*,
-  title*,
-  code*,
-  ident*
-model.emphLike_sequenceRepeatable =
-  foreign+,
-  emph+,
-  distinct+,
-  mentioned+,
-  soCalled+,
-  gloss+,
-  term+,
-  title+,
-  code+,
-  ident+
-model.highlighted = model.hiLike | model.emphLike
-model.highlighted_alternation =
-  model.hiLike_alternation | model.emphLike_alternation
-model.highlighted_sequence =
-  model.hiLike_sequence, model.emphLike_sequence
-model.highlighted_sequenceOptional =
-  model.hiLike_sequenceOptional?, model.emphLike_sequenceOptional?
-model.highlighted_sequenceOptionalRepeatable =
-  model.hiLike_sequenceOptionalRepeatable*,
-  model.emphLike_sequenceOptionalRepeatable*
-model.highlighted_sequenceRepeatable =
-  model.hiLike_sequenceRepeatable+, model.emphLike_sequenceRepeatable+
-model.dateLike = date | time
-model.dateLike_alternation = date | time
-model.dateLike_sequence = date, time
-model.dateLike_sequenceOptional = date?, time?
-model.dateLike_sequenceOptionalRepeatable = date*, time*
-model.dateLike_sequenceRepeatable = date+, time+
-model.dimLike = height | depth | width
-model.dimLike_alternation = height | depth | width
-model.dimLike_sequence = height, depth, width
-model.dimLike_sequenceOptional = height?, depth?, width?
-model.dimLike_sequenceOptionalRepeatable = height*, depth*, width*
-model.dimLike_sequenceRepeatable = height+, depth+, width+
-model.measureLike =
-  num | measure | measureGrp | dim | height | depth | width | geo
-model.measureLike_alternation =
-  num | measure | measureGrp | dim | height | depth | width | geo
-model.measureLike_sequence =
-  num, measure, measureGrp, dim, height, depth, width, geo
-model.measureLike_sequenceOptional =
-  num?, measure?, measureGrp?, dim?, height?, depth?, width?, geo?
-model.measureLike_sequenceOptionalRepeatable =
-  num*, measure*, measureGrp*, dim*, height*, depth*, width*, geo*
-model.measureLike_sequenceRepeatable =
-  num+, measure+, measureGrp+, dim+, height+, depth+, width+, geo+
-model.egLike = eg | egXML
-model.egLike_alternation = eg | egXML
-model.egLike_sequence = eg, egXML
-model.egLike_sequenceOptional = eg?, egXML?
-model.egLike_sequenceOptionalRepeatable = eg*, egXML*
-model.egLike_sequenceRepeatable = eg+, egXML+
-model.graphicLike = media | graphic | binaryObject | formula
-model.graphicLike_alternation = media | graphic | binaryObject | formula
-model.graphicLike_sequence = media, graphic, binaryObject, formula
-model.graphicLike_sequenceOptional =
-  media?, graphic?, binaryObject?, formula?
-model.graphicLike_sequenceOptionalRepeatable =
-  media*, graphic*, binaryObject*, formula*
-model.graphicLike_sequenceRepeatable =
-  media+, graphic+, binaryObject+, formula+
-model.offsetLike = offset | geogFeat
-model.offsetLike_alternation = offset | geogFeat
-model.offsetLike_sequence = offset, geogFeat
-model.offsetLike_sequenceOptional = offset?, geogFeat?
-model.offsetLike_sequenceOptionalRepeatable = offset*, geogFeat*
-model.offsetLike_sequenceRepeatable = offset+, geogFeat+
-model.pPart.msdesc =
-  catchwords
-  | dimensions
-  | heraldry
-  | locus
-  | locusGrp
-  | material
-  | objectType
-  | origDate
-  | origPlace
-  | secFol
-  | signatures
-  | stamp
-  | watermark
-model.pPart.msdesc_alternation =
-  catchwords
-  | dimensions
-  | heraldry
-  | locus
-  | locusGrp
-  | material
-  | objectType
-  | origDate
-  | origPlace
-  | secFol
-  | signatures
-  | stamp
-  | watermark
-model.pPart.msdesc_sequence =
-  catchwords,
-  dimensions,
-  heraldry,
-  locus,
-  locusGrp,
-  material,
-  objectType,
-  origDate,
-  origPlace,
-  secFol,
-  signatures,
-  stamp,
-  watermark
-model.pPart.msdesc_sequenceOptional =
-  catchwords?,
-  dimensions?,
-  heraldry?,
-  locus?,
-  locusGrp?,
-  material?,
-  objectType?,
-  origDate?,
-  origPlace?,
-  secFol?,
-  signatures?,
-  stamp?,
-  watermark?
-model.pPart.msdesc_sequenceOptionalRepeatable =
-  catchwords*,
-  dimensions*,
-  heraldry*,
-  locus*,
-  locusGrp*,
-  material*,
-  objectType*,
-  origDate*,
-  origPlace*,
-  secFol*,
-  signatures*,
-  stamp*,
-  watermark*
-model.pPart.msdesc_sequenceRepeatable =
-  catchwords+,
-  dimensions+,
-  heraldry+,
-  locus+,
-  locusGrp+,
-  material+,
-  objectType+,
-  origDate+,
-  origPlace+,
-  secFol+,
-  signatures+,
-  stamp+,
-  watermark+
-model.pPart.editorial = choice | abbr | expan | ex | am | subst
-model.pPart.editorial_alternation =
-  choice | abbr | expan | ex | am | subst
-model.pPart.editorial_sequence = choice, abbr, expan, ex, am, subst
-model.pPart.editorial_sequenceOptional =
-  choice?, abbr?, expan?, ex?, am?, subst?
-model.pPart.editorial_sequenceOptionalRepeatable =
-  choice*, abbr*, expan*, ex*, am*, subst*
-model.pPart.editorial_sequenceRepeatable =
-  choice+, abbr+, expan+, ex+, am+, subst+
-model.pPart.transcriptional =
-  sic
-  | corr
-  | reg
-  | orig
-  | add
-  | del
-  | unclear
-  | damage
-  | handShift
-  | restore
-  | supplied
-  | surplus
-  | mod
-  | redo
-  | retrace
-  | undo
-  | app
-model.pPart.transcriptional_alternation =
-  sic
-  | corr
-  | reg
-  | orig
-  | add
-  | del
-  | unclear
-  | damage
-  | handShift
-  | restore
-  | supplied
-  | surplus
-  | mod
-  | redo
-  | retrace
-  | undo
-  | app
-model.pPart.transcriptional_sequence =
-  sic,
-  corr,
-  reg,
-  orig,
-  add,
-  del,
-  unclear,
-  damage,
-  handShift,
-  restore,
-  supplied,
-  surplus,
-  mod,
-  redo,
-  retrace,
-  undo,
-  app
-model.pPart.transcriptional_sequenceOptional =
-  sic?,
-  corr?,
-  reg?,
-  orig?,
-  add?,
-  del?,
-  unclear?,
-  damage?,
-  handShift?,
-  restore?,
-  supplied?,
-  surplus?,
-  mod?,
-  redo?,
-  retrace?,
-  undo?,
-  app?
-model.pPart.transcriptional_sequenceOptionalRepeatable =
-  sic*,
-  corr*,
-  reg*,
-  orig*,
-  add*,
-  del*,
-  unclear*,
-  damage*,
-  handShift*,
-  restore*,
-  supplied*,
-  surplus*,
-  mod*,
-  redo*,
-  retrace*,
-  undo*,
-  app*
-model.pPart.transcriptional_sequenceRepeatable =
-  sic+,
-  corr+,
-  reg+,
-  orig+,
-  add+,
-  del+,
-  unclear+,
-  damage+,
-  handShift+,
-  restore+,
-  supplied+,
-  surplus+,
-  mod+,
-  redo+,
-  retrace+,
-  undo+,
-  app+
-model.pPart.edit = model.pPart.editorial | model.pPart.transcriptional
-model.pPart.edit_alternation =
-  model.pPart.editorial_alternation
-  | model.pPart.transcriptional_alternation
-model.pPart.edit_sequence =
-  model.pPart.editorial_sequence, model.pPart.transcriptional_sequence
-model.pPart.edit_sequenceOptional =
-  model.pPart.editorial_sequenceOptional?,
-  model.pPart.transcriptional_sequenceOptional?
-model.pPart.edit_sequenceOptionalRepeatable =
-  model.pPart.editorial_sequenceOptionalRepeatable*,
-  model.pPart.transcriptional_sequenceOptionalRepeatable*
-model.pPart.edit_sequenceRepeatable =
-  model.pPart.editorial_sequenceRepeatable+,
-  model.pPart.transcriptional_sequenceRepeatable+
-model.linePart =
-  model.segLike
-  | model.hiLike
-  | model.pPart.transcriptional
-  | choice
-  | zone
-  | line
-model.linePart_alternation =
-  model.segLike_alternation
-  | model.hiLike_alternation
-  | model.pPart.transcriptional_alternation
-  | choice
-  | zone
-  | line
-model.linePart_sequence =
-  model.segLike_sequence,
-  model.hiLike_sequence,
-  model.pPart.transcriptional_sequence,
-  choice,
-  zone,
-  line
-model.linePart_sequenceOptional =
-  model.segLike_sequenceOptional?,
-  model.hiLike_sequenceOptional?,
-  model.pPart.transcriptional_sequenceOptional?,
-  choice?,
-  zone?,
-  line?
-model.linePart_sequenceOptionalRepeatable =
-  model.segLike_sequenceOptionalRepeatable*,
-  model.hiLike_sequenceOptionalRepeatable*,
-  model.pPart.transcriptional_sequenceOptionalRepeatable*,
-  choice*,
-  zone*,
-  line*
-model.linePart_sequenceRepeatable =
-  model.segLike_sequenceRepeatable+,
-  model.hiLike_sequenceRepeatable+,
-  model.pPart.transcriptional_sequenceRepeatable+,
-  choice+,
-  zone+,
-  line+
-model.ptrLike = ptr | ref
-model.ptrLike_alternation = ptr | ref
-model.ptrLike_sequence = ptr, ref
-model.ptrLike_sequenceOptional = ptr?, ref?
-model.ptrLike_sequenceOptionalRepeatable = ptr*, ref*
-model.ptrLike_sequenceRepeatable = ptr+, ref+
-model.lPart = caesura | rhyme
-model.lPart_alternation = caesura | rhyme
-model.lPart_sequence = caesura, rhyme
-model.lPart_sequenceOptional = caesura?, rhyme?
-model.lPart_sequenceOptionalRepeatable = caesura*, rhyme*
-model.lPart_sequenceRepeatable = caesura+, rhyme+
-model.global.meta =
-  index
-  | substJoin
-  | listTranspose
-  | link
-  | linkGrp
-  | timeline
-  | join
-  | joinGrp
-  | alt
-  | altGrp
-  | span
-  | spanGrp
-  | interp
-  | interpGrp
-  | fs
-  | fLib
-  | fvLib
-  | precision
-  | certainty
-  | respons
-model.global.meta_alternation =
-  index
-  | substJoin
-  | listTranspose
-  | link
-  | linkGrp
-  | timeline
-  | join
-  | joinGrp
-  | alt
-  | altGrp
-  | span
-  | spanGrp
-  | interp
-  | interpGrp
-  | fs
-  | fLib
-  | fvLib
-  | precision
-  | certainty
-  | respons
-model.global.meta_sequence =
-  index,
-  substJoin,
-  listTranspose,
-  link,
-  linkGrp,
-  timeline,
-  join,
-  joinGrp,
-  alt,
-  altGrp,
-  span,
-  spanGrp,
-  interp,
-  interpGrp,
-  fs,
-  fLib,
-  fvLib,
-  precision,
-  certainty,
-  respons
-model.global.meta_sequenceOptional =
-  index?,
-  substJoin?,
-  listTranspose?,
-  link?,
-  linkGrp?,
-  timeline?,
-  join?,
-  joinGrp?,
-  alt?,
-  altGrp?,
-  span?,
-  spanGrp?,
-  interp?,
-  interpGrp?,
-  fs?,
-  fLib?,
-  fvLib?,
-  precision?,
-  certainty?,
-  respons?
-model.global.meta_sequenceOptionalRepeatable =
-  index*,
-  substJoin*,
-  listTranspose*,
-  link*,
-  linkGrp*,
-  timeline*,
-  join*,
-  joinGrp*,
-  alt*,
-  altGrp*,
-  span*,
-  spanGrp*,
-  interp*,
-  interpGrp*,
-  fs*,
-  fLib*,
-  fvLib*,
-  precision*,
-  certainty*,
-  respons*
-model.global.meta_sequenceRepeatable =
-  index+,
-  substJoin+,
-  listTranspose+,
-  link+,
-  linkGrp+,
-  timeline+,
-  join+,
-  joinGrp+,
-  alt+,
-  altGrp+,
-  span+,
-  spanGrp+,
-  interp+,
-  interpGrp+,
-  fs+,
-  fLib+,
-  fvLib+,
-  precision+,
-  certainty+,
-  respons+
-model.milestoneLike = milestone | gb | pb | lb | cb | fw | anchor
-model.milestoneLike_alternation =
-  milestone | gb | pb | lb | cb | fw | anchor
-model.milestoneLike_sequence = milestone, gb, pb, lb, cb, fw, anchor
-model.milestoneLike_sequenceOptional =
-  milestone?, gb?, pb?, lb?, cb?, fw?, anchor?
-model.milestoneLike_sequenceOptionalRepeatable =
-  milestone*, gb*, pb*, lb*, cb*, fw*, anchor*
-model.milestoneLike_sequenceRepeatable =
-  milestone+, gb+, pb+, lb+, cb+, fw+, anchor+
-model.gLike = g
-model.gLike_alternation = g
-model.gLike_sequence = g
-model.gLike_sequenceOptional = g?
-model.gLike_sequenceOptionalRepeatable = g*
-model.gLike_sequenceRepeatable = g+
-model.oddDecl =
-  moduleSpec
-  | specGrp
-  | specGrpRef
-  | elementSpec
-  | classSpec
-  | macroSpec
-  | listRef
-  | constraintSpec
-model.oddDecl_alternation =
-  moduleSpec
-  | specGrp
-  | specGrpRef
-  | elementSpec
-  | classSpec
-  | macroSpec
-  | listRef
-  | constraintSpec
-model.oddDecl_sequence =
-  moduleSpec,
-  specGrp,
-  specGrpRef,
-  elementSpec,
-  classSpec,
-  macroSpec,
-  listRef,
-  constraintSpec
-model.oddDecl_sequenceOptional =
-  moduleSpec?,
-  specGrp?,
-  specGrpRef?,
-  elementSpec?,
-  classSpec?,
-  macroSpec?,
-  listRef?,
-  constraintSpec?
-model.oddDecl_sequenceOptionalRepeatable =
-  moduleSpec*,
-  specGrp*,
-  specGrpRef*,
-  elementSpec*,
-  classSpec*,
-  macroSpec*,
-  listRef*,
-  constraintSpec*
-model.oddDecl_sequenceRepeatable =
-  moduleSpec+,
-  specGrp+,
-  specGrpRef+,
-  elementSpec+,
-  classSpec+,
-  macroSpec+,
-  listRef+,
-  constraintSpec+
-model.oddRef = classRef | elementRef | macroRef | moduleRef
-model.oddRef_alternation = classRef | elementRef | macroRef | moduleRef
-model.oddRef_sequence = classRef, elementRef, macroRef, moduleRef
-model.oddRef_sequenceOptional =
-  classRef?, elementRef?, macroRef?, moduleRef?
-model.oddRef_sequenceOptionalRepeatable =
-  classRef*, elementRef*, macroRef*, moduleRef*
-model.oddRef_sequenceRepeatable =
-  classRef+, elementRef+, macroRef+, moduleRef+
-model.phrase.xml = att | gi | tag | val
-model.phrase.xml_alternation = att | gi | tag | val
-model.phrase.xml_sequence = att, gi, tag, val
-model.phrase.xml_sequenceOptional = att?, gi?, tag?, val?
-model.phrase.xml_sequenceOptionalRepeatable = att*, gi*, tag*, val*
-model.phrase.xml_sequenceRepeatable = att+, gi+, tag+, val+
-model.specDescLike = specList | specDesc
-model.specDescLike_alternation = specList | specDesc
-model.specDescLike_sequence = specList, specDesc
-model.specDescLike_sequenceOptional = specList?, specDesc?
-model.specDescLike_sequenceOptionalRepeatable = specList*, specDesc*
-model.specDescLike_sequenceRepeatable = specList+, specDesc+
-model.biblLike = biblFull | bibl | biblStruct | listBibl | msDesc
-model.biblLike_alternation =
-  biblFull | bibl | biblStruct | listBibl | msDesc
-model.biblLike_sequence = biblFull, bibl, biblStruct, listBibl, msDesc
-model.biblLike_sequenceOptional =
-  biblFull?, bibl?, biblStruct?, listBibl?, msDesc?
-model.biblLike_sequenceOptionalRepeatable =
-  biblFull*, bibl*, biblStruct*, listBibl*, msDesc*
-model.biblLike_sequenceRepeatable =
-  biblFull+, bibl+, biblStruct+, listBibl+, msDesc+
-model.headLike = head
-model.headLike_alternation = head
-model.headLike_sequence = head
-model.headLike_sequenceOptional = head?
-model.headLike_sequenceOptionalRepeatable = head*
-model.headLike_sequenceRepeatable = head+
-model.labelLike = desc | label
-model.labelLike_alternation = desc | label
-model.labelLike_sequence = desc, label
-model.labelLike_sequenceOptional = desc?, label?
-model.labelLike_sequenceOptionalRepeatable = desc*, label*
-model.labelLike_sequenceRepeatable = desc+, label+
-model.listLike =
-  \list
-  | listApp
-  | listWit
-  | listOrg
-  | listEvent
-  | listPerson
-  | listPlace
-  | listNym
-  | table
-model.listLike_alternation =
-  \list
-  | listApp
-  | listWit
-  | listOrg
-  | listEvent
-  | listPerson
-  | listPlace
-  | listNym
-  | table
-model.listLike_sequence =
-  \list,
-  listApp,
-  listWit,
-  listOrg,
-  listEvent,
-  listPerson,
-  listPlace,
-  listNym,
-  table
-model.listLike_sequenceOptional =
-  \list?,
-  listApp?,
-  listWit?,
-  listOrg?,
-  listEvent?,
-  listPerson?,
-  listPlace?,
-  listNym?,
-  table?
-model.listLike_sequenceOptionalRepeatable =
-  \list*,
-  listApp*,
-  listWit*,
-  listOrg*,
-  listEvent*,
-  listPerson*,
-  listPlace*,
-  listNym*,
-  table*
-model.listLike_sequenceRepeatable =
-  \list+,
-  listApp+,
-  listWit+,
-  listOrg+,
-  listEvent+,
-  listPerson+,
-  listPlace+,
-  listNym+,
-  table+
-model.noteLike = note | witDetail
-model.noteLike_alternation = note | witDetail
-model.noteLike_sequence = note, witDetail
-model.noteLike_sequenceOptional = note?, witDetail?
-model.noteLike_sequenceOptionalRepeatable = note*, witDetail*
-model.noteLike_sequenceRepeatable = note+, witDetail+
-model.lLike = l
-model.lLike_alternation = l
-model.lLike_sequence = l
-model.lLike_sequenceOptional = l?
-model.lLike_sequenceOptionalRepeatable = l*
-model.lLike_sequenceRepeatable = l+
-model.pLike = p | ab
-model.pLike_alternation = p | ab
-model.pLike_sequence = p, ab
-model.pLike_sequenceOptional = p?, ab?
-model.pLike_sequenceOptionalRepeatable = p*, ab*
-model.pLike_sequenceRepeatable = p+, ab+
-model.stageLike = stage | move | view | camera | sound | caption | tech
-model.stageLike_alternation =
-  stage | move | view | camera | sound | caption | tech
-model.stageLike_sequence =
-  stage, move, view, camera, sound, caption, tech
-model.stageLike_sequenceOptional =
-  stage?, move?, view?, camera?, sound?, caption?, tech?
-model.stageLike_sequenceOptionalRepeatable =
-  stage*, move*, view*, camera*, sound*, caption*, tech*
-model.stageLike_sequenceRepeatable =
-  stage+, move+, view+, camera+, sound+, caption+, tech+
-model.featureVal.complex = fs | vColl | vNot | vMerge
-model.featureVal.complex_alternation = fs | vColl | vNot | vMerge
-model.featureVal.complex_sequence = fs, vColl, vNot, vMerge
-model.featureVal.complex_sequenceOptional = fs?, vColl?, vNot?, vMerge?
-model.featureVal.complex_sequenceOptionalRepeatable =
-  fs*, vColl*, vNot*, vMerge*
-model.featureVal.complex_sequenceRepeatable =
-  fs+, vColl+, vNot+, vMerge+
-model.featureVal.single =
-  binary | symbol | numeric | \string | vLabel | \default | vAlt
-model.featureVal.single_alternation =
-  binary | symbol | numeric | \string | vLabel | \default | vAlt
-model.featureVal.single_sequence =
-  binary, symbol, numeric, \string, vLabel, \default, vAlt
-model.featureVal.single_sequenceOptional =
-  binary?, symbol?, numeric?, \string?, vLabel?, \default?, vAlt?
-model.featureVal.single_sequenceOptionalRepeatable =
-  binary*, symbol*, numeric*, \string*, vLabel*, \default*, vAlt*
-model.featureVal.single_sequenceRepeatable =
-  binary+, symbol+, numeric+, \string+, vLabel+, \default+, vAlt+
-model.entryPart =
-  superEntry
-  | hom
-  | sense
-  | form
-  | orth
-  | pron
-  | hyph
-  | syll
-  | gramGrp
-  | pos
-  | subc
-  | colloc
-  | def
-  | etym
-  | usg
-  | lbl
-  | xr
-  | re
-model.entryPart_alternation =
-  superEntry
-  | hom
-  | sense
-  | form
-  | orth
-  | pron
-  | hyph
-  | syll
-  | gramGrp
-  | pos
-  | subc
-  | colloc
-  | def
-  | etym
-  | usg
-  | lbl
-  | xr
-  | re
-model.entryPart_sequence =
-  superEntry,
-  hom,
-  sense,
-  form,
-  orth,
-  pron,
-  hyph,
-  syll,
-  gramGrp,
-  pos,
-  subc,
-  colloc,
-  def,
-  etym,
-  usg,
-  lbl,
-  xr,
-  re
-model.entryPart_sequenceOptional =
-  superEntry?,
-  hom?,
-  sense?,
-  form?,
-  orth?,
-  pron?,
-  hyph?,
-  syll?,
-  gramGrp?,
-  pos?,
-  subc?,
-  colloc?,
-  def?,
-  etym?,
-  usg?,
-  lbl?,
-  xr?,
-  re?
-model.entryPart_sequenceOptionalRepeatable =
-  superEntry*,
-  hom*,
-  sense*,
-  form*,
-  orth*,
-  pron*,
-  hyph*,
-  syll*,
-  gramGrp*,
-  pos*,
-  subc*,
-  colloc*,
-  def*,
-  etym*,
-  usg*,
-  lbl*,
-  xr*,
-  re*
-model.entryPart_sequenceRepeatable =
-  superEntry+,
-  hom+,
-  sense+,
-  form+,
-  orth+,
-  pron+,
-  hyph+,
-  syll+,
-  gramGrp+,
-  pos+,
-  subc+,
-  colloc+,
-  def+,
-  etym+,
-  usg+,
-  lbl+,
-  xr+,
-  re+
-model.entryPart.top =
-  cit | dictScrap | form | gramGrp | def | etym | usg | xr | re
-model.entryPart.top_alternation =
-  cit | dictScrap | form | gramGrp | def | etym | usg | xr | re
-model.entryPart.top_sequence =
-  cit, dictScrap, form, gramGrp, def, etym, usg, xr, re
-model.entryPart.top_sequenceOptional =
-  cit?, dictScrap?, form?, gramGrp?, def?, etym?, usg?, xr?, re?
-model.entryPart.top_sequenceOptionalRepeatable =
-  cit*, dictScrap*, form*, gramGrp*, def*, etym*, usg*, xr*, re*
-model.entryPart.top_sequenceRepeatable =
-  cit+, dictScrap+, form+, gramGrp+, def+, etym+, usg+, xr+, re+
-model.global.edit = gap | addSpan | damageSpan | delSpan | space
-model.global.edit_alternation =
-  gap | addSpan | damageSpan | delSpan | space
-model.global.edit_sequence = gap, addSpan, damageSpan, delSpan, space
-model.global.edit_sequenceOptional =
-  gap?, addSpan?, damageSpan?, delSpan?, space?
-model.global.edit_sequenceOptionalRepeatable =
-  gap*, addSpan*, damageSpan*, delSpan*, space*
-model.global.edit_sequenceRepeatable =
-  gap+, addSpan+, damageSpan+, delSpan+, space+
-model.divPart =
-  model.lLike
-  | model.pLike
-  | lg
-  | sp
-  | spGrp
-  | model.divPart.spoken
-  | graph
-  | tree
-  | eTree
-  | forest
-  | listForest
-  | schemaSpec
-model.divPart_alternation =
-  model.lLike_alternation
-  | model.pLike_alternation
-  | lg
-  | sp
-  | spGrp
-  | model.divPart.spoken_alternation
-  | graph
-  | tree
-  | eTree
-  | forest
-  | listForest
-  | schemaSpec
-model.divPart_sequence =
-  model.lLike_sequence,
-  model.pLike_sequence,
-  lg,
-  sp,
-  spGrp,
-  model.divPart.spoken_sequence,
-  graph,
-  tree,
-  eTree,
-  forest,
-  listForest,
-  schemaSpec
-model.divPart_sequenceOptional =
-  model.lLike_sequenceOptional?,
-  model.pLike_sequenceOptional?,
-  lg?,
-  sp?,
-  spGrp?,
-  model.divPart.spoken_sequenceOptional?,
-  graph?,
-  tree?,
-  eTree?,
-  forest?,
-  listForest?,
-  schemaSpec?
-model.divPart_sequenceOptionalRepeatable =
-  model.lLike_sequenceOptionalRepeatable*,
-  model.pLike_sequenceOptionalRepeatable*,
-  lg*,
-  sp*,
-  spGrp*,
-  model.divPart.spoken_sequenceOptionalRepeatable*,
-  graph*,
-  tree*,
-  eTree*,
-  forest*,
-  listForest*,
-  schemaSpec*
-model.divPart_sequenceRepeatable =
-  model.lLike_sequenceRepeatable+,
-  model.pLike_sequenceRepeatable+,
-  lg+,
-  sp+,
-  spGrp+,
-  model.divPart.spoken_sequenceRepeatable+,
-  graph+,
-  tree+,
-  eTree+,
-  forest+,
-  listForest+,
-  schemaSpec+
-model.persStateLike =
-  persName
-  | affiliation
-  | age
-  | education
-  | faith
-  | floruit
-  | langKnowledge
-  | nationality
-  | occupation
-  | residence
-  | sex
-  | socecStatus
-  | state
-  | trait
-model.persStateLike_alternation =
-  persName
-  | affiliation
-  | age
-  | education
-  | faith
-  | floruit
-  | langKnowledge
-  | nationality
-  | occupation
-  | residence
-  | sex
-  | socecStatus
-  | state
-  | trait
-model.persStateLike_sequence =
-  persName,
-  affiliation,
-  age,
-  education,
-  faith,
-  floruit,
-  langKnowledge,
-  nationality,
-  occupation,
-  residence,
-  sex,
-  socecStatus,
-  state,
-  trait
-model.persStateLike_sequenceOptional =
-  persName?,
-  affiliation?,
-  age?,
-  education?,
-  faith?,
-  floruit?,
-  langKnowledge?,
-  nationality?,
-  occupation?,
-  residence?,
-  sex?,
-  socecStatus?,
-  state?,
-  trait?
-model.persStateLike_sequenceOptionalRepeatable =
-  persName*,
-  affiliation*,
-  age*,
-  education*,
-  faith*,
-  floruit*,
-  langKnowledge*,
-  nationality*,
-  occupation*,
-  residence*,
-  sex*,
-  socecStatus*,
-  state*,
-  trait*
-model.persStateLike_sequenceRepeatable =
-  persName+,
-  affiliation+,
-  age+,
-  education+,
-  faith+,
-  floruit+,
-  langKnowledge+,
-  nationality+,
-  occupation+,
-  residence+,
-  sex+,
-  socecStatus+,
-  state+,
-  trait+
-model.persEventLike = birth | death | event | listEvent
-model.persEventLike_alternation = birth | death | event | listEvent
-model.persEventLike_sequence = birth, death, event, listEvent
-model.persEventLike_sequenceOptional =
-  birth?, death?, event?, listEvent?
-model.persEventLike_sequenceOptionalRepeatable =
-  birth*, death*, event*, listEvent*
-model.persEventLike_sequenceRepeatable =
-  birth+, death+, event+, listEvent+
-model.personLike = org | person | personGrp
-model.personLike_alternation = org | person | personGrp
-model.personLike_sequence = org, person, personGrp
-model.personLike_sequenceOptional = org?, person?, personGrp?
-model.personLike_sequenceOptionalRepeatable = org*, person*, personGrp*
-model.personLike_sequenceRepeatable = org+, person+, personGrp+
-model.personPart =
-  model.biblLike | model.persStateLike | model.persEventLike | idno
-model.personPart_alternation =
-  model.biblLike_alternation
-  | model.persStateLike_alternation
-  | model.persEventLike_alternation
-  | idno
-model.personPart_sequence =
-  model.biblLike_sequence,
-  model.persStateLike_sequence,
-  model.persEventLike_sequence,
-  idno
-model.personPart_sequenceOptional =
-  model.biblLike_sequenceOptional?,
-  model.persStateLike_sequenceOptional?,
-  model.persEventLike_sequenceOptional?,
-  idno?
-model.personPart_sequenceOptionalRepeatable =
-  model.biblLike_sequenceOptionalRepeatable*,
-  model.persStateLike_sequenceOptionalRepeatable*,
-  model.persEventLike_sequenceOptionalRepeatable*,
-  idno*
-model.personPart_sequenceRepeatable =
-  model.biblLike_sequenceRepeatable+,
-  model.persStateLike_sequenceRepeatable+,
-  model.persEventLike_sequenceRepeatable+,
-  idno+
-model.placeNamePart =
-  placeName | bloc | country | region | district | settlement | geogName
-model.placeNamePart_alternation =
-  placeName | bloc | country | region | district | settlement | geogName
-model.placeNamePart_sequence =
-  placeName, bloc, country, region, district, settlement, geogName
-model.placeNamePart_sequenceOptional =
-  placeName?,
-  bloc?,
-  country?,
-  region?,
-  district?,
-  settlement?,
-  geogName?
-model.placeNamePart_sequenceOptionalRepeatable =
-  placeName*,
-  bloc*,
-  country*,
-  region*,
-  district*,
-  settlement*,
-  geogName*
-model.placeNamePart_sequenceRepeatable =
-  placeName+,
-  bloc+,
-  country+,
-  region+,
-  district+,
-  settlement+,
-  geogName+
-model.placeStateLike =
-  model.placeNamePart
-  | climate
-  | location
-  | population
-  | state
-  | terrain
-  | trait
-model.placeStateLike_alternation =
-  model.placeNamePart_alternation
-  | climate
-  | location
-  | population
-  | state
-  | terrain
-  | trait
-model.placeStateLike_sequence =
-  model.placeNamePart_sequence,
-  climate,
-  location,
-  population,
-  state,
-  terrain,
-  trait
-model.placeStateLike_sequenceOptional =
-  model.placeNamePart_sequenceOptional?,
-  climate?,
-  location?,
-  population?,
-  state?,
-  terrain?,
-  trait?
-model.placeStateLike_sequenceOptionalRepeatable =
-  model.placeNamePart_sequenceOptionalRepeatable*,
-  climate*,
-  location*,
-  population*,
-  state*,
-  terrain*,
-  trait*
-model.placeStateLike_sequenceRepeatable =
-  model.placeNamePart_sequenceRepeatable+,
-  climate+,
-  location+,
-  population+,
-  state+,
-  terrain+,
-  trait+
-model.placeEventLike = event
-model.placeEventLike_alternation = event
-model.placeEventLike_sequence = event
-model.placeEventLike_sequenceOptional = event?
-model.placeEventLike_sequenceOptionalRepeatable = event*
-model.placeEventLike_sequenceRepeatable = event+
-model.orgPart = listOrg | listPerson | listPlace
-model.orgPart_alternation = listOrg | listPerson | listPlace
-model.orgPart_sequence = listOrg, listPerson, listPlace
-model.orgPart_sequenceOptional = listOrg?, listPerson?, listPlace?
-model.orgPart_sequenceOptionalRepeatable =
-  listOrg*, listPerson*, listPlace*
-model.orgPart_sequenceRepeatable = listOrg+, listPerson+, listPlace+
-model.publicationStmtPart.agency = distributor | authority | publisher
-model.publicationStmtPart.agency_alternation =
-  distributor | authority | publisher
-model.publicationStmtPart.agency_sequence =
-  distributor, authority, publisher
-model.publicationStmtPart.agency_sequenceOptional =
-  distributor?, authority?, publisher?
-model.publicationStmtPart.agency_sequenceOptionalRepeatable =
-  distributor*, authority*, publisher*
-model.publicationStmtPart.agency_sequenceRepeatable =
-  distributor+, authority+, publisher+
-model.publicationStmtPart.detail =
-  idno | availability | address | date | pubPlace
-model.publicationStmtPart.detail_alternation =
-  idno | availability | address | date | pubPlace
-model.publicationStmtPart.detail_sequence =
-  idno, availability, address, date, pubPlace
-model.publicationStmtPart.detail_sequenceOptional =
-  idno?, availability?, address?, date?, pubPlace?
-model.publicationStmtPart.detail_sequenceOptionalRepeatable =
-  idno*, availability*, address*, date*, pubPlace*
-model.publicationStmtPart.detail_sequenceRepeatable =
-  idno+, availability+, address+, date+, pubPlace+
-model.availabilityPart = licence
-model.availabilityPart_alternation = licence
-model.availabilityPart_sequence = licence
-model.availabilityPart_sequenceOptional = licence?
-model.availabilityPart_sequenceOptionalRepeatable = licence*
-model.availabilityPart_sequenceRepeatable = licence+
-model.certLike = precision | certainty | respons
-model.certLike_alternation = precision | certainty | respons
-model.certLike_sequence = precision, certainty, respons
-model.certLike_sequenceOptional = precision?, certainty?, respons?
-model.certLike_sequenceOptionalRepeatable =
-  precision*, certainty*, respons*
-model.certLike_sequenceRepeatable = precision+, certainty+, respons+
-model.descLike = desc
-model.descLike_alternation = desc
-model.descLike_sequence = desc
-model.descLike_sequenceOptional = desc?
-model.descLike_sequenceOptionalRepeatable = desc*
-model.descLike_sequenceRepeatable = desc+
-model.glossLike = gloss | equiv | altIdent
-model.glossLike_alternation = gloss | equiv | altIdent
-model.glossLike_sequence = gloss, equiv, altIdent
-model.glossLike_sequenceOptional = gloss?, equiv?, altIdent?
-model.glossLike_sequenceOptionalRepeatable = gloss*, equiv*, altIdent*
-model.glossLike_sequenceRepeatable = gloss+, equiv+, altIdent+
-model.quoteLike = quote | cit
-model.quoteLike_alternation = quote | cit
-model.quoteLike_sequence = quote, cit
-model.quoteLike_sequenceOptional = quote?, cit?
-model.quoteLike_sequenceOptionalRepeatable = quote*, cit*
-model.quoteLike_sequenceRepeatable = quote+, cit+
-model.qLike = model.quoteLike | said | q | floatingText
-model.qLike_alternation =
-  model.quoteLike_alternation | said | q | floatingText
-model.qLike_sequence = model.quoteLike_sequence, said, q, floatingText
-model.qLike_sequenceOptional =
-  model.quoteLike_sequenceOptional?, said?, q?, floatingText?
-model.qLike_sequenceOptionalRepeatable =
-  model.quoteLike_sequenceOptionalRepeatable*, said*, q*, floatingText*
-model.qLike_sequenceRepeatable =
-  model.quoteLike_sequenceRepeatable+, said+, q+, floatingText+
-model.respLike =
-  sponsor | funder | principal | author | editor | respStmt | meeting
-model.respLike_alternation =
-  sponsor | funder | principal | author | editor | respStmt | meeting
-model.respLike_sequence =
-  sponsor, funder, principal, author, editor, respStmt, meeting
-model.respLike_sequenceOptional =
-  sponsor?, funder?, principal?, author?, editor?, respStmt?, meeting?
-model.respLike_sequenceOptionalRepeatable =
-  sponsor*, funder*, principal*, author*, editor*, respStmt*, meeting*
-model.respLike_sequenceRepeatable =
-  sponsor+, funder+, principal+, author+, editor+, respStmt+, meeting+
-model.divWrapper =
-  meeting
-  | byline
-  | dateline
-  | argument
-  | epigraph
-  | salute
-  | docAuthor
-  | docDate
-model.divWrapper_alternation =
-  meeting
-  | byline
-  | dateline
-  | argument
-  | epigraph
-  | salute
-  | docAuthor
-  | docDate
-model.divWrapper_sequence =
-  meeting,
-  byline,
-  dateline,
-  argument,
-  epigraph,
-  salute,
-  docAuthor,
-  docDate
-model.divWrapper_sequenceOptional =
-  meeting?,
-  byline?,
-  dateline?,
-  argument?,
-  epigraph?,
-  salute?,
-  docAuthor?,
-  docDate?
-model.divWrapper_sequenceOptionalRepeatable =
-  meeting*,
-  byline*,
-  dateline*,
-  argument*,
-  epigraph*,
-  salute*,
-  docAuthor*,
-  docDate*
-model.divWrapper_sequenceRepeatable =
-  meeting+,
-  byline+,
-  dateline+,
-  argument+,
-  epigraph+,
-  salute+,
-  docAuthor+,
-  docDate+
-model.divTopPart = model.headLike | opener | signed
-model.divTopPart_alternation =
-  model.headLike_alternation | opener | signed
-model.divTopPart_sequence = model.headLike_sequence, opener, signed
-model.divTopPart_sequenceOptional =
-  model.headLike_sequenceOptional?, opener?, signed?
-model.divTopPart_sequenceOptionalRepeatable =
-  model.headLike_sequenceOptionalRepeatable*, opener*, signed*
-model.divTopPart_sequenceRepeatable =
-  model.headLike_sequenceRepeatable+, opener+, signed+
-model.divTop = model.divWrapper | model.divTopPart
-model.divTop_alternation =
-  model.divWrapper_alternation | model.divTopPart_alternation
-model.divTop_sequence =
-  model.divWrapper_sequence, model.divTopPart_sequence
-model.divTop_sequenceOptional =
-  model.divWrapper_sequenceOptional?, model.divTopPart_sequenceOptional?
-model.divTop_sequenceOptionalRepeatable =
-  model.divWrapper_sequenceOptionalRepeatable*,
-  model.divTopPart_sequenceOptionalRepeatable*
-model.divTop_sequenceRepeatable =
-  model.divWrapper_sequenceRepeatable+,
-  model.divTopPart_sequenceRepeatable+
-model.frontPart.drama =
-  set | prologue | epilogue | performance | castList
-model.frontPart.drama_alternation =
-  set | prologue | epilogue | performance | castList
-model.frontPart.drama_sequence =
-  set, prologue, epilogue, performance, castList
-model.frontPart.drama_sequenceOptional =
-  set?, prologue?, epilogue?, performance?, castList?
-model.frontPart.drama_sequenceOptionalRepeatable =
-  set*, prologue*, epilogue*, performance*, castList*
-model.frontPart.drama_sequenceRepeatable =
-  set+, prologue+, epilogue+, performance+, castList+
-model.pLike.front =
-  head
-  | byline
-  | argument
-  | epigraph
-  | docTitle
-  | titlePart
-  | docAuthor
-  | docEdition
-  | docImprint
-  | docDate
-model.pLike.front_alternation =
-  head
-  | byline
-  | argument
-  | epigraph
-  | docTitle
-  | titlePart
-  | docAuthor
-  | docEdition
-  | docImprint
-  | docDate
-model.pLike.front_sequence =
-  head,
-  byline,
-  argument,
-  epigraph,
-  docTitle,
-  titlePart,
-  docAuthor,
-  docEdition,
-  docImprint,
-  docDate
-model.pLike.front_sequenceOptional =
-  head?,
-  byline?,
-  argument?,
-  epigraph?,
-  docTitle?,
-  titlePart?,
-  docAuthor?,
-  docEdition?,
-  docImprint?,
-  docDate?
-model.pLike.front_sequenceOptionalRepeatable =
-  head*,
-  byline*,
-  argument*,
-  epigraph*,
-  docTitle*,
-  titlePart*,
-  docAuthor*,
-  docEdition*,
-  docImprint*,
-  docDate*
-model.pLike.front_sequenceRepeatable =
-  head+,
-  byline+,
-  argument+,
-  epigraph+,
-  docTitle+,
-  titlePart+,
-  docAuthor+,
-  docEdition+,
-  docImprint+,
-  docDate+
-model.divBottomPart = trailer | closer | signed | postscript
-model.divBottomPart_alternation = trailer | closer | signed | postscript
-model.divBottomPart_sequence = trailer, closer, signed, postscript
-model.divBottomPart_sequenceOptional =
-  trailer?, closer?, signed?, postscript?
-model.divBottomPart_sequenceOptionalRepeatable =
-  trailer*, closer*, signed*, postscript*
-model.divBottomPart_sequenceRepeatable =
-  trailer+, closer+, signed+, postscript+
-model.divBottom = model.divWrapper | model.divBottomPart
-model.divBottom_alternation =
-  model.divWrapper_alternation | model.divBottomPart_alternation
-model.divBottom_sequence =
-  model.divWrapper_sequence, model.divBottomPart_sequence
-model.divBottom_sequenceOptional =
-  model.divWrapper_sequenceOptional?,
-  model.divBottomPart_sequenceOptional?
-model.divBottom_sequenceOptionalRepeatable =
-  model.divWrapper_sequenceOptionalRepeatable*,
-  model.divBottomPart_sequenceOptionalRepeatable*
-model.divBottom_sequenceRepeatable =
-  model.divWrapper_sequenceRepeatable+,
-  model.divBottomPart_sequenceRepeatable+
-model.titlepagePart =
-  graphic
-  | binaryObject
-  | byline
-  | argument
-  | epigraph
-  | docTitle
-  | titlePart
-  | docAuthor
-  | imprimatur
-  | docEdition
-  | docImprint
-  | docDate
-model.titlepagePart_alternation =
-  graphic
-  | binaryObject
-  | byline
-  | argument
-  | epigraph
-  | docTitle
-  | titlePart
-  | docAuthor
-  | imprimatur
-  | docEdition
-  | docImprint
-  | docDate
-model.titlepagePart_sequence =
-  graphic,
-  binaryObject,
-  byline,
-  argument,
-  epigraph,
-  docTitle,
-  titlePart,
-  docAuthor,
-  imprimatur,
-  docEdition,
-  docImprint,
-  docDate
-model.titlepagePart_sequenceOptional =
-  graphic?,
-  binaryObject?,
-  byline?,
-  argument?,
-  epigraph?,
-  docTitle?,
-  titlePart?,
-  docAuthor?,
-  imprimatur?,
-  docEdition?,
-  docImprint?,
-  docDate?
-model.titlepagePart_sequenceOptionalRepeatable =
-  graphic*,
-  binaryObject*,
-  byline*,
-  argument*,
-  epigraph*,
-  docTitle*,
-  titlePart*,
-  docAuthor*,
-  imprimatur*,
-  docEdition*,
-  docImprint*,
-  docDate*
-model.titlepagePart_sequenceRepeatable =
-  graphic+,
-  binaryObject+,
-  byline+,
-  argument+,
-  epigraph+,
-  docTitle+,
-  titlePart+,
-  docAuthor+,
-  imprimatur+,
-  docEdition+,
-  docImprint+,
-  docDate+
-model.msQuoteLike =
-  title | colophon | explicit | finalRubric | incipit | rubric
-model.msQuoteLike_alternation =
-  title | colophon | explicit | finalRubric | incipit | rubric
-model.msQuoteLike_sequence =
-  title, colophon, explicit, finalRubric, incipit, rubric
-model.msQuoteLike_sequenceOptional =
-  title?, colophon?, explicit?, finalRubric?, incipit?, rubric?
-model.msQuoteLike_sequenceOptionalRepeatable =
-  title*, colophon*, explicit*, finalRubric*, incipit*, rubric*
-model.msQuoteLike_sequenceRepeatable =
-  title+, colophon+, explicit+, finalRubric+, incipit+, rubric+
-model.msItemPart =
-  model.biblLike
-  | model.quoteLike
-  | model.respLike
-  | model.msQuoteLike
-  | idno
-  | filiation
-  | msItem
-  | msItemStruct
-  | textLang
-  | decoNote
-model.msItemPart_alternation =
-  model.biblLike_alternation
-  | model.quoteLike_alternation
-  | model.respLike_alternation
-  | model.msQuoteLike_alternation
-  | idno
-  | filiation
-  | msItem
-  | msItemStruct
-  | textLang
-  | decoNote
-model.msItemPart_sequence =
-  model.biblLike_sequence,
-  model.quoteLike_sequence,
-  model.respLike_sequence,
-  model.msQuoteLike_sequence,
-  idno,
-  filiation,
-  msItem,
-  msItemStruct,
-  textLang,
-  decoNote
-model.msItemPart_sequenceOptional =
-  model.biblLike_sequenceOptional?,
-  model.quoteLike_sequenceOptional?,
-  model.respLike_sequenceOptional?,
-  model.msQuoteLike_sequenceOptional?,
-  idno?,
-  filiation?,
-  msItem?,
-  msItemStruct?,
-  textLang?,
-  decoNote?
-model.msItemPart_sequenceOptionalRepeatable =
-  model.biblLike_sequenceOptionalRepeatable*,
-  model.quoteLike_sequenceOptionalRepeatable*,
-  model.respLike_sequenceOptionalRepeatable*,
-  model.msQuoteLike_sequenceOptionalRepeatable*,
-  idno*,
-  filiation*,
-  msItem*,
-  msItemStruct*,
-  textLang*,
-  decoNote*
-model.msItemPart_sequenceRepeatable =
-  model.biblLike_sequenceRepeatable+,
-  model.quoteLike_sequenceRepeatable+,
-  model.respLike_sequenceRepeatable+,
-  model.msQuoteLike_sequenceRepeatable+,
-  idno+,
-  filiation+,
-  msItem+,
-  msItemStruct+,
-  textLang+,
-  decoNote+
-model.choicePart =
-  sic | corr | reg | orig | unclear | abbr | expan | ex | am | seg
-model.choicePart_alternation =
-  sic | corr | reg | orig | unclear | abbr | expan | ex | am | seg
-model.choicePart_sequence =
-  sic, corr, reg, orig, unclear, abbr, expan, ex, am, seg
-model.choicePart_sequenceOptional =
-  sic?, corr?, reg?, orig?, unclear?, abbr?, expan?, ex?, am?, seg?
-model.choicePart_sequenceOptionalRepeatable =
-  sic*, corr*, reg*, orig*, unclear*, abbr*, expan*, ex*, am*, seg*
-model.choicePart_sequenceRepeatable =
-  sic+, corr+, reg+, orig+, unclear+, abbr+, expan+, ex+, am+, seg+
-model.imprintPart = distributor | publisher | biblScope | pubPlace
-model.imprintPart_alternation =
-  distributor | publisher | biblScope | pubPlace
-model.imprintPart_sequence = distributor, publisher, biblScope, pubPlace
-model.imprintPart_sequenceOptional =
-  distributor?, publisher?, biblScope?, pubPlace?
-model.imprintPart_sequenceOptionalRepeatable =
-  distributor*, publisher*, biblScope*, pubPlace*
-model.imprintPart_sequenceRepeatable =
-  distributor+, publisher+, biblScope+, pubPlace+
-model.catDescPart = textDesc
-model.catDescPart_alternation = textDesc
-model.catDescPart_sequence = textDesc
-model.catDescPart_sequenceOptional = textDesc?
-model.catDescPart_sequenceOptionalRepeatable = textDesc*
-model.catDescPart_sequenceRepeatable = textDesc+
-model.settingPart = locale | activity
-model.settingPart_alternation = locale | activity
-model.settingPart_sequence = locale, activity
-model.settingPart_sequenceOptional = locale?, activity?
-model.settingPart_sequenceOptionalRepeatable = locale*, activity*
-model.settingPart_sequenceRepeatable = locale+, activity+
-model.textDescPart =
-  channel
-  | constitution
-  | derivation
-  | domain
-  | factuality
-  | interaction
-  | preparedness
-model.textDescPart_alternation =
-  channel
-  | constitution
-  | derivation
-  | domain
-  | factuality
-  | interaction
-  | preparedness
-model.textDescPart_sequence =
-  channel,
-  constitution,
-  derivation,
-  domain,
-  factuality,
-  interaction,
-  preparedness
-model.textDescPart_sequenceOptional =
-  channel?,
-  constitution?,
-  derivation?,
-  domain?,
-  factuality?,
-  interaction?,
-  preparedness?
-model.textDescPart_sequenceOptionalRepeatable =
-  channel*,
-  constitution*,
-  derivation*,
-  domain*,
-  factuality*,
-  interaction*,
-  preparedness*
-model.textDescPart_sequenceRepeatable =
-  channel+,
-  constitution+,
-  derivation+,
-  domain+,
-  factuality+,
-  interaction+,
-  preparedness+
-model.castItemPart = role | roleDesc | actor
-model.castItemPart_alternation = role | roleDesc | actor
-model.castItemPart_sequence = role, roleDesc, actor
-model.castItemPart_sequenceOptional = role?, roleDesc?, actor?
-model.castItemPart_sequenceOptionalRepeatable = role*, roleDesc*, actor*
-model.castItemPart_sequenceRepeatable = role+, roleDesc+, actor+
-model.physDescPart =
-  objectDesc
-  | handDesc
-  | typeDesc
-  | scriptDesc
-  | musicNotation
-  | decoDesc
-  | additions
-  | bindingDesc
-  | sealDesc
-  | accMat
-model.physDescPart_alternation =
-  objectDesc
-  | handDesc
-  | typeDesc
-  | scriptDesc
-  | musicNotation
-  | decoDesc
-  | additions
-  | bindingDesc
-  | sealDesc
-  | accMat
-model.physDescPart_sequence =
-  objectDesc,
-  handDesc,
-  typeDesc,
-  scriptDesc,
-  musicNotation,
-  decoDesc,
-  additions,
-  bindingDesc,
-  sealDesc,
-  accMat
-model.physDescPart_sequenceOptional =
-  objectDesc?,
-  handDesc?,
-  typeDesc?,
-  scriptDesc?,
-  musicNotation?,
-  decoDesc?,
-  additions?,
-  bindingDesc?,
-  sealDesc?,
-  accMat?
-model.physDescPart_sequenceOptionalRepeatable =
-  objectDesc*,
-  handDesc*,
-  typeDesc*,
-  scriptDesc*,
-  musicNotation*,
-  decoDesc*,
-  additions*,
-  bindingDesc*,
-  sealDesc*,
-  accMat*
-model.physDescPart_sequenceRepeatable =
-  objectDesc+,
-  handDesc+,
-  typeDesc+,
-  scriptDesc+,
-  musicNotation+,
-  decoDesc+,
-  additions+,
-  bindingDesc+,
-  sealDesc+,
-  accMat+
-model.addressLike = email | address | affiliation
-model.addressLike_alternation = email | address | affiliation
-model.addressLike_sequence = email, address, affiliation
-model.addressLike_sequenceOptional = email?, address?, affiliation?
-model.addressLike_sequenceOptionalRepeatable =
-  email*, address*, affiliation*
-model.addressLike_sequenceRepeatable = email+, address+, affiliation+
-model.nameLike =
-  model.nameLike.agent
-  | model.offsetLike
-  | model.placeStateLike
-  | model.persNamePart
-  | idno
-  | rs
-  | lang
-model.nameLike_alternation =
-  model.nameLike.agent_alternation
-  | model.offsetLike_alternation
-  | model.placeStateLike_alternation
-  | model.persNamePart_alternation
-  | idno
-  | rs
-  | lang
-model.nameLike_sequence =
-  model.nameLike.agent_sequence,
-  model.offsetLike_sequence,
-  model.placeStateLike_sequence,
-  model.persNamePart_sequence,
-  idno,
-  rs,
-  lang
-model.nameLike_sequenceOptional =
-  model.nameLike.agent_sequenceOptional?,
-  model.offsetLike_sequenceOptional?,
-  model.placeStateLike_sequenceOptional?,
-  model.persNamePart_sequenceOptional?,
-  idno?,
-  rs?,
-  lang?
-model.nameLike_sequenceOptionalRepeatable =
-  model.nameLike.agent_sequenceOptionalRepeatable*,
-  model.offsetLike_sequenceOptionalRepeatable*,
-  model.placeStateLike_sequenceOptionalRepeatable*,
-  model.persNamePart_sequenceOptionalRepeatable*,
-  idno*,
-  rs*,
-  lang*
-model.nameLike_sequenceRepeatable =
-  model.nameLike.agent_sequenceRepeatable+,
-  model.offsetLike_sequenceRepeatable+,
-  model.placeStateLike_sequenceRepeatable+,
-  model.persNamePart_sequenceRepeatable+,
-  idno+,
-  rs+,
-  lang+
-model.global =
-  model.global.meta
-  | model.milestoneLike
-  | model.noteLike
-  | model.global.edit
-  | model.global.spoken
-  | metamark
-  | notatedMusic
-  | figure
-model.global_alternation =
-  model.global.meta_alternation
-  | model.milestoneLike_alternation
-  | model.noteLike_alternation
-  | model.global.edit_alternation
-  | model.global.spoken_alternation
-  | metamark
-  | notatedMusic
-  | figure
-model.global_sequence =
-  model.global.meta_sequence,
-  model.milestoneLike_sequence,
-  model.noteLike_sequence,
-  model.global.edit_sequence,
-  model.global.spoken_sequence,
-  metamark,
-  notatedMusic,
-  figure
-model.global_sequenceOptional =
-  model.global.meta_sequenceOptional?,
-  model.milestoneLike_sequenceOptional?,
-  model.noteLike_sequenceOptional?,
-  model.global.edit_sequenceOptional?,
-  model.global.spoken_sequenceOptional?,
-  metamark?,
-  notatedMusic?,
-  figure?
-model.global_sequenceOptionalRepeatable =
-  model.global.meta_sequenceOptionalRepeatable*,
-  model.milestoneLike_sequenceOptionalRepeatable*,
-  model.noteLike_sequenceOptionalRepeatable*,
-  model.global.edit_sequenceOptionalRepeatable*,
-  model.global.spoken_sequenceOptionalRepeatable*,
-  metamark*,
-  notatedMusic*,
-  figure*
-model.global_sequenceRepeatable =
-  model.global.meta_sequenceRepeatable+,
-  model.milestoneLike_sequenceRepeatable+,
-  model.noteLike_sequenceRepeatable+,
-  model.global.edit_sequenceRepeatable+,
-  model.global.spoken_sequenceRepeatable+,
-  metamark+,
-  notatedMusic+,
-  figure+
-model.featureVal = model.featureVal.complex | model.featureVal.single
-model.featureVal_alternation =
-  model.featureVal.complex_alternation
-  | model.featureVal.single_alternation
-model.featureVal_sequence =
-  model.featureVal.complex_sequence, model.featureVal.single_sequence
-model.featureVal_sequenceOptional =
-  model.featureVal.complex_sequenceOptional?,
-  model.featureVal.single_sequenceOptional?
-model.featureVal_sequenceOptionalRepeatable =
-  model.featureVal.complex_sequenceOptionalRepeatable*,
-  model.featureVal.single_sequenceOptionalRepeatable*
-model.featureVal_sequenceRepeatable =
-  model.featureVal.complex_sequenceRepeatable+,
-  model.featureVal.single_sequenceRepeatable+
-model.biblPart =
-  model.respLike
-  | model.imprintPart
-  | edition
-  | extent
-  | availability
-  | series
-  | citedRange
-  | bibl
-  | relatedItem
-  | msIdentifier
-  | textLang
-  | listRelation
-model.biblPart_alternation =
-  model.respLike_alternation
-  | model.imprintPart_alternation
-  | edition
-  | extent
-  | availability
-  | series
-  | citedRange
-  | bibl
-  | relatedItem
-  | msIdentifier
-  | textLang
-  | listRelation
-model.biblPart_sequence =
-  model.respLike_sequence,
-  model.imprintPart_sequence,
-  edition,
-  extent,
-  availability,
-  series,
-  citedRange,
-  bibl,
-  relatedItem,
-  msIdentifier,
-  textLang,
-  listRelation
-model.biblPart_sequenceOptional =
-  model.respLike_sequenceOptional?,
-  model.imprintPart_sequenceOptional?,
-  edition?,
-  extent?,
-  availability?,
-  series?,
-  citedRange?,
-  bibl?,
-  relatedItem?,
-  msIdentifier?,
-  textLang?,
-  listRelation?
-model.biblPart_sequenceOptionalRepeatable =
-  model.respLike_sequenceOptionalRepeatable*,
-  model.imprintPart_sequenceOptionalRepeatable*,
-  edition*,
-  extent*,
-  availability*,
-  series*,
-  citedRange*,
-  bibl*,
-  relatedItem*,
-  msIdentifier*,
-  textLang*,
-  listRelation*
-model.biblPart_sequenceRepeatable =
-  model.respLike_sequenceRepeatable+,
-  model.imprintPart_sequenceRepeatable+,
-  edition+,
-  extent+,
-  availability+,
-  series+,
-  citedRange+,
-  bibl+,
-  relatedItem+,
-  msIdentifier+,
-  textLang+,
-  listRelation+
-model.frontPart = model.frontPart.drama | divGen | titlePage
-model.frontPart_alternation =
-  model.frontPart.drama_alternation | divGen | titlePage
-model.frontPart_sequence =
-  model.frontPart.drama_sequence, divGen, titlePage
-model.frontPart_sequenceOptional =
-  model.frontPart.drama_sequenceOptional?, divGen?, titlePage?
-model.frontPart_sequenceOptionalRepeatable =
-  model.frontPart.drama_sequenceOptionalRepeatable*, divGen*, titlePage*
-model.frontPart_sequenceRepeatable =
-  model.frontPart.drama_sequenceRepeatable+, divGen+, titlePage+
-model.addrPart = model.nameLike | addrLine | street | postCode | postBox
-model.addrPart_alternation =
-  model.nameLike_alternation | addrLine | street | postCode | postBox
-model.addrPart_sequence =
-  model.nameLike_sequence, addrLine, street, postCode, postBox
-model.addrPart_sequenceOptional =
-  model.nameLike_sequenceOptional?,
-  addrLine?,
-  street?,
-  postCode?,
-  postBox?
-model.addrPart_sequenceOptionalRepeatable =
-  model.nameLike_sequenceOptionalRepeatable*,
-  addrLine*,
-  street*,
-  postCode*,
-  postBox*
-model.addrPart_sequenceRepeatable =
-  model.nameLike_sequenceRepeatable+,
-  addrLine+,
-  street+,
-  postCode+,
-  postBox+
-model.pPart.data =
-  model.dateLike
-  | model.measureLike
-  | model.addressLike
-  | model.nameLike
-model.pPart.data_alternation =
-  model.dateLike_alternation
-  | model.measureLike_alternation
-  | model.addressLike_alternation
-  | model.nameLike_alternation
-model.pPart.data_sequence =
-  model.dateLike_sequence,
-  model.measureLike_sequence,
-  model.addressLike_sequence,
-  model.nameLike_sequence
-model.pPart.data_sequenceOptional =
-  model.dateLike_sequenceOptional?,
-  model.measureLike_sequenceOptional?,
-  model.addressLike_sequenceOptional?,
-  model.nameLike_sequenceOptional?
-model.pPart.data_sequenceOptionalRepeatable =
-  model.dateLike_sequenceOptionalRepeatable*,
-  model.measureLike_sequenceOptionalRepeatable*,
-  model.addressLike_sequenceOptionalRepeatable*,
-  model.nameLike_sequenceOptionalRepeatable*
-model.pPart.data_sequenceRepeatable =
-  model.dateLike_sequenceRepeatable+,
-  model.measureLike_sequenceRepeatable+,
-  model.addressLike_sequenceRepeatable+,
-  model.nameLike_sequenceRepeatable+
-model.inter =
-  model.egLike
-  | model.oddDecl
-  | model.biblLike
-  | model.labelLike
-  | model.listLike
-  | model.stageLike
-  | model.qLike
-  | castList
-model.inter_alternation =
-  model.egLike_alternation
-  | model.oddDecl_alternation
-  | model.biblLike_alternation
-  | model.labelLike_alternation
-  | model.listLike_alternation
-  | model.stageLike_alternation
-  | model.qLike_alternation
-  | castList
-model.inter_sequence =
-  model.egLike_sequence,
-  model.oddDecl_sequence,
-  model.biblLike_sequence,
-  model.labelLike_sequence,
-  model.listLike_sequence,
-  model.stageLike_sequence,
-  model.qLike_sequence,
-  castList
-model.inter_sequenceOptional =
-  model.egLike_sequenceOptional?,
-  model.oddDecl_sequenceOptional?,
-  model.biblLike_sequenceOptional?,
-  model.labelLike_sequenceOptional?,
-  model.listLike_sequenceOptional?,
-  model.stageLike_sequenceOptional?,
-  model.qLike_sequenceOptional?,
-  castList?
-model.inter_sequenceOptionalRepeatable =
-  model.egLike_sequenceOptionalRepeatable*,
-  model.oddDecl_sequenceOptionalRepeatable*,
-  model.biblLike_sequenceOptionalRepeatable*,
-  model.labelLike_sequenceOptionalRepeatable*,
-  model.listLike_sequenceOptionalRepeatable*,
-  model.stageLike_sequenceOptionalRepeatable*,
-  model.qLike_sequenceOptionalRepeatable*,
-  castList*
-model.inter_sequenceRepeatable =
-  model.egLike_sequenceRepeatable+,
-  model.oddDecl_sequenceRepeatable+,
-  model.biblLike_sequenceRepeatable+,
-  model.labelLike_sequenceRepeatable+,
-  model.listLike_sequenceRepeatable+,
-  model.stageLike_sequenceRepeatable+,
-  model.qLike_sequenceRepeatable+,
-  castList+
-model.common = model.divPart | model.inter | model.entryLike
-model.common_alternation =
-  model.divPart_alternation
-  | model.inter_alternation
-  | model.entryLike_alternation
-model.common_sequence =
-  model.divPart_sequence, model.inter_sequence, model.entryLike_sequence
-model.common_sequenceOptional =
-  model.divPart_sequenceOptional?,
-  model.inter_sequenceOptional?,
-  model.entryLike_sequenceOptional?
-model.common_sequenceOptionalRepeatable =
-  model.divPart_sequenceOptionalRepeatable*,
-  model.inter_sequenceOptionalRepeatable*,
-  model.entryLike_sequenceOptionalRepeatable*
-model.common_sequenceRepeatable =
-  model.divPart_sequenceRepeatable+,
-  model.inter_sequenceRepeatable+,
-  model.entryLike_sequenceRepeatable+
-model.phrase =
-  model.segLike
-  | model.highlighted
-  | model.graphicLike
-  | model.pPart.msdesc
-  | model.pPart.edit
-  | model.ptrLike
-  | model.lPart
-  | model.phrase.xml
-  | model.specDescLike
-  | model.pPart.data
-  | model.ptrLike.form
-model.phrase_alternation =
-  model.segLike_alternation
-  | model.highlighted_alternation
-  | model.graphicLike_alternation
-  | model.pPart.msdesc_alternation
-  | model.pPart.edit_alternation
-  | model.ptrLike_alternation
-  | model.lPart_alternation
-  | model.phrase.xml_alternation
-  | model.specDescLike_alternation
-  | model.pPart.data_alternation
-  | model.ptrLike.form_alternation
-model.phrase_sequence =
-  model.segLike_sequence,
-  model.highlighted_sequence,
-  model.graphicLike_sequence,
-  model.pPart.msdesc_sequence,
-  model.pPart.edit_sequence,
-  model.ptrLike_sequence,
-  model.lPart_sequence,
-  model.phrase.xml_sequence,
-  model.specDescLike_sequence,
-  model.pPart.data_sequence,
-  model.ptrLike.form_sequence
-model.phrase_sequenceOptional =
-  model.segLike_sequenceOptional?,
-  model.highlighted_sequenceOptional?,
-  model.graphicLike_sequenceOptional?,
-  model.pPart.msdesc_sequenceOptional?,
-  model.pPart.edit_sequenceOptional?,
-  model.ptrLike_sequenceOptional?,
-  model.lPart_sequenceOptional?,
-  model.phrase.xml_sequenceOptional?,
-  model.specDescLike_sequenceOptional?,
-  model.pPart.data_sequenceOptional?,
-  model.ptrLike.form_sequenceOptional?
-model.phrase_sequenceOptionalRepeatable =
-  model.segLike_sequenceOptionalRepeatable*,
-  model.highlighted_sequenceOptionalRepeatable*,
-  model.graphicLike_sequenceOptionalRepeatable*,
-  model.pPart.msdesc_sequenceOptionalRepeatable*,
-  model.pPart.edit_sequenceOptionalRepeatable*,
-  model.ptrLike_sequenceOptionalRepeatable*,
-  model.lPart_sequenceOptionalRepeatable*,
-  model.phrase.xml_sequenceOptionalRepeatable*,
-  model.specDescLike_sequenceOptionalRepeatable*,
-  model.pPart.data_sequenceOptionalRepeatable*,
-  model.ptrLike.form_sequenceOptionalRepeatable*
-model.phrase_sequenceRepeatable =
-  model.segLike_sequenceRepeatable+,
-  model.highlighted_sequenceRepeatable+,
-  model.graphicLike_sequenceRepeatable+,
-  model.pPart.msdesc_sequenceRepeatable+,
-  model.pPart.edit_sequenceRepeatable+,
-  model.ptrLike_sequenceRepeatable+,
-  model.lPart_sequenceRepeatable+,
-  model.phrase.xml_sequenceRepeatable+,
-  model.specDescLike_sequenceRepeatable+,
-  model.pPart.data_sequenceRepeatable+,
-  model.ptrLike.form_sequenceRepeatable+
-model.limitedPhrase =
-  model.hiLike
-  | model.emphLike
-  | model.pPart.msdesc
-  | model.pPart.editorial
-  | model.ptrLike
-  | model.phrase.xml
-  | model.pPart.data
-model.limitedPhrase_alternation =
-  model.hiLike_alternation
-  | model.emphLike_alternation
-  | model.pPart.msdesc_alternation
-  | model.pPart.editorial_alternation
-  | model.ptrLike_alternation
-  | model.phrase.xml_alternation
-  | model.pPart.data_alternation
-model.limitedPhrase_sequence =
-  model.hiLike_sequence,
-  model.emphLike_sequence,
-  model.pPart.msdesc_sequence,
-  model.pPart.editorial_sequence,
-  model.ptrLike_sequence,
-  model.phrase.xml_sequence,
-  model.pPart.data_sequence
-model.limitedPhrase_sequenceOptional =
-  model.hiLike_sequenceOptional?,
-  model.emphLike_sequenceOptional?,
-  model.pPart.msdesc_sequenceOptional?,
-  model.pPart.editorial_sequenceOptional?,
-  model.ptrLike_sequenceOptional?,
-  model.phrase.xml_sequenceOptional?,
-  model.pPart.data_sequenceOptional?
-model.limitedPhrase_sequenceOptionalRepeatable =
-  model.hiLike_sequenceOptionalRepeatable*,
-  model.emphLike_sequenceOptionalRepeatable*,
-  model.pPart.msdesc_sequenceOptionalRepeatable*,
-  model.pPart.editorial_sequenceOptionalRepeatable*,
-  model.ptrLike_sequenceOptionalRepeatable*,
-  model.phrase.xml_sequenceOptionalRepeatable*,
-  model.pPart.data_sequenceOptionalRepeatable*
-model.limitedPhrase_sequenceRepeatable =
-  model.hiLike_sequenceRepeatable+,
-  model.emphLike_sequenceRepeatable+,
-  model.pPart.msdesc_sequenceRepeatable+,
-  model.pPart.editorial_sequenceRepeatable+,
-  model.ptrLike_sequenceRepeatable+,
-  model.phrase.xml_sequenceRepeatable+,
-  model.pPart.data_sequenceRepeatable+
-model.divLike = \div
-model.divLike_alternation = \div
-model.divLike_sequence = \div
-model.divLike_sequenceOptional = \div?
-model.divLike_sequenceOptionalRepeatable = \div*
-model.divLike_sequenceRepeatable = \div+
-model.divGenLike = divGen
-model.divGenLike_alternation = divGen
-model.divGenLike_sequence = divGen
-model.divGenLike_sequenceOptional = divGen?
-model.divGenLike_sequenceOptionalRepeatable = divGen*
-model.divGenLike_sequenceRepeatable = divGen+
-model.div1Like = div1
-model.div1Like_alternation = div1
-model.div1Like_sequence = div1
-model.div1Like_sequenceOptional = div1?
-model.div1Like_sequenceOptionalRepeatable = div1*
-model.div1Like_sequenceRepeatable = div1+
-model.div2Like = div2
-model.div2Like_alternation = div2
-model.div2Like_sequence = div2
-model.div2Like_sequenceOptional = div2?
-model.div2Like_sequenceOptionalRepeatable = div2*
-model.div2Like_sequenceRepeatable = div2+
-model.div3Like = div3
-model.div3Like_alternation = div3
-model.div3Like_sequence = div3
-model.div3Like_sequenceOptional = div3?
-model.div3Like_sequenceOptionalRepeatable = div3*
-model.div3Like_sequenceRepeatable = div3+
-model.div4Like = div4
-model.div4Like_alternation = div4
-model.div4Like_sequence = div4
-model.div4Like_sequenceOptional = div4?
-model.div4Like_sequenceOptionalRepeatable = div4*
-model.div4Like_sequenceRepeatable = div4+
-model.div5Like = div5
-model.div5Like_alternation = div5
-model.div5Like_sequence = div5
-model.div5Like_sequenceOptional = div5?
-model.div5Like_sequenceOptionalRepeatable = div5*
-model.div5Like_sequenceRepeatable = div5+
-model.div6Like = div6
-model.div6Like_alternation = div6
-model.div6Like_sequence = div6
-model.div6Like_sequenceOptional = div6?
-model.div6Like_sequenceOptionalRepeatable = div6*
-model.div6Like_sequenceRepeatable = div6+
-model.div7Like = div7
-model.div7Like_alternation = div7
-model.div7Like_sequence = div7
-model.div7Like_sequenceOptional = div7?
-model.div7Like_sequenceOptionalRepeatable = div7*
-model.div7Like_sequenceRepeatable = div7+
-model.applicationLike = application
-model.applicationLike_alternation = application
-model.applicationLike_sequence = application
-model.applicationLike_sequenceOptional = application?
-model.applicationLike_sequenceOptionalRepeatable = application*
-model.applicationLike_sequenceRepeatable = application+
-model.teiHeaderPart = encodingDesc | profileDesc
-model.teiHeaderPart_alternation = encodingDesc | profileDesc
-model.teiHeaderPart_sequence = encodingDesc, profileDesc
-model.teiHeaderPart_sequenceOptional = encodingDesc?, profileDesc?
-model.teiHeaderPart_sequenceOptionalRepeatable =
-  encodingDesc*, profileDesc*
-model.teiHeaderPart_sequenceRepeatable = encodingDesc+, profileDesc+
-model.sourceDescPart = scriptStmt | recordingStmt
-model.sourceDescPart_alternation = scriptStmt | recordingStmt
-model.sourceDescPart_sequence = scriptStmt, recordingStmt
-model.sourceDescPart_sequenceOptional = scriptStmt?, recordingStmt?
-model.sourceDescPart_sequenceOptionalRepeatable =
-  scriptStmt*, recordingStmt*
-model.sourceDescPart_sequenceRepeatable = scriptStmt+, recordingStmt+
-model.encodingDescPart =
-  projectDesc
-  | samplingDecl
-  | editorialDecl
-  | tagsDecl
-  | styleDefDecl
-  | refsDecl
-  | listPrefixDef
-  | classDecl
-  | geoDecl
-  | appInfo
-  | charDecl
-  | metDecl
-  | variantEncoding
-  | fsdDecl
-  | schemaSpec
-model.encodingDescPart_alternation =
-  projectDesc
-  | samplingDecl
-  | editorialDecl
-  | tagsDecl
-  | styleDefDecl
-  | refsDecl
-  | listPrefixDef
-  | classDecl
-  | geoDecl
-  | appInfo
-  | charDecl
-  | metDecl
-  | variantEncoding
-  | fsdDecl
-  | schemaSpec
-model.encodingDescPart_sequence =
-  projectDesc,
-  samplingDecl,
-  editorialDecl,
-  tagsDecl,
-  styleDefDecl,
-  refsDecl,
-  listPrefixDef,
-  classDecl,
-  geoDecl,
-  appInfo,
-  charDecl,
-  metDecl,
-  variantEncoding,
-  fsdDecl,
-  schemaSpec
-model.encodingDescPart_sequenceOptional =
-  projectDesc?,
-  samplingDecl?,
-  editorialDecl?,
-  tagsDecl?,
-  styleDefDecl?,
-  refsDecl?,
-  listPrefixDef?,
-  classDecl?,
-  geoDecl?,
-  appInfo?,
-  charDecl?,
-  metDecl?,
-  variantEncoding?,
-  fsdDecl?,
-  schemaSpec?
-model.encodingDescPart_sequenceOptionalRepeatable =
-  projectDesc*,
-  samplingDecl*,
-  editorialDecl*,
-  tagsDecl*,
-  styleDefDecl*,
-  refsDecl*,
-  listPrefixDef*,
-  classDecl*,
-  geoDecl*,
-  appInfo*,
-  charDecl*,
-  metDecl*,
-  variantEncoding*,
-  fsdDecl*,
-  schemaSpec*
-model.encodingDescPart_sequenceRepeatable =
-  projectDesc+,
-  samplingDecl+,
-  editorialDecl+,
-  tagsDecl+,
-  styleDefDecl+,
-  refsDecl+,
-  listPrefixDef+,
-  classDecl+,
-  geoDecl+,
-  appInfo+,
-  charDecl+,
-  metDecl+,
-  variantEncoding+,
-  fsdDecl+,
-  schemaSpec+
-model.editorialDeclPart =
-  correction
-  | normalization
-  | quotation
-  | hyphenation
-  | segmentation
-  | stdVals
-  | interpretation
-  | punctuation
-model.editorialDeclPart_alternation =
-  correction
-  | normalization
-  | quotation
-  | hyphenation
-  | segmentation
-  | stdVals
-  | interpretation
-  | punctuation
-model.editorialDeclPart_sequence =
-  correction,
-  normalization,
-  quotation,
-  hyphenation,
-  segmentation,
-  stdVals,
-  interpretation,
-  punctuation
-model.editorialDeclPart_sequenceOptional =
-  correction?,
-  normalization?,
-  quotation?,
-  hyphenation?,
-  segmentation?,
-  stdVals?,
-  interpretation?,
-  punctuation?
-model.editorialDeclPart_sequenceOptionalRepeatable =
-  correction*,
-  normalization*,
-  quotation*,
-  hyphenation*,
-  segmentation*,
-  stdVals*,
-  interpretation*,
-  punctuation*
-model.editorialDeclPart_sequenceRepeatable =
-  correction+,
-  normalization+,
-  quotation+,
-  hyphenation+,
-  segmentation+,
-  stdVals+,
-  interpretation+,
-  punctuation+
-model.profileDescPart =
-  abstract
-  | creation
-  | langUsage
-  | textClass
-  | calendarDesc
-  | handNotes
-  | listTranspose
-  | textDesc
-  | particDesc
-  | settingDesc
-model.profileDescPart_alternation =
-  abstract
-  | creation
-  | langUsage
-  | textClass
-  | calendarDesc
-  | handNotes
-  | listTranspose
-  | textDesc
-  | particDesc
-  | settingDesc
-model.profileDescPart_sequence =
-  abstract,
-  creation,
-  langUsage,
-  textClass,
-  calendarDesc,
-  handNotes,
-  listTranspose,
-  textDesc,
-  particDesc,
-  settingDesc
-model.profileDescPart_sequenceOptional =
-  abstract?,
-  creation?,
-  langUsage?,
-  textClass?,
-  calendarDesc?,
-  handNotes?,
-  listTranspose?,
-  textDesc?,
-  particDesc?,
-  settingDesc?
-model.profileDescPart_sequenceOptionalRepeatable =
-  abstract*,
-  creation*,
-  langUsage*,
-  textClass*,
-  calendarDesc*,
-  handNotes*,
-  listTranspose*,
-  textDesc*,
-  particDesc*,
-  settingDesc*
-model.profileDescPart_sequenceRepeatable =
-  abstract+,
-  creation+,
-  langUsage+,
-  textClass+,
-  calendarDesc+,
-  handNotes+,
-  listTranspose+,
-  textDesc+,
-  particDesc+,
-  settingDesc+
-att.source.attributes = att.source.attribute.source
-att.source.attribute.source =
-  
-  ## provides a pointer to the bibliographical source from which a quotation or citation is drawn.
-  attribute source {
-    list { data.pointer+ }
-  }?
-model.resourceLike = facsimile | sourceDoc | fsdDecl
-model.resourceLike_alternation = facsimile | sourceDoc | fsdDecl
-model.resourceLike_sequence = facsimile, sourceDoc, fsdDecl
-model.resourceLike_sequenceOptional = facsimile?, sourceDoc?, fsdDecl?
-model.resourceLike_sequenceOptionalRepeatable =
-  facsimile*, sourceDoc*, fsdDecl*
-model.resourceLike_sequenceRepeatable = facsimile+, sourceDoc+, fsdDecl+
-model.orgStateLike = state
-model.orgStateLike_alternation = state
-model.orgStateLike_sequence = state
-model.orgStateLike_sequenceOptional = state?
-model.orgStateLike_sequenceOptionalRepeatable = state*
-model.orgStateLike_sequenceRepeatable = state+
-att.personal.attributes =
-  att.naming.attributes,
-  att.personal.attribute.full,
-  att.personal.attribute.sort
-att.personal.attribute.full =
-  
-  ## indicates whether the name component is given in full, as an abbreviation or simply as an initial.
-  [ a:defaultValue = "yes" ]
-  attribute full {
-    
-    ## the name component is spelled out in full.
-    "yes"
-    | 
-      ## (abbreviated) the name component is given in an abbreviated form.
-      "abb"
-    | 
-      ## (initial letter) the name component is indicated only by one initial.
-      "init"
-  }?
-att.personal.attribute.sort =
-  
-  ## specifies the sort order of the name component in relation to others within the name.
-  attribute sort { data.count }?
-model.placeLike = place
-model.placeLike_alternation = place
-model.placeLike_sequence = place
-model.placeLike_sequenceOptional = place?
-model.placeLike_sequenceOptionalRepeatable = place*
-model.placeLike_sequenceRepeatable = place+
-# 2. elements
-
-# 3. macros
-macro.paraContent =
-  (text | model.gLike | model.phrase | model.inter | model.global | lg)*
-macro.limitedContent = (text | model.limitedPhrase | model.inter)*
-macro.phraseSeq = (text | model.gLike | model.phrase | model.global)*
-macro.phraseSeq.limited = (text | model.limitedPhrase | model.global)*
-macro.specialPara =
-  (text
-   | model.gLike
-   | model.phrase
-   | model.inter
-   | model.divPart
-   | model.global)*
-macro.xtext = (text | model.gLike)*
-data.certainty = "high" | "medium" | "low" | "unknown"
-data.probability = xsd:double { minInclusive = "0" maxInclusive = "1" }
-data.numeric =
-  xsd:double
-  | xsd:token { pattern = "(\-?[\d]+/\-?[\d]+)" }
-  | xsd:decimal
-data.interval =
-  xsd:float { minExclusive = "0" }
-  | "regular"
-  | "irregular"
-  | "unknown"
-data.percentage = xsd:nonNegativeInteger { maxInclusive = "100" }
-data.count = xsd:nonNegativeInteger
-data.temporal.w3c =
-  xsd:date
-  | xsd:gYear
-  | xsd:gMonth
-  | xsd:gDay
-  | xsd:gYearMonth
-  | xsd:gMonthDay
-  | xsd:time
-  | xsd:dateTime
-data.duration.w3c = xsd:duration
-data.truthValue = xsd:boolean
-data.xTruthValue = xsd:boolean | "unknown" | "inapplicable"
-data.language = xsd:language | ""
-data.namespace = xsd:anyURI
-data.outputMeasurement =
-  xsd:token {
-    pattern =
-      "[\-+]?\d+(\.\d+)?(%|cm|mm|in|pt|pc|px|em|ex|gd|rem|vw|vh|vm)"
-  }
-data.pattern = xsd:token
-data.point =
-  xsd:token { pattern = "(\-?[0-9]+\.?[0-9]*,\-?[0-9]+\.?[0-9]*)" }
-data.pointer = xsd:anyURI
-data.version = xsd:token { pattern = "[\d]+(\.[\d]+){0,2}" }
-data.versionNumber =
-  xsd:token { pattern = "[\d]+[a-z]*[\d]*(\.[\d]+[a-z]*[\d]*){0,3}" }
-data.replacement = text
-data.xpath = text
-data.word = xsd:token { pattern = "(\p{L}|\p{N}|\p{P}|\p{S})+" }
-data.sex = data.word
-data.text = xsd:string
-data.name = xsd:Name
-data.xmlName = xsd:NCName
-data.enumerated = data.name
-data.temporal.iso =
-  xsd:date
-  | xsd:gYear
-  | xsd:gMonth
-  | xsd:gDay
-  | xsd:gYearMonth
-  | xsd:gMonthDay
-  | xsd:time
-  | xsd:dateTime
-  | xsd:token { pattern = "[0-9.,DHMPRSTWYZ/:+\-]+" }
-data.duration.iso = xsd:token { pattern = "[0-9.,DHMPRSTWYZ/:+\-]+" }
diff --git a/resources/schema/tei/textstructure.rnc b/resources/schema/tei/textstructure.rnc
deleted file mode 100644
index b3adad5fb1c6b67a7915a4056ceea46ff63b20e9..0000000000000000000000000000000000000000
--- a/resources/schema/tei/textstructure.rnc
+++ /dev/null
@@ -1,440 +0,0 @@
-namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"
-namespace ns1 = "http://purl.oclc.org/dsdl/schematron"
-
-# Schema generated 2014-09-16T18:57:47Z
-# Edition: Version 2.7.0. Last updated on
-#	16th September 2014, revision 13036
-# This material is dual-licensed.
-# [http://creativecommons.org/licenses/by/3.0/] Distributed under a Creative Commons Attribution 3.0 Unported License.  [http://www.opensource.org/licenses/BSD-2-Clause] Copyright 2014 TEI Consortium. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. This software is provided by the copyright holders and contributors "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the copyright holder or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage. TEI material can be licensed differently depending on the use you intend to make of it. Hence it is made available under both the CC+BY and BSD-2 licences. The CC+BY licence is generally appropriate for usages which treat TEI content as data or documentation. The BSD-2 licence is generally appropriate for usage of TEI content in a software environment. For further information or clarification, please contact the TEI Consortium. Default text structure
-
-# Definitions from module textstructure
-
-# Set global predeclared macros
-
-# Set predeclared macros
-
-# 0. predeclared macros
-
-# 1. classes
-
-# 2. elements
-TEI =
-  
-  ## (TEI document) contains a single TEI-conformant document, comprising a TEI header and a text, either in isolation or as part of a teiCorpus element. [ ]
-  element TEI { TEI.content, TEI.localattributes }
-TEI.content =
-  (teiHeader,
-   ((model.resourceLike+, \text?) | \text))
-  >> ns1:ns [ prefix = "tei" uri = "http://www.tei-c.org/ns/1.0" ]
-  >> ns1:ns [ prefix = "xs" uri = "http://www.w3.org/2001/XMLSchema" ]
-  >> ns1:ns [
-       prefix = "rng"
-       uri = "http://relaxng.org/ns/structure/1.0"
-     ]
-TEI.localattributes =
-  att.global.attributes,
-  
-  ## specifies the major version number of the TEI Guidelines against which this document is valid.
-  attribute version { data.version }?,
-  empty
-argument =
-  
-  ## contains a formal list or prose description of the topics addressed by a subdivision of a text. [ ]
-  element argument { argument.content, argument.localattributes }
-argument.content =
-  (model.global | model.headLike)*, (model.common, model.global*)+
-argument.localattributes = att.global.attributes, empty
-back =
-  
-  ## (back matter) contains any appendixes, etc. following the main part of a text. [ ]
-  element back { back.content, back.localattributes }
-back.content =
-  (model.frontPart
-   | model.pLike.front
-   | model.pLike
-   | model.listLike
-   | model.global)*,
-  ((model.div1Like, (model.frontPart | model.div1Like | model.global)*)
-   | (model.divLike,
-      (model.frontPart | model.divLike | model.global)*))?,
-  (model.divBottomPart, (model.divBottomPart | model.global)*)?
-back.localattributes =
-  att.global.attributes, att.declaring.attributes, empty
-body =
-  
-  ## (text body) contains the whole body of a single unitary text, excluding any front or back matter. []
-  element body { body.content, body.localattributes }
-body.content =
-  model.global*,
-  (model.divTop, (model.global | model.divTop)*)?,
-  (model.divGenLike, (model.global | model.divGenLike)*)?,
-  ((model.divLike, (model.global | model.divGenLike)*)+
-   | (model.div1Like, (model.global | model.divGenLike)*)+
-   | ((model.common, model.global*)+,
-      ((model.divLike, (model.global | model.divGenLike)*)+
-       | (model.div1Like, (model.global | model.divGenLike)*)+)?)),
-  (model.divBottom, model.global*)*
-body.localattributes =
-  att.global.attributes, att.declaring.attributes, empty
-byline =
-  
-  ## contains the primary statement of responsibility given for a work on its title page or at the head or end of the work. [ ]
-  element byline { byline.content, byline.localattributes }
-byline.content =
-  (text | model.gLike | model.phrase | docAuthor | model.global)*
-byline.localattributes = att.global.attributes, empty
-closer =
-  
-  ## groups together salutations, datelines, and similar phrases appearing as a final group at the end of a division, especially of a letter. [ ]
-  element closer { closer.content, closer.localattributes }
-closer.content =
-  (text
-   | model.gLike
-   | signed
-   | dateline
-   | salute
-   | model.phrase
-   | model.global)*
-closer.localattributes = att.global.attributes, empty
-dateline =
-  
-  ## contains a brief description of the place, date, time, etc. of production of a letter, newspaper story, or other work, prefixed or suffixed to it as a kind of heading or trailer. []
-  element dateline { dateline.content, dateline.localattributes }
-dateline.content =
-  (text | model.gLike | model.phrase | model.global | docDate)*
-dateline.localattributes = att.global.attributes, empty
-\div =
-  
-  ## (text division) contains a subdivision of the front, body, or back of a text. []
-  element div { div.content, div.localattributes }
-div.content =
-  (model.divTop | model.global)*,
-  ((((model.divLike | model.divGenLike), model.global*)+
-    | ((model.common, model.global*)+,
-       ((model.divLike | model.divGenLike), model.global*)*)),
-   (model.divBottom, model.global*)*)?
-div.localattributes =
-  att.global.attributes,
-  att.divLike.attributes,
-  att.typed.attributes,
-  att.declaring.attributes,
-  empty
-div1 =
-  
-  ## (level-1 text division) contains a first-level subdivision of the front, body, or back of a text. []
-  element div1 { div1.content, div1.localattributes }
-div1.content =
-  (model.divTop | model.global)*,
-  ((((model.div2Like | model.divGenLike), model.global*)+
-    | ((model.common, model.global*)+,
-       ((model.div2Like | model.divGenLike), model.global*)*)),
-   (model.divBottom, model.global*)*)?
-div1.localattributes =
-  att.global.attributes,
-  att.divLike.attributes,
-  att.typed.attributes,
-  att.declaring.attributes,
-  empty
-div2 =
-  
-  ## (level-2 text division) contains a second-level subdivision of the front, body, or back of a text. []
-  element div2 { div2.content, div2.localattributes }
-div2.content =
-  (model.divTop | model.global)*,
-  ((((model.div3Like | model.divGenLike), model.global*)+
-    | ((model.common, model.global*)+,
-       ((model.div3Like | model.divGenLike), model.global*)*)),
-   (model.divBottom, model.global*)*)?
-div2.localattributes =
-  att.global.attributes,
-  att.divLike.attributes,
-  att.typed.attributes,
-  att.declaring.attributes,
-  empty
-div3 =
-  
-  ## (level-3 text division) contains a third-level subdivision of the front, body, or back of a text. []
-  element div3 { div3.content, div3.localattributes }
-div3.content =
-  (model.divTop | model.global)*,
-  ((((model.div4Like | model.divGenLike), model.global*)+
-    | ((model.common, model.global*)+,
-       ((model.div4Like | model.divGenLike), model.global*)*)),
-   (model.divBottom, model.global*)*)?
-div3.localattributes =
-  att.global.attributes,
-  att.divLike.attributes,
-  att.typed.attributes,
-  att.declaring.attributes,
-  empty
-div4 =
-  
-  ## (level-4 text division) contains a fourth-level subdivision of the front, body, or back of a text. []
-  element div4 { div4.content, div4.localattributes }
-div4.content =
-  (model.divTop | model.global)*,
-  ((((model.div5Like | model.divGenLike), model.global*)+
-    | ((model.common, model.global*)+,
-       ((model.div5Like | model.divGenLike), model.global*)*)),
-   (model.divBottom, model.global*)*)?
-div4.localattributes =
-  att.global.attributes,
-  att.divLike.attributes,
-  att.typed.attributes,
-  att.declaring.attributes,
-  empty
-div5 =
-  
-  ## (level-5 text division) contains a fifth-level subdivision of the front, body, or back of a text. []
-  element div5 { div5.content, div5.localattributes }
-div5.content =
-  (model.divTop | model.global)*,
-  ((((model.div6Like | model.divGenLike), model.global*)+
-    | ((model.common, model.global*)+,
-       ((model.div6Like | model.divGenLike), model.global*)*)),
-   (model.divBottom, model.global*)*)?
-div5.localattributes =
-  att.global.attributes,
-  att.divLike.attributes,
-  att.typed.attributes,
-  att.declaring.attributes,
-  empty
-div6 =
-  
-  ## (level-6 text division) contains a sixth-level subdivision of the front, body, or back of a text. []
-  element div6 { div6.content, div6.localattributes }
-div6.content =
-  (model.divTop | model.global)*,
-  ((((model.div7Like | model.divGenLike), model.global*)+
-    | ((model.common, model.global*)+,
-       ((model.div7Like | model.divGenLike), model.global*)*)),
-   (model.divBottom, model.global*)*)?
-div6.localattributes =
-  att.global.attributes,
-  att.divLike.attributes,
-  att.typed.attributes,
-  att.declaring.attributes,
-  empty
-div7 =
-  
-  ## (level-7 text division) contains the smallest possible subdivision of the front, body or back of a text, larger than a paragraph. []
-  element div7 { div7.content, div7.localattributes }
-div7.content =
-  (model.divTop | model.global)*,
-  ((model.common, model.global*)+, (model.divBottom, model.global*)*)?
-div7.localattributes =
-  att.global.attributes,
-  att.divLike.attributes,
-  att.typed.attributes,
-  att.declaring.attributes,
-  empty
-docAuthor =
-  
-  ## (document author) contains the name of the author of the document, as given on the title page (often but not always contained in a byline). []
-  element docAuthor { docAuthor.content, docAuthor.localattributes }
-docAuthor.content = macro.phraseSeq
-docAuthor.localattributes =
-  att.global.attributes, att.canonical.attributes, empty
-docDate =
-  
-  ## (document date) contains the date of a document, as given on a title page or in a dateline. []
-  element docDate { docDate.content, docDate.localattributes }
-docDate.content = macro.phraseSeq
-docDate.localattributes =
-  att.global.attributes,
-  
-  ## gives the value of the date in standard form, i.e. YYYY-MM-DD.
-  attribute when { data.temporal.w3c }?,
-  empty
-docEdition =
-  
-  ## (document edition) contains an edition statement as presented on a title page of a document. []
-  element docEdition { docEdition.content, docEdition.localattributes }
-docEdition.content = macro.paraContent
-docEdition.localattributes = att.global.attributes, empty
-docImprint =
-  
-  ## (document imprint) contains the imprint statement (place and date of publication, publisher name), as given (usually) at the foot of a title page. []
-  element docImprint { docImprint.content, docImprint.localattributes }
-docImprint.content =
-  (text
-   | model.gLike
-   | model.phrase
-   | pubPlace
-   | docDate
-   | publisher
-   | model.global)*
-docImprint.localattributes = att.global.attributes, empty
-docTitle =
-  
-  ## (document title) contains the title of a document, including all its constituents, as given on a title page. []
-  element docTitle { docTitle.content, docTitle.localattributes }
-docTitle.content = model.global*, (titlePart, model.global*)+
-docTitle.localattributes =
-  att.global.attributes, att.canonical.attributes, empty
-epigraph =
-  
-  ## contains a quotation, anonymous or attributed, appearing at the start or end of a section or on a title page. [  ]
-  element epigraph { epigraph.content, epigraph.localattributes }
-epigraph.content = (model.common | model.global)*
-epigraph.localattributes = att.global.attributes, empty
-floatingText =
-  
-  ## contains a single text of any kind, whether unitary or composite, which interrupts the text containing it at any point and after which the surrounding text resumes. []
-  element floatingText {
-    floatingText.content, floatingText.localattributes
-  }
-floatingText.content =
-  model.global*,
-  (front, model.global*)?,
-  (body | group),
-  model.global*,
-  (back, model.global*)?
-floatingText.localattributes =
-  att.global.attributes,
-  att.declaring.attributes,
-  att.typed.attributes,
-  empty
-front =
-  
-  ## (front matter) contains any prefatory matter (headers, title page, prefaces, dedications, etc.) found at the start of a document, before the main body. [ ]
-  element front { front.content, front.localattributes }
-front.content =
-  (model.frontPart | model.pLike | model.pLike.front | model.global)*,
-  (((model.div1Like, (model.div1Like | model.frontPart | model.global)*)
-    | (model.divLike,
-       (model.divLike | model.frontPart | model.global)*)),
-   (model.divBottom, (model.divBottom | model.global)*)?)?
-front.localattributes =
-  att.global.attributes, att.declaring.attributes, empty
-group =
-  
-  ## contains the body of a composite text, grouping together a sequence of distinct texts (or groups of such texts) which are regarded as a unit for some purpose, for example the collected works of an author, a sequence of prose essays, etc. [  ]
-  element group { group.content, group.localattributes }
-group.content =
-  (model.divTop | model.global)*,
-  ((\text | group), (\text | group | model.global)*),
-  model.divBottom*
-group.localattributes =
-  att.global.attributes,
-  att.declaring.attributes,
-  att.typed.attributes,
-  empty
-imprimatur =
-  
-  ## contains a formal statement authorizing the publication of a work, sometimes required to appear on a title page or its verso. []
-  element imprimatur { imprimatur.content, imprimatur.localattributes }
-imprimatur.content = macro.paraContent
-imprimatur.localattributes = att.global.attributes, empty
-opener =
-  
-  ## groups together dateline, byline, salutation, and similar phrases appearing as a preliminary group at the start of a division, especially of a letter. []
-  element opener { opener.content, opener.localattributes }
-opener.content =
-  (text
-   | model.gLike
-   | model.phrase
-   | argument
-   | byline
-   | dateline
-   | epigraph
-   | salute
-   | signed
-   | model.global)*
-opener.localattributes = att.global.attributes, empty
-postscript =
-  
-  ## contains a postscript, e.g. to a letter. []
-  element postscript { postscript.content, postscript.localattributes }
-postscript.content =
-  (model.global | model.divTopPart)*,
-  model.common,
-  (model.global | model.common)*,
-  (model.divBottomPart, model.global*)*
-postscript.localattributes = att.global.attributes, empty
-salute =
-  
-  ## (salutation) contains a salutation or greeting prefixed to a foreword, dedicatory epistle, or other division of a text, or the salutation in the closing of a letter, preface, etc. []
-  element salute { salute.content, salute.localattributes }
-salute.content = macro.paraContent
-salute.localattributes = att.global.attributes, empty
-signed =
-  
-  ## (signature) contains the closing salutation, etc., appended to a foreword, dedicatory epistle, or other division of a text. []
-  element signed { signed.content, signed.localattributes }
-signed.content = macro.paraContent
-signed.localattributes = att.global.attributes, empty
-\text =
-  
-  ## contains a single text of any kind, whether unitary or composite, for example a poem or drama, a collection of essays, a novel, a dictionary, or a corpus sample. [ ]
-  element text { text.content, text.localattributes }
-text.content =
-  model.global*,
-  (front, model.global*)?,
-  (body | group),
-  model.global*,
-  (back, model.global*)?
-text.localattributes =
-  att.global.attributes,
-  att.declaring.attributes,
-  att.typed.attributes,
-  empty
-titlePage =
-  
-  ## (title page) contains the title page of a text, appearing within the front or back matter. []
-  element titlePage { titlePage.content, titlePage.localattributes }
-titlePage.content =
-  model.global*,
-  model.titlepagePart,
-  (model.titlepagePart | model.global)*
-titlePage.localattributes =
-  att.global.attributes,
-  
-  ## classifies the title page according to any convenient typology.
-  attribute type { data.enumerated }?,
-  empty
-titlePart =
-  
-  ## contains a subsection or division of the title of a work, as indicated on a title page. []
-  element titlePart { titlePart.content, titlePart.localattributes }
-titlePart.content = macro.paraContent
-titlePart.localattributes =
-  att.global.attributes,
-  
-  ## specifies the role of this subdivision of the title.
-  ## Suggested values include: 1] main; 2] sub(subordinate) ; 3] alt(alternate) ; 4] short; 5] desc(descriptive) 
-  [ a:defaultValue = "main" ]
-  attribute type {
-    
-    ## main title of the work
-    "main"
-    | 
-      ## (subordinate) subtitle of the work
-      "sub"
-    | 
-      ## (alternate) alternative title of the work
-      "alt"
-    | 
-      ## abbreviated form of title
-      "short"
-    | 
-      ## (descriptive) descriptive paraphrase of the work
-      "desc"
-    | xsd:Name
-  }?,
-  empty
-trailer =
-  
-  ## contains a closing title or footer appearing at the end of a division of a text. [ ]
-  element trailer { trailer.content, trailer.localattributes }
-trailer.content =
-  (text
-   | lg
-   | model.gLike
-   | model.phrase
-   | model.inter
-   | model.lLike
-   | model.global)*
-trailer.localattributes =
-  att.global.attributes, att.typed.attributes, empty
-# 3. macros