default namespace = "" namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0" namespace ns1 = "http://www.tei-c.org/ns/1.0" namespace ns2 = "http://www.tei-c.org/ns/Examples" namespace rng = "http://relaxng.org/ns/structure/1.0" namespace s = "http://www.ascc.net/xml/schematron" namespace sch = "http://purl.oclc.org/dsdl/schematron" namespace xlink = "http://www.w3.org/1999/xlink" # Schema generated from ODD source 2011-09-12T15:09:18Z. # Edition: 1.9.0. Last updated on February 25th 2011. # macro.paraContent = (text | model.gLike | model.phrase | model.inter | model.global)* 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)* macro.anyXML = element * - (ns1:* | ns2:egXML) { attribute * { text }*, (text | macro.anyXML)* } 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 { xsd:anyURI, xsd:anyURI* } }? 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 { xsd:string }? 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 { xsd:anyURI, xsd:anyURI* } }? att.ranging.attributes = att.ranging.attribute.atLeast, att.ranging.attribute.atMost, att.ranging.attribute.min, att.ranging.attribute.max att.ranging.attribute.atLeast = ## gives a minimum estimated value for the approximate measurement. attribute atLeast { xsd:double | xsd:token { pattern = "(\-?[\d]+/\-?[\d]+)" } | xsd:decimal }? att.ranging.attribute.atMost = ## gives a maximum estimated value for the approximate measurement. attribute atMost { xsd:double | xsd:token { pattern = "(\-?[\d]+/\-?[\d]+)" } | xsd:decimal }? att.ranging.attribute.min = ## where the measurement summarizes more than one observation ## or a range, supplies the minimum value ## observed. attribute min { xsd:double | xsd:token { pattern = "(\-?[\d]+/\-?[\d]+)" } | xsd:decimal }? att.ranging.attribute.max = ## where the measurement summarizes more than one observation ## or a range, supplies the maximum value ## observed. attribute max { xsd:double | xsd:token { pattern = "(\-?[\d]+/\-?[\d]+)" } | xsd:decimal }? 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 { xsd:double | xsd:token { pattern = "(\-?[\d]+/\-?[\d]+)" } | xsd:decimal }? 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 { list { xsd:token { pattern = "(\p{L}|\p{N}|\p{P}|\p{S})+" }, xsd:token { pattern = "(\p{L}|\p{N}|\p{P}|\p{S})+" }* } }? att.dimensions.attribute.precision = ## characterizes the precision of the values specified by the other attributes. attribute precision { "high" | "medium" | "low" | "unknown" }? 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 { xsd:Name }? 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 { xsd:Name }? att.datable.w3c.attributes = att.datable.w3c.attribute.period, 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.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 { xsd:anyURI }? att.datable.w3c.attribute.when = ## supplies the value of the date or time in a standard form, ## e.g. yyyy-mm-dd. attribute when { xsd:date | xsd:gYear | xsd:gMonth | xsd:gDay | xsd:gYearMonth | xsd:gMonthDay | xsd:time | xsd:dateTime }? att.datable.w3c.attribute.notBefore = ## specifies the earliest possible date for the event in ## standard form, e.g. yyyy-mm-dd. attribute notBefore { xsd:date | xsd:gYear | xsd:gMonth | xsd:gDay | xsd:gYearMonth | xsd:gMonthDay | xsd:time | xsd:dateTime }? att.datable.w3c.attribute.notAfter = ## specifies the latest possible date for the event in ## standard form, e.g. yyyy-mm-dd. attribute notAfter { xsd:date | xsd:gYear | xsd:gMonth | xsd:gDay | xsd:gYearMonth | xsd:gMonthDay | xsd:time | xsd:dateTime }? att.datable.w3c.attribute.from = ## indicates the starting point of the period in standard form, e.g. yyyy-mm-dd. attribute from { xsd:date | xsd:gYear | xsd:gMonth | xsd:gDay | xsd:gYearMonth | xsd:gMonthDay | xsd:time | xsd:dateTime }? att.datable.w3c.attribute.to = ## indicates the ending point of the period in standard ## form, e.g. yyyy-mm-dd. attribute to { xsd:date | xsd:gYear | xsd:gMonth | xsd:gDay | xsd:gYearMonth | xsd:gMonthDay | xsd:time | xsd:dateTime }? att.datable.attributes = att.datable.w3c.attributes, att.datable.iso.attributes 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.divLike.attributes = att.metrical.attributes 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 { xsd:Name }? att.responsibility.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 { "high" | "medium" | "low" | "unknown" }? att.responsibility.attribute.resp = ## (responsible party) indicates the agency responsible for the intervention or interpretation, for example an ## editor or transcriber. attribute resp { list { xsd:anyURI, xsd:anyURI* } }? att.editLike.attributes = att.dimensions.attributes, att.responsibility.attributes, att.editLike.attribute.evidence, att.editLike.attribute.source 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), ( ## 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.source = ## contains a list of one or more pointers indicating sources ## supporting the given intervention or interpretation. attribute source { list { xsd:anyURI, xsd:anyURI* } }? att.global.attributes = att.global.linking.attributes, att.global.analytic.attributes, att.global.facs.attributes, att.global.attribute.xmlid, att.global.attribute.n, att.global.attribute.xmllang, 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 { list { xsd:token { pattern = "(\p{L}|\p{N}|\p{P}|\p{S})+" }, xsd:token { pattern = "(\p{L}|\p{N}|\p{P}|\p{S})+" }* } }? att.global.attribute.xmllang = ## (language) indicates the language of the element content using a tag generated ## according to BCP 47 ## attribute xml:lang { xsd:language }? att.global.attribute.xmlspace = ## signals an intention about how white space should be ## managed by applications. attribute xml:space { ## the processor should treat white space according to the ## default XML white space handling rules "default" | ## the processor should preserve unchanged any and all ## white space in the source "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 { xsd: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 { xsd:anyURI, xsd:anyURI* } }? 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 { xsd:Name, xsd: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 { xsd:anyURI, xsd:anyURI* } }? att.handFeatures.attribute.medium = ## describes the tint or type of ink, e.g. brown, or other ## writing medium, e.g. pencil attribute medium { xsd:Name }? 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 { xsd:token { pattern = "(\p{L}|\p{N}|\p{P}|\p{S})+" } }? 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, for example the occupation of a person, or the status of a place. attribute role { xsd:Name }? 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 { xsd:anyURI, xsd:anyURI* } }? att.placement.attributes = att.placement.attribute.place att.placement.attribute.place = ## ## 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), ( ## 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 { xsd:Name }? att.typed.attribute.subtype = ## provides a sub-categorization of the element, if needed attribute subtype { xsd:Name }? att.pointing.attributes = att.pointing.attribute.target, att.pointing.attribute.evaluate att.pointing.attribute.target = ## specifies the destination of the reference by supplying one or more URI References attribute target { list { xsd:anyURI, xsd:anyURI* } }? 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.segLike.attributes = att.metrical.attributes, att.segLike.attribute.function, att.segLike.attribute.part att.segLike.attribute.function = ## characterizes the function of the segment. attribute function { xsd:Name }? att.segLike.attribute.part = ## specifies whether or not the segment is fragmented by some other ## structural element, for example a clause which is divided between two ## or more sentences. [ a:defaultValue = "N" ] attribute part { ## (yes) the segment is incomplete in some respect "Y" | ## (no) either the segment is complete, or no claim is made as to ## its completeness "N" | ## (initial) the initial part of an incomplete segment "I" | ## (medial) a medial part of an incomplete segment "M" | ## (final) the final part of an incomplete segment "F" }? att.sourced.attributes = att.sourced.attribute.ed att.sourced.attribute.ed = ## (edition) supplies an 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 { xsd:anyURI, xsd:anyURI* } }? 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 { xsd:anyURI }? 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 { xsd:nonNegativeInteger }? att.tableDecoration.attribute.cols = ## (columns) indicates the number of columns occupied by this cell or ## row. [ a:defaultValue = "1" ] attribute cols { xsd:nonNegativeInteger }? att.transcriptional.attributes = att.editLike.attributes, att.transcriptional.attribute.hand, att.transcriptional.attribute.status, att.transcriptional.attribute.seq att.transcriptional.attribute.hand = ## signifies the hand of the agent which made the intervention. attribute hand { xsd:anyURI }? 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 { xsd:Name }? 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 { xsd:nonNegativeInteger }? model.nameLike.agent = orgName | persName model.nameLike.agent_alternation = orgName | persName model.nameLike.agent_sequence = orgName, persName model.nameLike.agent_sequenceOptional = orgName?, persName? model.nameLike.agent_sequenceOptionalRepeatable = orgName*, persName* model.nameLike.agent_sequenceRepeatable = orgName+, persName+ model.segLike = w | c | pc model.segLike_alternation = w | c | pc model.segLike_sequence = w, c, pc model.segLike_sequenceOptional = w?, c?, pc? model.segLike_sequenceOptionalRepeatable = w*, c*, pc* model.segLike_sequenceRepeatable = w+, 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 | term | title model.emphLike_alternation = foreign | emph | term | title model.emphLike_sequence = foreign, emph, term, title model.emphLike_sequenceOptional = foreign?, emph?, term?, title? model.emphLike_sequenceOptionalRepeatable = foreign*, emph*, term*, title* model.emphLike_sequenceRepeatable = foreign+, emph+, term+, title+ 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.measureLike = dim | height | depth | width | geo model.measureLike_alternation = dim | height | depth | width | geo model.measureLike_sequence = dim, height, depth, width, geo model.measureLike_sequenceOptional = dim?, height?, depth?, width?, geo? model.measureLike_sequenceOptionalRepeatable = dim*, height*, depth*, width*, geo* model.measureLike_sequenceRepeatable = dim+, height+, depth+, width+, geo+ model.egLike = notAllowed model.egLike_alternation = notAllowed model.egLike_sequence = empty model.egLike_sequenceOptional = empty model.egLike_sequenceOptionalRepeatable = empty model.egLike_sequenceRepeatable = notAllowed model.graphicLike = graphic | formula model.graphicLike_alternation = graphic | formula model.graphicLike_sequence = graphic, formula model.graphicLike_sequenceOptional = graphic?, formula? model.graphicLike_sequenceOptionalRepeatable = graphic*, formula* model.graphicLike_sequenceRepeatable = graphic+, 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 model.pPart.editorial_alternation = choice model.pPart.editorial_sequence = choice model.pPart.editorial_sequenceOptional = choice? model.pPart.editorial_sequenceOptionalRepeatable = choice* model.pPart.editorial_sequenceRepeatable = choice+ model.pPart.transcriptional = app | surplus model.pPart.transcriptional_alternation = app | surplus model.pPart.transcriptional_sequence = app, surplus model.pPart.transcriptional_sequenceOptional = app?, surplus? model.pPart.transcriptional_sequenceOptionalRepeatable = app*, surplus* model.pPart.transcriptional_sequenceRepeatable = app+, surplus+ 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.ptrLike = ref model.ptrLike_alternation = ref model.ptrLike_sequence = ref model.ptrLike_sequenceOptional = ref? model.ptrLike_sequenceOptionalRepeatable = ref* model.ptrLike_sequenceRepeatable = 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 | fs | fLib model.global.meta_alternation = index | fs | fLib model.global.meta_sequence = index, fs, fLib model.global.meta_sequenceOptional = index?, fs?, fLib? model.global.meta_sequenceOptionalRepeatable = index*, fs*, fLib* model.global.meta_sequenceRepeatable = index+, fs+, fLib+ model.milestoneLike = milestone | pb | lb | cb | anchor | gb model.milestoneLike_alternation = milestone | pb | lb | cb | anchor | gb model.milestoneLike_sequence = milestone, pb, lb, cb, anchor, gb model.milestoneLike_sequenceOptional = milestone?, pb?, lb?, cb?, anchor?, gb? model.milestoneLike_sequenceOptionalRepeatable = milestone*, pb*, lb*, cb*, anchor*, gb* model.milestoneLike_sequenceRepeatable = milestone+, pb+, lb+, cb+, anchor+, gb+ model.gLike = g model.biblLike = bibl | biblStruct | biblFull | msDesc model.biblLike_alternation = bibl | biblStruct | biblFull | msDesc model.biblLike_sequence = bibl, biblStruct, biblFull, msDesc model.biblLike_sequenceOptional = bibl?, biblStruct?, biblFull?, msDesc? model.biblLike_sequenceOptionalRepeatable = bibl*, biblStruct*, biblFull*, msDesc* model.biblLike_sequenceRepeatable = bibl+, biblStruct+, biblFull+, 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 = label model.labelLike_alternation = label model.labelLike_sequence = label model.labelLike_sequenceOptional = label? model.labelLike_sequenceOptionalRepeatable = label* model.labelLike_sequenceRepeatable = label+ model.listLike = \list | listWit | listOrg | listEvent | listPerson | listPlace | listNym model.listLike_alternation = \list | listWit | listOrg | listEvent | listPerson | listPlace | listNym model.listLike_sequence = \list, listWit, listOrg, listEvent, listPerson, listPlace, listNym model.listLike_sequenceOptional = \list?, listWit?, listOrg?, listEvent?, listPerson?, listPlace?, listNym? model.listLike_sequenceOptionalRepeatable = \list*, listWit*, listOrg*, listEvent*, listPerson*, listPlace*, listNym* model.listLike_sequenceRepeatable = \list+, listWit+, listOrg+, listEvent+, listPerson+, listPlace+, listNym+ 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 model.pLike_alternation = p model.pLike_sequence = p model.pLike_sequenceOptional = p? model.pLike_sequenceOptionalRepeatable = p* model.pLike_sequenceRepeatable = p+ 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 model.featureVal.complex_alternation = fs model.featureVal.complex_sequence = fs model.featureVal.complex_sequenceOptional = fs? model.featureVal.complex_sequenceOptionalRepeatable = fs* model.featureVal.complex_sequenceRepeatable = fs+ model.featureVal.single = symbol model.featureVal.single_alternation = symbol model.featureVal.single_sequence = symbol model.featureVal.single_sequenceOptional = symbol? model.featureVal.single_sequenceOptionalRepeatable = symbol* model.featureVal.single_sequenceRepeatable = symbol+ model.entryPart = superEntry | sense | form | gen | gramGrp | pos | subc | def | etym | usg | xr | re model.entryPart.top = cit | form | gramGrp | def | etym | usg | xr | re model.global.edit = gap | addSpan | delSpan model.global.edit_alternation = gap | addSpan | delSpan model.global.edit_sequence = gap, addSpan, delSpan model.global.edit_sequenceOptional = gap?, addSpan?, delSpan? model.global.edit_sequenceOptionalRepeatable = gap*, addSpan*, delSpan* model.global.edit_sequenceRepeatable = gap+, addSpan+, delSpan+ model.divPart = model.lLike | model.pLike | lg | sp | figure model.divPart_alternation = model.lLike_alternation | model.pLike_alternation | lg | sp | figure model.divPart_sequence = model.lLike_sequence, model.pLike_sequence, lg, sp, figure model.divPart_sequenceOptional = model.lLike_sequenceOptional?, model.pLike_sequenceOptional?, lg?, sp?, figure? model.divPart_sequenceOptionalRepeatable = model.lLike_sequenceOptionalRepeatable*, model.pLike_sequenceOptionalRepeatable*, lg*, sp*, figure* model.divPart_sequenceRepeatable = model.lLike_sequenceRepeatable+, model.pLike_sequenceRepeatable+, lg+, sp+, figure+ model.persTraitLike = age | faith | langKnowledge | nationality | sex | socecStatus | trait model.persTraitLike_alternation = age | faith | langKnowledge | nationality | sex | socecStatus | trait model.persTraitLike_sequence = age, faith, langKnowledge, nationality, sex, socecStatus, trait model.persTraitLike_sequenceOptional = age?, faith?, langKnowledge?, nationality?, sex?, socecStatus?, trait? model.persTraitLike_sequenceOptionalRepeatable = age*, faith*, langKnowledge*, nationality*, sex*, socecStatus*, trait* model.persTraitLike_sequenceRepeatable = age+, faith+, langKnowledge+, nationality+, sex+, socecStatus+, trait+ model.persStateLike = persName | affiliation | education | floruit | occupation | residence model.persStateLike_alternation = persName | affiliation | education | floruit | occupation | residence model.persStateLike_sequence = persName, affiliation, education, floruit, occupation, residence model.persStateLike_sequenceOptional = persName?, affiliation?, education?, floruit?, occupation?, residence? model.persStateLike_sequenceOptionalRepeatable = persName*, affiliation*, education*, floruit*, occupation*, residence* model.persStateLike_sequenceRepeatable = persName+, affiliation+, education+, floruit+, occupation+, residence+ model.persEventLike = birth | death | event model.persEventLike_alternation = birth | death | event model.persEventLike_sequence = birth, death, event model.persEventLike_sequenceOptional = birth?, death?, event? model.persEventLike_sequenceOptionalRepeatable = birth*, death*, event* model.persEventLike_sequenceRepeatable = birth+, death+, event+ model.personLike = org | person | personGrp model.personPart = model.persTraitLike | model.persStateLike | model.persEventLike | bibl model.placeTraitLike = climate | location | population | terrain | trait model.placeNamePart = country | settlement model.placeNamePart_alternation = country | settlement model.placeNamePart_sequence = country, settlement model.placeNamePart_sequenceOptional = country?, settlement? model.placeNamePart_sequenceOptionalRepeatable = country*, settlement* model.placeNamePart_sequenceRepeatable = country+, settlement+ model.placeStateLike = model.placeNamePart model.placeStateLike_alternation = model.placeNamePart_alternation model.placeStateLike_sequence = model.placeNamePart_sequence model.placeStateLike_sequenceOptional = model.placeNamePart_sequenceOptional? model.placeStateLike_sequenceOptionalRepeatable = model.placeNamePart_sequenceOptionalRepeatable* model.placeStateLike_sequenceRepeatable = model.placeNamePart_sequenceRepeatable+ model.placeEventLike = event model.publicationStmtPart = address | date | publisher | pubPlace | authority | idno | availability model.glossLike = notAllowed 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 | q model.qLike_alternation = model.quoteLike_alternation | q model.qLike_sequence = model.quoteLike_sequence, q model.qLike_sequenceOptional = model.quoteLike_sequenceOptional?, q? model.qLike_sequenceOptionalRepeatable = model.quoteLike_sequenceOptionalRepeatable*, q* model.qLike_sequenceRepeatable = model.quoteLike_sequenceRepeatable+, q+ model.respLike = author | editor model.respLike_alternation = author | editor model.respLike_sequence = author, editor model.respLike_sequenceOptional = author?, editor? model.respLike_sequenceOptionalRepeatable = author*, editor* model.respLike_sequenceRepeatable = author+, editor+ model.divWrapper = byline | dateline | epigraph | salute | docAuthor | docDate model.divWrapper_alternation = byline | dateline | epigraph | salute | docAuthor | docDate model.divWrapper_sequence = byline, dateline, epigraph, salute, docAuthor, docDate model.divWrapper_sequenceOptional = byline?, dateline?, epigraph?, salute?, docAuthor?, docDate? model.divWrapper_sequenceOptionalRepeatable = byline*, dateline*, epigraph*, salute*, docAuthor*, docDate* model.divWrapper_sequenceRepeatable = byline+, dateline+, epigraph+, salute+, docAuthor+, docDate+ model.divTopPart = model.headLike | opener model.divTopPart_alternation = model.headLike_alternation | opener model.divTopPart_sequence = model.headLike_sequence, opener model.divTopPart_sequenceOptional = model.headLike_sequenceOptional?, opener? model.divTopPart_sequenceOptionalRepeatable = model.headLike_sequenceOptionalRepeatable*, opener* model.divTopPart_sequenceRepeatable = model.headLike_sequenceRepeatable+, opener+ model.divTop = model.divWrapper | model.divTopPart 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 | 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.titlepagePart = graphic | figure | byline | 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.quoteLike | model.respLike | model.msQuoteLike | bibl | filiation | msItem | msItemStruct | textLang | decoNote model.choicePart = sic | corr | reg | orig | unclear | abbr | expan model.imprintPart = publisher | pubPlace model.imprintPart_alternation = publisher | pubPlace model.imprintPart_sequence = publisher, pubPlace model.imprintPart_sequenceOptional = publisher?, pubPlace? model.imprintPart_sequenceOptionalRepeatable = publisher*, pubPlace* model.imprintPart_sequenceRepeatable = publisher+, pubPlace+ model.castItemPart = role | roleDesc | actor model.physDescPart_sequenceOptional = objectDesc?, handDesc?, typeDesc?, scriptDesc?, musicNotation?, decoDesc?, additions?, bindingDesc?, sealDesc?, accMat? model.addressLike = address | affiliation model.addressLike_alternation = address | affiliation model.addressLike_sequence = address, affiliation model.addressLike_sequenceOptional = address?, affiliation? model.addressLike_sequenceOptionalRepeatable = address*, affiliation* model.addressLike_sequenceRepeatable = address+, affiliation+ model.nameLike = model.nameLike.agent | model.offsetLike | model.placeStateLike | rs | idno | model.persNamePart model.nameLike_alternation = model.nameLike.agent_alternation | model.offsetLike_alternation | model.placeStateLike_alternation | rs | idno | model.persNamePart_alternation model.nameLike_sequence = model.nameLike.agent_sequence, model.offsetLike_sequence, model.placeStateLike_sequence, rs, idno, model.persNamePart_sequence model.nameLike_sequenceOptional = model.nameLike.agent_sequenceOptional?, model.offsetLike_sequenceOptional?, model.placeStateLike_sequenceOptional?, rs?, idno?, model.persNamePart_sequenceOptional? model.nameLike_sequenceOptionalRepeatable = model.nameLike.agent_sequenceOptionalRepeatable*, model.offsetLike_sequenceOptionalRepeatable*, model.placeStateLike_sequenceOptionalRepeatable*, rs*, idno*, model.persNamePart_sequenceOptionalRepeatable* model.nameLike_sequenceRepeatable = model.nameLike.agent_sequenceRepeatable+, model.offsetLike_sequenceRepeatable+, model.placeStateLike_sequenceRepeatable+, rs+, idno+, model.persNamePart_sequenceRepeatable+ model.global = model.global.meta | model.milestoneLike | model.noteLike | model.global.edit model.featureVal = model.featureVal.complex | model.featureVal.single model.biblPart = model.respLike | model.imprintPart | edition | extent | msIdentifier model.frontPart = model.frontPart.drama | titlePage model.addrPart = model.nameLike | addrLine 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.biblLike | model.labelLike | model.listLike | model.stageLike | model.qLike | castList | table model.inter_alternation = model.egLike_alternation | model.biblLike_alternation | model.labelLike_alternation | model.listLike_alternation | model.stageLike_alternation | model.qLike_alternation | castList | table model.inter_sequence = model.egLike_sequence, model.biblLike_sequence, model.labelLike_sequence, model.listLike_sequence, model.stageLike_sequence, model.qLike_sequence, castList, table model.inter_sequenceOptional = model.egLike_sequenceOptional?, model.biblLike_sequenceOptional?, model.labelLike_sequenceOptional?, model.listLike_sequenceOptional?, model.stageLike_sequenceOptional?, model.qLike_sequenceOptional?, castList?, table? model.inter_sequenceOptionalRepeatable = model.egLike_sequenceOptionalRepeatable*, model.biblLike_sequenceOptionalRepeatable*, model.labelLike_sequenceOptionalRepeatable*, model.listLike_sequenceOptionalRepeatable*, model.stageLike_sequenceOptionalRepeatable*, model.qLike_sequenceOptionalRepeatable*, castList*, table* model.inter_sequenceRepeatable = model.egLike_sequenceRepeatable+, model.biblLike_sequenceRepeatable+, model.labelLike_sequenceRepeatable+, model.listLike_sequenceRepeatable+, model.stageLike_sequenceRepeatable+, model.qLike_sequenceRepeatable+, castList+, table+ model.common = model.divPart | model.inter | model.entryLike model.phrase = model.segLike | model.highlighted | model.graphicLike | model.pPart.msdesc | model.pPart.edit | model.ptrLike | model.lPart | model.pPart.data model.limitedPhrase = model.emphLike | model.pPart.msdesc | model.pPart.editorial | model.ptrLike | model.pPart.data model.divLike = \div model.divGenLike = notAllowed model.div1Like = notAllowed model.teiHeaderPart = encodingDesc | profileDesc model.sourceDescPart = notAllowed model.encodingDescPart = charDecl | editorialDecl | variantEncoding model.editorialDeclPart = normalization model.profileDescPart = handNotes model.resourceLike = notAllowed 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 personal name. attribute sort { xsd:nonNegativeInteger }? model.placeLike = place p = ## (paragraph) marks paragraphs in prose. element p { macro.paraContent, att.global.attributes, att.global.attributes } foreign = ## (foreign) identifies a word or phrase as belonging to some language other than that of the ## surrounding text. element foreign { macro.phraseSeq, att.global.attributes, att.global.attributes } emph = ## (emphasized) marks words or phrases which are stressed or emphasized for ## linguistic or rhetorical effect. element emph { macro.paraContent, att.global.attributes, att.global.attributes } hi = ## (highlighted) marks a word or phrase as graphically distinct from the ## surrounding text, for reasons concerning which no claim is ## made. element hi { macro.paraContent, att.global.attributes, att.global.attributes } quote = ## (quotation) contains a phrase or passage attributed by the narrator or author to some agency external ## to the text. element quote { macro.specialPara, att.global.attributes, att.global.attributes, att.typed.attributes, att.msExcerpt.attributes } q = ## (separated from the surrounding text with quotation marks) contains material which is marked as (ostensibly) being somehow different than the ## surrounding text, 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 { macro.specialPara, att.global.attributes, att.global.attributes, att.ascribed.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(foreign words) ; 6] distinct(linguistically distinct) ; 7] term(technical term) ; 8] emph(rhetorically emphasized) ; 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 words) "foreign" | ## (linguistically distinct) "distinct" | ## (technical term) "term" | ## (rhetorically emphasized) "emph" | ## refering to itself, not its normal referant "mentioned" | xsd:Name }? } 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 { (model.qLike | model.egLike | model.biblLike | model.ptrLike | model.global | model.entryPart)+, att.global.attributes, att.global.attributes, att.typed.attributes } term = ## contains a single-word, multi-word, or symbolic designation which is regarded as a technical ## term. element term { macro.phraseSeq, att.global.attributes, att.global.attributes, ## specifies the destination of the reference by supplying one or more URI References attribute target { list { xsd:anyURI, xsd:anyURI* } }?, att.pointing.attribute.evaluate, att.canonical.attributes } sic = ## (latin for thus or so ## ) contains text reproduced although apparently incorrect or inaccurate. element sic { macro.paraContent } corr = ## (correction) contains the correct form of a passage apparently erroneous in the copy text. element corr { macro.paraContent } choice = ## groups a number of alternative encodings for the same point in ## a text. element choice { (model.choicePart | choice)* } reg = ## (regularization) contains a reading which has been regularized or normalized in some sense. element reg { macro.paraContent } orig = ## (original form) contains a reading which is marked as following the original, rather than being normalized ## or corrected. element orig { macro.paraContent } gap = ## (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 { model.glossLike*, att.global.attributes, att.global.attributes, att.editLike.attributes, ## gives the reason for omission. Sample values include sampling, ## inaudible, irrelevant, cancelled. attribute reason { list { xsd:token { pattern = "(\p{L}|\p{N}|\p{P}|\p{S})+" }, xsd:token { pattern = "(\p{L}|\p{N}|\p{P}|\p{S})+" }* } }?, ## in the case of text omitted from the transcription because of deliberate deletion by an ## identifiable hand, signifies the hand which made the deletion. attribute hand { xsd:anyURI }?, ## 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 { xsd:Name }? } unclear = ## contains a word, phrase, or passage which cannot be transcribed with certainty because it ## is illegible or inaudible in the source. element unclear { macro.paraContent, ## indicates why the material is hard to transcribe. attribute reason { list { xsd:token { pattern = "(\p{L}|\p{N}|\p{P}|\p{S})+" }, xsd:token { pattern = "(\p{L}|\p{N}|\p{P}|\p{S})+" }* } }?, ## 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 { xsd:anyURI }?, ## 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 { xsd:Name }?, att.global.attributes } rs = ## (referencing string) contains a general purpose name or referring string. element rs { macro.phraseSeq, ## (You must indicate the type of the referring string) indicates more specifically the object referred to by the referencing string. ## Values might include person, place, ship, ## element etc. attribute type { ## (natural person) "person" | ## (literary figure) "figure" | ## (self explanatory) "geographic-entity" | ## (any type of organization) "organization" | ## "other" }, att.global.attributes, att.global.attributes, att.naming.attributes } address = ## contains a postal address, for example of a ## publisher, an organization, or an individual. element address { (model.global*, (model.addrPart, model.global*)+), att.global.attributes, att.global.attributes } addrLine = ## (address line) contains one line of a postal address. element addrLine { macro.phraseSeq, att.global.attributes, att.global.attributes } date = ## contains a date in any format. element date { (text | model.gLike | model.phrase | model.global)*, att.global.attribute.xmlid, att.global.attribute.n, att.global.attribute.xmllang, att.global.attribute.xmlspace, att.global.linking.attributes, att.global.facs.attributes, att.global.attribute.xmlid, att.global.attribute.n, att.global.attribute.xmllang, att.global.attribute.xmlspace, att.global.linking.attributes, att.global.facs.attributes, att.datable.w3c.attribute.period, ## (You must enter a date in ISO format) supplies the value of the date or time in a standard form, ## e.g. yyyy-mm-dd. attribute when { xsd:date | xsd:gYear | xsd:gMonth | xsd:gDay | xsd:gYearMonth | xsd:gMonthDay | xsd:time | xsd:dateTime | xsd:token { pattern = "[0-9.,DHMPRSTWYZ/:+\-]+" } }?, ## (You must enter a date in ISO format) specifies the earliest possible date for the event in ## standard form, e.g. yyyy-mm-dd. attribute notBefore { xsd:date | xsd:gYear | xsd:gMonth | xsd:gDay | xsd:gYearMonth | xsd:gMonthDay | xsd:time | xsd:dateTime | xsd:token { pattern = "[0-9.,DHMPRSTWYZ/:+\-]+" } }?, ## (You must enter a date in ISO format) specifies the latest possible date for the event in ## standard form, e.g. yyyy-mm-dd. attribute notAfter { xsd:date | xsd:gYear | xsd:gMonth | xsd:gDay | xsd:gYearMonth | xsd:gMonthDay | xsd:time | xsd:dateTime | xsd:token { pattern = "[0-9.,DHMPRSTWYZ/:+\-]+" } }?, ## (You must enter a date in ISO format) indicates the starting point of the period in standard form, e.g. yyyy-mm-dd. attribute from { xsd:date | xsd:gYear | xsd:gMonth | xsd:gDay | xsd:gYearMonth | xsd:gMonthDay | xsd:time | xsd:dateTime | xsd:token { pattern = "[0-9.,DHMPRSTWYZ/:+\-]+" } }?, ## (You must enter a date in ISO format) indicates the ending point of the period in standard ## form, e.g. yyyy-mm-dd. attribute to { xsd:date | xsd:gYear | xsd:gMonth | xsd:gDay | xsd:gYearMonth | xsd:gMonthDay | xsd:time | xsd:dateTime | xsd:token { pattern = "[0-9.,DHMPRSTWYZ/:+\-]+" } }?, att.datable.iso.attributes, att.dimensions.attributes } time = ## contains a phrase defining a time of day in any format. element time { (text | model.gLike | model.phrase | model.global)*, att.global.attributes, att.global.attributes, att.datable.attributes, att.editLike.attributes, att.typed.attributes } abbr = ## (abbreviation) contains an abbreviation of any sort. element abbr { macro.phraseSeq, ## allows the encoder to classify the abbreviation according to some convenient ## typology. ## Sample values include: 1] suspension; 2] contraction; 3] brevigraph; 4] superscription; 5] acronym; 6] title; 7] organization; 8] geographic attribute type { xsd:Name }?, att.global.attributes } expan = ## (expansion) contains the expansion of an abbreviation. element expan { macro.phraseSeq } ref = ## (takes the function of ref and ptr. Can therefore also be empty) defines a reference to another location, possibly modified by additional text or comment. element ref { macro.paraContent >> sch:pattern [ id = "ref-constraint-refAtts" "\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." ] "\x{a}" ~ " " ] "\x{a}" ~ " " ], att.global.attributes, att.global.attributes, ## (The target of this pointer / reference) specifies the destination of the reference by supplying one or more URI References attribute target { xsd:anyURI }, att.typed.attribute.subtype } \list = ## (list) contains any sequence of items organized as a list. element list { ((model.divTop | model.global)*, ((item, model.global*)+ | (label, model.global*, item, model.global*)+), (model.divBottom, model.global*)*), att.global.attributes, att.global.attributes, ## describes the form of the list. ## Suggested values include: 1] ordered; 2] bulleted; 3] simple; 4] gloss [ a:defaultValue = "simple" ] attribute type { ## list items are numbered or lettered. "ordered" | ## list items are marked with a bullet or other typographic device. "bulleted" | ## list items are not numbered or bulleted. "simple" | ## each list item glosses some term or concept, which is given by a label element ## preceding the list item. "gloss" | xsd:Name }? } item = ## contains one component of a list. element item { macro.specialPara, att.global.attributes, att.global.attributes } label = ## contains the label associated with an item in a list; in glossaries, marks the term being ## defined. element label { macro.phraseSeq, att.global.attributes, att.global.attributes } 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 { macro.paraContent, att.global.attributes, att.global.attributes, att.typed.attributes } note = ## contains a note or annotation. element note { macro.specialPara, ## indicates whether the copy text shows the exact place of reference for the note. [ a:defaultValue = "true" ] attribute anchored { xsd:boolean }?, att.global.attribute.xmlid, att.global.attribute.n, att.global.attribute.xmllang, att.global.attribute.xmlspace, att.global.linking.attributes, att.global.facs.attributes, att.global.attribute.xmlid, att.global.attribute.n, att.global.attribute.xmllang, att.global.attribute.xmlspace, att.global.linking.attributes, att.global.facs.attributes, ## (The place of the note should be specified ## whenever the note refers to a note present in the ## original text. The current text is a simplified version ## of the P5 one) attribute place { list { ( ## "margin" | ## "other" | ## "app" | ## "foot" | ## "end" | ## "inline" | ## "interlinear"), ( ## "margin" | ## "other" | ## "app" | ## "foot" | ## "end" | ## "inline" | ## "interlinear")* } }?, ## specifies the destination of the reference by supplying one or more URI References attribute target { list { xsd:anyURI, xsd:anyURI* } }?, att.pointing.attribute.evaluate, att.responsibility.attribute.cert, ## (responsible party) indicates the agency responsible for the intervention or interpretation, for example an ## editor or transcriber. attribute resp { list { xsd:anyURI, xsd:anyURI* } }?, ## (The place of the note must be specified. The ## current text is a simplified version of the P5 ## one) characterizes the element in some sense, using any convenient ## classification scheme or typology. attribute type { ## "annotation" | ## "gloss" | ## "citation" | ## "other" }?, att.typed.attribute.subtype } index = ## (index entry) marks a location to be indexed for whatever purpose. element index { (term, index?)*, ## (You must indicate the type of this index) supplies a name to specify which index (of several) the index entry belongs to. attribute indexName { ## "name" | ## "place" | ## "subject" | ## "citation" | ## "other" }, att.global.attributes, att.global.attributes, att.spanning.attributes } graphic = ## indicates the location of an inline graphic, illustration, or figure. element graphic { model.glossLike*, ## (The notation used to express this formula) A URL which refers to the image itself. attribute url { xsd:anyURI }, att.global.attributes, att.global.attributes, att.internetMedia.attributes } 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 { empty, ## (You must indicate the unit that this milestone ## marks. The proposed values have been taken from the P5 ## documentation) provides a conventional name for the kind of section changing at this milestone. attribute unit { ## "book" | ## "poem" | ## "canto" | ## "stanza" | ## "act" | ## "scene" | ## "section" | ## "absent" }, att.global.attributes, att.global.attributes, att.typed.attributes, att.sourced.attributes, att.spanning.attributes, att.breaking.attributes } pb = ## (page break) marks the boundary between one page of a text and the next in a standard reference system. element pb { empty, att.global.attributes, att.global.attributes, att.typed.attributes, att.sourced.attributes, att.spanning.attributes, att.breaking.attributes } lb = ## (line break) marks the start of a new (typographic) line in some edition or version of a text. element lb { empty, att.global.attributes, att.global.attributes, att.typed.attributes, att.sourced.attributes, att.spanning.attributes, att.breaking.attributes } cb = ## (column break) marks the boundary between one column of a text and the next ## in a standard reference system. element cb { empty, att.global.attributes, att.global.attributes, att.typed.attributes, att.sourced.attributes, att.spanning.attributes, att.breaking.attributes } 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 { ((((author | editor), (author | editor)*, title+, (idno | editor)*) | ((title | ref)+, (idno | author | editor)*))?, model.noteLike*, (edition, (idno | editor)*)*, imprint, (imprint | extent)*), att.global.attributes, att.global.attributes } author = ## in a bibliographic reference, contains the name(s) of the ## author(s), personal or corporate, of a work; for example in the same ## form as that provided by a recognized bibliographic name authority. element author { macro.phraseSeq, att.global.attributes, att.global.attributes, att.naming.attributes } editor = ## 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 { macro.phraseSeq, att.global.attributes, att.global.attributes, att.naming.attributes } title = ## contains a title for any kind of work. element title { macro.paraContent, att.global.attributes, att.global.attributes, att.canonical.attributes, ## indicates the bibliographic level for a title, that is, whether ## it identifies an article, book, journal, series, or ## unpublished material. attribute level { ## (analytic) analytic title (article, poem, or other item ## published as part of a larger item) "a" | ## (monographic) monographic title (book, collection, or ## other item published as a distinct item, ## including single volumes of multi-volume ## works) "m" | ## (journal) journal title "j" | ## (series) series title "s" | ## (unpublished) title of unpublished material (including ## theses and dissertations unless ## published by a commercial press) "u" }?, ## 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 { xsd:Name }? } imprint = ## groups information relating to the publication or distribution ## of a bibliographic item. element imprint { ((model.imprintPart | model.dateLike), model.global*)+, att.global.attributes, att.global.attributes } publisher = ## provides the name of the organization responsible for the publication or distribution of a ## bibliographic item. element publisher { macro.phraseSeq, att.global.attributes, att.global.attributes } pubPlace = ## (publication place) contains the name of the place where a bibliographic item was published. element pubPlace { macro.phraseSeq, att.global.attributes, att.global.attributes, att.naming.attributes } bibl = ## (bibliographic citation) contains a loosely-structured bibliographic citation of which the sub-components may or may ## not be explicitly tagged. element bibl { (text | model.gLike | model.highlighted | model.pPart.data | model.pPart.edit | model.segLike | model.ptrLike | model.biblPart | model.global)*, att.global.attributes, att.global.attributes, att.declarable.attributes, att.typed.attributes } biblStruct = ## (structured bibliographic citation) contains a structured bibliographic citation, in which only bibliographic sub-elements ## appear and in a specified order. element biblStruct { (monogr+, (model.noteLike | idno)*), att.global.attributes, att.global.attributes, att.declarable.attributes, att.typed.attributes } l = ## (verse line) contains a single, possibly incomplete, line of verse. element l { macro.paraContent, att.global.attributes, att.global.attributes, att.metrical.attributes, att.enjamb.attributes, ## specifies whether or not the line is metrically complete. [ a:defaultValue = "N" ] attribute part { ## (yes) the line is metrically incomplete "Y" | ## (no) either the line is complete, or no claim is made as to its completeness "N" | ## (initial) the initial part of an incomplete line "I" | ## (medial) a medial part of an incomplete line "M" | ## (final) the final part of an incomplete line "F" }? } lg = ## (line group) contains a group of verse lines functioning as a formal unit, e.g. a stanza, refrain, ## verse paragraph, etc. element lg { ((model.divTop | model.global)*, (model.lLike | lg), (model.lLike | lg | model.global)*, (model.divBottom, model.global*)*), att.global.attributes, att.global.attributes, att.divLike.attributes, att.typed.attributes } sp = ## (speech) An individual speech in a performance text, or a passage presented as such in a prose or ## verse text. element sp { (model.global*, (speaker, model.global*)?, ((model.lLike | lg | model.pLike | model.stageLike | model.qLike), model.global*)+), att.global.attributes, att.global.attributes, att.ascribed.attributes } speaker = ## A specialized form of heading or label, giving the name of one or more speakers in a ## dramatic text or fragment. element speaker { macro.phraseSeq, att.global.attributes, att.global.attributes } stage = ## (stage direction) contains any kind of stage direction within a dramatic text or fragment. element stage { macro.specialPara, att.global.attributes, att.global.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 }? } model.entryLike = superEntry | entry model.entryLike_alternation = superEntry | entry model.entryLike_sequence = superEntry, entry model.entryLike_sequenceOptional = superEntry?, entry? model.entryLike_sequenceOptionalRepeatable = superEntry*, entry* model.entryLike_sequenceRepeatable = superEntry+, entry+ att.entryLike.attributes = att.entryLike.attribute.type, att.entryLike.attribute.sortKey att.entryLike.attribute.type = ## indicates type of entry, in dictionaries with multiple types. ## Suggested values include: 1] main; 2] hom(homograph) ; 3] xref(cross reference) ; 4] affix; 5] abbr(abbreviation) ; 6] supplemental; 7] foreign [ a:defaultValue = "main" ] attribute type { ## a main entry (default). "main" | ## (homograph) groups information relating to one homograph within an entry. "hom" | ## (cross reference) a reduced entry whose only function is to point to another main ## entry (e.g. for forms of an irregular verb or for variant spellings: ## was pointing to be, or ## esthete to aesthete). "xref" | ## an entry for a prefix, infix, or suffix. "affix" | ## (abbreviation) an entry for an abbreviation. "abbr" | ## a supplemental entry (for use in dictionaries which issue supplements to their main ## work in which they include updated information about entries). "supplemental" | ## an entry for a foreign word in a monolingual dictionary. "foreign" | xsd:Name }? att.entryLike.attribute.sortKey = ## contains a (sortable) character sequence reflecting the entry's alphabetical position in ## the printed dictionary. attribute sortKey { xsd:token { pattern = "(\p{L}|\p{N}|\p{P}|\p{S})+" } }? att.lexicographic.attributes = att.lexicographic.attribute.expand, att.lexicographic.attribute.norm, att.lexicographic.attribute.split, att.lexicographic.attribute.value, att.lexicographic.attribute.orig, att.lexicographic.attribute.location, att.lexicographic.attribute.mergedIn, att.lexicographic.attribute.opt att.lexicographic.attribute.expand = ## gives an expanded form of information presented more concisely in the dictionary attribute expand { text }? att.lexicographic.attribute.norm = ## (normalized) gives a normalized form of information given by the source text in a ## non-normalized form attribute norm { text }? att.lexicographic.attribute.split = ## gives the list of split values for a merged form attribute split { text }? att.lexicographic.attribute.value = ## gives a value which lacks any realization in the printed source text. attribute value { text }? att.lexicographic.attribute.orig = ## (original) gives the original string or is the empty string when the element does not appear ## in the source text. attribute orig { text }? att.lexicographic.attribute.location = ## provides a reference to an anchor element elsewhere in the document ## indicating the original location of this component. attribute location { xsd:anyURI }? att.lexicographic.attribute.mergedIn = ## gives a reference to another element, where the original appears as a merged form. attribute mergedIn { xsd:anyURI }? att.lexicographic.attribute.opt = ## (optional) indicates whether the element is optional or not [ a:defaultValue = "false" ] attribute opt { xsd:boolean }? superEntry = ## groups successive entries for a set of homographs. element superEntry { entry+, att.global.attributes, att.global.attributes, att.entryLike.attributes } entry = ## contains a reasonably well-structured dictionary entry. element entry { (model.milestoneLike*, usg*, form, sense), att.global.attributes, att.global.attributes, att.entryLike.attributes } sense = ## groups together all information relating to one word sense in a dictionary entry, for ## example definitions, examples, and translation equivalents. element sense { (text | model.gLike | sense | model.entryPart.top | model.phrase | model.global)*, ## gives the nesting depth of this sense. attribute level { xsd:double | xsd:token { pattern = "(\-?[\d]+/\-?[\d]+)" } | xsd:decimal }?, att.global.attributes, att.lexicographic.attributes } form = ## (form information group) groups all the information on the written and spoken forms of one headword. element form { (text | model.gLike | model.phrase | model.inter | model.formPart | model.global)*, ## classifies form as lemma (line), headword or simple. attribute type { ## (lemma, containing the headword) "lemma" | ## (the headword itself) "headword" | ## (single free lexical item) "simple" }, att.global.attributes, att.global.attributes, att.lexicographic.attributes } gen = ## (gender) identifies the morphological gender of a lexical item, as given in the dictionary. element gen { macro.paraContent, att.global.attributes, att.global.attributes, att.lexicographic.attributes } model.morphLike = gen model.morphLike_alternation = gen model.morphLike_sequence = gen model.morphLike_sequenceOptional = gen? model.morphLike_sequenceOptionalRepeatable = gen* model.morphLike_sequenceRepeatable = gen+ model.gramPart = model.morphLike | gramGrp | pos | subc | usg model.gramPart_alternation = model.morphLike_alternation | gramGrp | pos | subc | usg model.gramPart_sequence = model.morphLike_sequence, gramGrp, pos, subc, usg model.gramPart_sequenceOptional = model.morphLike_sequenceOptional?, gramGrp?, pos?, subc?, usg? model.gramPart_sequenceOptionalRepeatable = model.morphLike_sequenceOptionalRepeatable*, gramGrp*, pos*, subc*, usg* model.gramPart_sequenceRepeatable = model.morphLike_sequenceRepeatable+, gramGrp+, pos+, subc+, usg+ model.formPart = form | model.gramPart gramGrp = ## (grammatical information group) groups morpho-syntactic information about a lexical item, e.g. pos, gen, number, case, or ## iType (inflectional class). element gramGrp { pos, (text | model.gLike | model.phrase | model.inter | model.gramPart | model.global)*, att.global.attributes, att.lexicographic.attributes } pos = ## (part of speech) indicates the part of speech assigned to a dictionary ## headword such as noun, verb, or adjective. ## element pos { macro.paraContent, att.global.attributes, att.global.attributes, att.lexicographic.attributes } subc = ## (subcategorization) contains subcategorization information (transitive/intransitive, countable/non-countable, ## etc.) element subc { macro.paraContent, att.global.attributes, att.global.attributes, att.lexicographic.attributes } def = ## (definition) contains definition text in a dictionary entry. element def { macro.paraContent, att.global.attributes, att.global.attributes, att.lexicographic.attributes } etym = ## (etymology) encloses the etymological information in a dictionary entry. element etym { (text | model.gLike | model.phrase | model.inter | usg | def | model.morphLike | xr | model.global)*, att.global.attributes, att.global.attributes, att.lexicographic.attributes } usg = ## (usage) contains usage information in a dictionary entry. element usg { macro.paraContent, att.global.attributes, att.global.attributes, att.lexicographic.attributes, ## classifies the usage information using any convenient typology. ## Sample values include: 1] geo(geographic) ; 2] time; 3] dom(domain) ; 4] reg(register) ; 5] style; 6] plev(preference level) ; 7] lang(language) ; 8] gram(grammatical) ; 9] syn(synonym) ; 10] hyper(hypernym) ; 11] colloc(collocation) ; 12] comp(complement) ; 13] obj(object) ; 14] subj(subject) ; 15] verb; 16] hint attribute type { xsd:Name }? } xr = ## (cross-reference phrase) contains a phrase, sentence, or icon referring the reader to some other location in this or ## another text. element xr { (text | model.gLike | model.phrase | model.inter | usg | model.global)*, ## indicates the type of cross reference, using any convenient typology. ## Sample values include: 1] syn(synonym) ; 2] etym(etymological) ; 3] cf(compare or consult) ; 4] illus(illustration) attribute type { xsd:Name }?, att.global.attributes, att.lexicographic.attributes } re = ## (related entry) contains a dictionary entry for a lexical item related to the headword, such as a compound ## phrase or derived form, embedded inside a larger entry. element re { (text | model.gLike | sense | model.entryPart.top | model.phrase | model.global)*, att.global.attributes, att.global.attributes, att.lexicographic.attributes, att.typed.attributes } set = ## (setting) contains a description of the setting, time, locale, appearance, etc., of the action of a ## play, typically found in the front matter of a printed performance text (not a stage direction). element set { ((model.headLike | model.global)*, (model.common, model.global*)*), att.global.attributes, att.global.attributes } prologue = ## contains the prologue to a drama, typically spoken by an actor out of character, possibly in ## association with a particular performance or venue. element prologue { ((model.divTop | model.global)*, (model.common, model.global*)+, (model.divBottom, model.global*)*), att.global.attributes, att.global.attributes } epilogue = ## contains the epilogue to a drama, typically spoken by an actor out of character, possibly in ## association with a particular performance or venue. element epilogue { ((model.divTop | model.global)*, (model.common, model.global*)+, (model.divBottom, model.global*)*), att.global.attributes, att.global.attributes } performance = ## contains a section of front or back matter describing how a dramatic piece is to be ## performed in general or how it was performed on some specific occasion. element performance { ((model.divTop | model.global)*, (model.common, model.global*)+, (model.divBottom, model.global*)*), att.global.attributes, att.global.attributes } castList = ## (cast list) contains a single cast list or dramatis personae. element castList { ((model.divTop | model.global)*, (model.common, model.global*)*, ((castItem | castGroup), model.global*)+, (model.common, model.global*)*), att.global.attributes, att.global.attributes } castGroup = ## (cast list grouping) groups one or more individual castItem ## elements within a cast list. element castGroup { ((model.global | model.headLike)*, ((castItem | castGroup | roleDesc), model.global*)+, (trailer, model.global*)?), att.global.attributes, att.global.attributes } castItem = ## (cast list item) contains a single entry within a cast list, describing ## either a single role or a list of non-speaking roles. element castItem { (text | model.gLike | model.castItemPart | model.phrase | model.global)*, att.global.attributes, att.global.attributes, ## characterizes the cast item. ## [ a:defaultValue = "role" ] attribute type { ## the item describes a single role. ## "role" | ## the item describes a list of non-speaking roles. ## "list" }? } role = ## the name of a dramatic role, as given in a cast list. element role { macro.phraseSeq, att.global.attributes, att.global.attributes } roleDesc = ## (role description) describes a character's role in a drama. element roleDesc { macro.phraseSeq, att.global.attributes, att.global.attributes } actor = ## Name of an actor appearing within a cast list. element actor { macro.phraseSeq, att.global.attributes, att.global.attributes } move = ## (movement) marks the actual entrance or exit of one or more characters on stage. element move { empty, att.global.attributes, att.global.attributes, att.ascribed.attributes, ## characterizes the movement, for example as an entrance or exit. ## Suggested values include: 1] entrance; 2] exit; 3] onStage attribute type { ## character is entering the stage. "entrance" | ## character is exiting the stage. "exit" | ## character moves on stage "onStage" | xsd:Name }?, ## specifies the direction of a stage movement. ## Sample values include: 1] L(left) ; 2] R(right) ; 3] C(center) attribute where { list { xsd:Name, xsd:Name* } }?, ## (performance) identifies the performance or performances in which this movement occurred as specified. attribute perf { list { xsd:anyURI, xsd:anyURI* } }? } view = ## describes the visual context of some part of a screen play in ## terms of what the spectator sees, generally independent of any ## dialogue. element view { macro.specialPara, att.global.attributes, att.global.attributes } camera = ## describes a particular camera angle or viewpoint in a screen play. element camera { macro.paraContent, att.global.attributes, att.global.attributes, att.typed.attributes } sound = ## describes a sound effect or musical sequence specified within a screen play or radio script. element sound { macro.paraContent, att.global.attributes, att.global.attributes, ## categorizes the sound in some respect, e.g. as music, special effect, etc. attribute type { xsd:Name }?, ## indicates whether the sound overlaps the surrounding speeches or interrupts them. [ a:defaultValue = "unknown" ] attribute discrete { xsd:boolean | "unknown" | "inapplicable" }? } caption = ## contains the text of a caption or other text displayed as part of ## a film script or screenplay. element caption { macro.paraContent, att.global.attributes, att.global.attributes } tech = ## (technical stage direction) describes a special-purpose stage direction that is not ## meant for the actors. element tech { macro.paraContent, att.global.attributes, att.global.attributes, ## categorizes the technical stage direction. attribute type { ## a lighting cue "light" | ## a sound cue "sound" | ## a prop cue "prop" | ## a blocking instruction "block" }?, ## (performance) identifies the performance or performances to which this ## technical direction applies. attribute perf { xsd:Name }? } table = ## contains text displayed in tabular form, in rows and columns. element table { ((model.headLike | model.global)*, (row, model.global*)+), att.global.attributes, att.global.attributes, ## indicates the number of rows in the table. attribute rows { xsd:nonNegativeInteger }?, ## (columns) indicates the number of columns in each row of the table. attribute cols { xsd:nonNegativeInteger }? } row = ## contains one row of a table. element row { cell+, att.global.attributes, att.global.attributes, att.tableDecoration.attributes } cell = ## contains one cell of a table. element cell { macro.paraContent, att.global.attributes, att.global.attributes, att.tableDecoration.attributes } formula = ## contains a mathematical or other formula. element formula { (text | model.graphicLike)*, ## (The notation used to express this formula) supplies the name of a previously defined notation used for the content of the element. attribute notation { xsd:anyURI }, att.global.attributes, att.global.attributes } figure = ## groups elements representing or containing graphic information such as an illustration or ## figure. element figure { (model.headLike | model.pLike | figDesc | model.graphicLike | model.egLike | model.global)* } figDesc = ## (description of figure) contains a brief prose description of the appearance or content ## of a graphic figure, for use when documenting an image without ## displaying it. element figDesc { macro.limitedContent, att.global.attributes, att.global.attributes } g = ## (character or glyph) represents a non-standard character or glyph. element g { text, att.global.attributes, att.global.attributes, att.typed.attributes, ## points to a description of the character or glyph intended. attribute ref { xsd:anyURI }? } char = ## (character) provides descriptive information about a character. element char { (charName?, model.glossLike*, charProp*, mapping*, figure*, model.graphicLike*, model.noteLike*), att.global.attributes, att.global.attributes } charName = ## (character name) contains the name of a character, expressed following Unicode conventions. element charName { text, att.global.attributes, att.global.attributes } charProp = ## (character property) provides a name and value for some property of the parent character or glyph. element charProp { ((unicodeName | localName), value), att.global.attributes, att.global.attributes, att.typed.attributes } charDecl = ## (character declarations) provides information about nonstandard characters and glyphs. element charDecl { (char | glyph)+, att.global.attributes, att.global.attributes } glyph = ## (character glyph) provides descriptive information about a character glyph. element glyph { (glyphName?, model.glossLike*, charProp*, mapping*, figure*, model.graphicLike*, model.noteLike*), att.global.attributes, att.global.attributes } glyphName = ## (character glyph name) contains the name of a glyph, expressed following Unicode conventions for character names. element glyphName { text, att.global.attributes, att.global.attributes } localName = ## (locally-defined property name) contains a locally defined name for some property. element localName { text, att.global.attributes, att.global.attributes } mapping = ## (character mapping) contains one or more ## characters which are related to the parent character or glyph ## in some respect, as specified by the type ## attribute. ## element mapping { macro.xtext, att.global.attributes, att.global.attributes, att.typed.attributes } unicodeName = ## (unicode property name) contains the name of a registered Unicode normative or informative property. element unicodeName { text, att.global.attributes, att.global.attributes, ## specifies the version number of the Unicode Standard in which this property name is ## defined. attribute version { xsd:token { pattern = "[\d]+(\.[\d]+){0,2}" } }? } value = ## (value) contains a single value for some property, attribute, or other ## analysis. element value { macro.xtext, att.global.attributes, att.global.attributes } teiHeader = ## (TEI Header) supplies the descriptive and declarative information making up an electronic title page ## prefixed to every TEI-conformant text. element teiHeader { (fileDesc, model.teiHeaderPart*, revisionDesc?), att.global.attributes, 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 { xsd:Name }? } fileDesc = ## (file description) contains a full bibliographic description of an electronic file. element fileDesc { ((titleStmt, extent?, publicationStmt, seriesStmt?, notesStmt?), sourceDesc+), att.global.attributes, att.global.attributes } titleStmt = ## (title statement) groups information about the title of a work and those responsible for its intellectual ## content. element titleStmt { (title+, model.respLike*), att.global.attributes, att.global.attributes } edition = ## (edition) describes the particularities of one edition of a text. element edition { macro.phraseSeq, att.global.attributes, att.global.attributes } extent = ## describes the approximate size of a text as stored on some carrier medium, whether digital ## or non-digital, specified in any convenient units. element extent { macro.phraseSeq, att.global.attributes, att.global.attributes } publicationStmt = ## (publication statement) groups information concerning the publication or distribution of an electronic or other ## text. element publicationStmt { (model.pLike+ | model.publicationStmtPart+), att.global.attributes, att.global.attributes } authority = ## (release authority) supplies the name of a person or other agency responsible for ## making an electronic file available, other than a publisher or ## distributor. element authority { macro.phraseSeq.limited, att.global.attributes, att.global.attributes } 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 { macro.xtext, att.global.attributes, att.global.attributes, ## categorizes the identifier, for example as an ISBN, Social ## Security number, etc. attribute type { xsd:Name }? } availability = ## supplies information about the availability of a text, for example any restrictions on its ## use or distribution, its copyright status, etc. element availability { model.pLike+, att.global.attributes, 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" }? } seriesStmt = ## (series statement) groups information about the series, if any, to which a publication belongs. element seriesStmt { (model.pLike+ | (title+, idno*)), att.global.attributes, att.global.attributes } 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 { model.noteLike+, att.global.attributes, att.global.attributes } 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 { (model.pLike+ | (model.biblLike | model.sourceDescPart | model.listLike)+), att.global.attributes, att.global.attributes } biblFull = ## (fully-structured bibliographic citation) contains a fully-structured bibliographic citation, in which all components of the TEI file ## description are present. element biblFull { ((titleStmt, extent?, publicationStmt, seriesStmt?, notesStmt?), sourceDesc*), att.global.attributes, att.global.attributes, att.declarable.attributes } encodingDesc = ## (encoding description) documents the relationship between an electronic text and the ## source or sources from which it was derived. element encodingDesc { (model.encodingDescPart | model.pLike)+, att.global.attributes, att.global.attributes } editorialDecl = ## (editorial practice declaration) provides details of editorial principles and practices applied ## during the encoding of a text. element editorialDecl { (model.pLike | model.editorialDeclPart)+, att.global.attributes, att.global.attributes, att.declarable.attributes } normalization = ## indicates the extent of normalization or regularization of the original source carried out ## in converting it to electronic form. element normalization { model.pLike+, att.global.attributes, att.global.attributes, att.declarable.attributes, ## indicates the authority for any normalization carried out. attribute source { xsd:anyURI }?, ## indicates the method adopted to indicate normalizations within the text. [ a:defaultValue = "silent" ] attribute method { ## normalization made silently "silent" | ## normalization represented using markup "markup" }? } 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 { model.profileDescPart*, att.global.attributes, att.global.attributes } handNote = ## (note on hand) describes a particular style or hand distinguished within a manuscript. element handNote { macro.specialPara, att.global.attributes, att.global.attributes, att.handFeatures.attributes } revisionDesc = ## (revision description) summarizes the revision history for a file. element revisionDesc { (\list | change+), att.global.attributes, att.global.attributes, att.docStatus.attributes } change = ## summarizes a particular change or correction made to a particular version of an electronic ## text which is shared between several researchers. element change { (text | model.limitedPhrase | model.inter | model.global)*, att.global.attributes, att.global.attributes, att.ascribed.attributes, att.datable.attributes, att.docStatus.attributes } typeNote = ## describes a particular font or other significant typographic feature distinguished within ## the description of a printed resource. element typeNote { macro.specialPara, att.global.attributes, att.global.attributes, att.handFeatures.attributes } scriptNote = ## describes a particular script distinguished within ## the description of a manuscript or similar resource. element scriptNote { macro.specialPara, att.global.attributes, att.global.attributes, att.handFeatures.attributes } model.rdgLike = rdg app = ## (apparatus entry) contains one entry in a critical apparatus, with an optional ## lemma and at least one reading. element app { (model.global*, (lem, model.global*, (wit, model.global*)?)?, ((model.rdgLike, model.global*, (wit, model.global*)?) | (rdgGrp, model.global*, (wit, model.global*)?))*) >> sch:pattern [ id = "app-constraint-only1lem" "\x{a}" ~ " " sch:rule [ context = "tei:app" "\x{a}" ~ " " sch:assert [ test = "count( descendant::tei:lem[ generate-id( current() ) = generate-id( ancestor::tei:app[1] ) ]) < 2" "Only one element may appear within a single\x{a}" ~ " apparatus entry, whether it appears outside a \x{a}" ~ " element or within it." ] "\x{a}" ~ " " ] "\x{a}" ~ " " ], att.global.attributes, att.global.attributes, ## classifies the variation contained in this element according to ## some convenient typology. attribute type { xsd:Name }?, ## identifies the beginning of the lemma in the base text, if ## necessary. attribute from { xsd:anyURI }?, ## identifies the endpoint of the lemma in the base text, if ## necessary. attribute to { xsd:anyURI }?, ## (location) indicates the location of the variation, when the ## location-referenced method of apparatus markup is used. attribute loc { list { xsd:token { pattern = "(\p{L}|\p{N}|\p{P}|\p{S})+" }, xsd:token { pattern = "(\p{L}|\p{N}|\p{P}|\p{S})+" }* } }? } lem = ## (lemma) contains the lemma, or base text, of a textual variation. element lem { (text | model.gLike | model.phrase | model.inter | model.global | model.rdgPart)*, att.global.attributes, att.global.attributes, att.textCritical.attributes } rdg = ## (reading) contains a single reading within a textual variation. element rdg { (text | model.gLike | model.phrase | model.inter | model.global | model.rdgPart)*, att.global.attributes, att.global.attributes, att.textCritical.attributes } rdgGrp = ## (reading group) within a textual variation, ## groups two or more readings perceived to have a genetic ## relationship or other affinity. element rdgGrp { ((rdgGrp, wit?) | ((lem, wit?)?, (model.rdgLike, wit?))*)+, att.global.attributes, att.global.attributes, att.textCritical.attributes } witDetail = ## (witness detail) gives further information about a particular witness, or ## witnesses, to a particular reading. element witDetail { macro.phraseSeq, att.global.attributes, att.global.attributes, att.placement.attributes, att.responsibility.attributes, att.pointing.attributes, ## (witnesses) indicates the sigil or sigla for the witnesses to which the ## detail refers. attribute wit { list { xsd:anyURI, xsd:anyURI* } }, ## describes the type of information given about the witness. attribute type { xsd:Name }? } wit = ## contains a list of one or more sigla of witnesses attesting a ## given reading, in a textual variation. element wit { macro.phraseSeq, att.global.attributes, att.global.attributes, att.rdgPart.attributes } listWit = ## (witness list) lists definitions for all the witnesses referred to by a critical ## apparatus, optionally grouped hierarchically. element listWit { (model.headLike?, (witness | listWit)+), att.global.attributes, att.global.attributes } witness = ## contains either a description of a single witness referred to ## within the critical apparatus, or a list of witnesses which is to be ## referred to by a single sigil. element witness { macro.limitedContent, att.global.attributes, att.global.attributes } witStart = ## (fragmented witness start) indicates the beginning, or resumption, of the text of a ## fragmentary witness. element witStart { empty, att.global.attributes, att.global.attributes, att.rdgPart.attributes } witEnd = ## (fragmented witness end) indicates the end, or suspension, of the text of a fragmentary ## witness. element witEnd { empty, att.global.attributes, att.global.attributes, att.rdgPart.attributes } lacunaStart = ## indicates the beginning of a lacuna in the text of a mostly ## complete textual witness. element lacunaStart { empty, att.global.attributes, att.global.attributes, att.rdgPart.attributes } lacunaEnd = ## indicates the end of a lacuna in a mostly complete textual ## witness. element lacunaEnd { empty, att.global.attributes, att.global.attributes, att.rdgPart.attributes } variantEncoding = ## declares the method used to encode text-critical variants. element variantEncoding { empty, att.global.attributes, att.global.attributes, ## indicates which method is used to encode the apparatus of ## variants. attribute method { ## apparatus uses line numbers or other canonical reference scheme ## referenced in a base text. "location-referenced" | ## apparatus indicates the precise locations of the beginning and ## ending of each lemma relative to a base text. "double-end-point" | ## alternate readings of a passage are given in parallel in the ## text; no notion of a base text is necessary. "parallel-segmentation" }, ## indicates whether the apparatus appears within the running text ## or external to it. attribute location { ## apparatus appears within the running text. "internal" | ## apparatus appears outside the base text. "external" } } model.rdgPart = wit | witStart | witEnd | lacunaStart | lacunaEnd att.rdgPart.attributes = att.rdgPart.attribute.wit att.rdgPart.attribute.wit = ## (witness or witnesses) contains a list of one or more sigla indicating the witnesses ## which begin or end at this point. attribute wit { list { xsd:anyURI, xsd:anyURI* } }? att.textCritical.attributes = att.responsibility.attributes, att.textCritical.attribute.wit, att.textCritical.attribute.type, att.textCritical.attribute.cause, att.textCritical.attribute.varSeq, att.textCritical.attribute.hand att.textCritical.attribute.wit = ## (witness or witnesses) contains a list of one or more pointers indicating the witnesses ## which attest to a given reading. attribute wit { list { xsd:anyURI, xsd:anyURI* } }? att.textCritical.attribute.type = ## classifies the reading according to some useful typology. ## Sample values include: 1] substantive; 2] orthographic attribute type { xsd:Name }? att.textCritical.attribute.cause = ## classifies the cause for the variant reading, according to ## any appropriate typology of possible origins. ## Sample values include: 1] homeoteleuton; 2] homeoarchy; 3] paleographicConfusion; 4] haplography; 5] dittography; 6] falseEmendation attribute cause { xsd:Name }? att.textCritical.attribute.varSeq = ## (variant sequence) provides a number indicating the position of this reading in a ## sequence, when there is reason to presume a sequence to the variants ## on any one lemma. attribute varSeq { xsd:nonNegativeInteger }? att.textCritical.attribute.hand = ## signifies the hand responsible for a particular reading in the ## witness. attribute hand { xsd:anyURI }? msDesc = ## (manuscript description) contains a description of a single identifiable ## manuscript or other text-bearing object. element msDesc { (msIdentifier, model.headLike*, (model.pLike+ | (msContents?, physDesc?, history?, additional?, msPart*))), att.global.attributes, att.global.attributes } 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 { macro.phraseSeq, att.global.attributes, att.global.attributes } dimensions = ## contains a dimensional specification. element dimensions { ((dim | model.dimLike)*) >> sch:pattern [ id = "dimensions-constraint-duplicateDim1" "\x{a}" ~ " " sch:rule [ context = "tei:dimensions" "\x{a}" ~ " " sch:report [ test = "count(tei:width)> 1" "\x{a}" ~ " Width element may appear once only\x{a}" ~ " " ] "\x{a}" ~ " " ] "\x{a}" ~ " " ] >> sch:pattern [ id = "dimensions-constraint-duplicateDim2" "\x{a}" ~ " " sch:rule [ context = "tei:dimensions" "\x{a}" ~ " " sch:report [ test = "count(tei:height)> 1" "\x{a}" ~ " Height element may appear once only\x{a}" ~ " " ] "\x{a}" ~ " " ] "\x{a}" ~ " " ] >> sch:pattern [ id = "dimensions-constraint-duplicateDim3" "\x{a}" ~ " " sch:rule [ context = "tei:dimensions" "\x{a}" ~ " " sch:report [ test = "count(tei:depth)> 1" "\x{a}" ~ " Depth element may appear once only\x{a}" ~ " " ] "\x{a}" ~ " " ] "\x{a}" ~ " " ], att.global.attributes, 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 { xsd:Name }? } dim = ## contains any single measurement forming part of a dimensional ## specification of some sort. element dim { macro.xtext, att.global.attributes, att.global.attributes, att.typed.attributes, att.dimensions.attributes } 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 { macro.xtext, att.global.attributes, att.global.attributes, att.dimensions.attributes } 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 { macro.xtext, att.global.attributes, att.global.attributes, att.dimensions.attributes } 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 { macro.xtext, att.global.attributes, att.global.attributes, att.dimensions.attributes } heraldry = ## contains a heraldic formula ## or phrase, typically found as part of a blazon, coat of arms, etc. ## element heraldry { macro.phraseSeq, att.global.attributes, att.global.attributes } locus = ## defines a location within a manuscript or manuscript part, usually as a ## (possibly discontinuous) sequence of folio references. element locus { macro.xtext, att.global.attributes, att.global.attributes, att.pointing.attributes, ## identifies the foliation scheme in terms of which the location is being ## specified. attribute scheme { xsd:anyURI }?, ## specifies the starting point of the location in a normalized form. attribute from { xsd:token { pattern = "(\p{L}|\p{N}|\p{P}|\p{S})+" } }?, ## specifies the end-point of the location in a normalized form. attribute to { xsd:token { pattern = "(\p{L}|\p{N}|\p{P}|\p{S})+" } }? } 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 { locus+, att.global.attributes, att.global.attributes, ## identifies the foliation scheme in terms of which all the ## locations contained by the group are specified. attribute scheme { xsd:anyURI }? } material = ## contains a word or phrase describing the ## material of which the object being described is composed. ## element material { macro.phraseSeq, att.global.attributes, att.global.attributes, att.canonical.attributes } objectType = ## contains a word or phrase describing the type of object being refered to. ## element objectType { macro.phraseSeq, att.global.attributes, att.global.attributes, att.canonical.attributes } origDate = ## (origin date) contains any form of date, used to ## identify the date of origin for a manuscript or manuscript part. ## element origDate { (text | model.gLike | model.phrase | model.global)*, att.global.attributes, att.global.attributes, att.datable.attributes, att.editLike.attributes, att.typed.attributes } origPlace = ## (origin place) contains any form of place name, used to identify the ## place of origin for a manuscript or manuscript part. element origPlace { macro.phraseSeq, att.global.attributes, att.global.attributes, att.naming.attributes, att.datable.attributes, att.editLike.attributes } secFol = ## (second folio) 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 { macro.phraseSeq, att.global.attributes, att.global.attributes } signatures = ## contains discussion of the leaf or quire signatures found within a codex. element signatures { macro.phraseSeq, att.global.attributes, att.global.attributes } stamp = ## contains a word or phrase describing a ## stamp or similar device. element stamp { macro.phraseSeq, att.global.attributes, att.global.attributes, att.typed.attributes, att.datable.attributes } watermark = ## contains a word or phrase describing a ## watermark or similar device. element watermark { macro.phraseSeq, att.global.attributes, att.global.attributes } msIdentifier = ## (manuscript identifier) contains the information required to identify ## the manuscript being described. element msIdentifier { ((model.placeNamePart_sequenceOptional, institution?, repository?, collection*, idno?), (msName | altIdentifier)*) >> sch:pattern [ id = "msIdentifier-constraint-msId_minimal" "\x{a}" ~ " " sch:rule [ context = "tei:msIdentifier" "\x{a}" ~ " " sch:report [ test = "local-name(*[1])='idno' or local-name(*[1])='altIdentifier' or .='' " "\x{a}" ~ " You must supply either a locator of some type or a\x{a}" ~ " name" ] "\x{a}" ~ " " ] "\x{a}" ~ " " ], att.global.attributes, att.global.attributes } 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 { macro.xtext, att.global.attributes, att.global.attributes, att.naming.attributes } repository = ## contains the name of a repository within which manuscripts are stored, possibly forming part of an institution. element repository { macro.xtext, att.global.attributes, att.global.attributes, att.naming.attributes } collection = ## contains the name of a collection of ## manuscripts, not necessarily located within a single repository. element collection { macro.xtext, att.global.attributes, att.global.attributes, att.naming.attributes, att.typed.attributes } altIdentifier = ## (alternative identifier) contains an alternative or former structured identifier used for ## a manuscript, such as a former catalogue number. element altIdentifier { (model.placeNamePart_sequenceOptional, institution?, repository?, collection?, idno, note?), att.global.attributes, att.global.attributes, att.typed.attributes } msName = ## (alternative name) contains any form of unstructured alternative ## name used for a manuscript, such as an ocellus ## nominum, or nickname. element msName { macro.xtext, att.global.attributes, att.global.attributes, att.typed.attributes } 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 { macro.phraseSeq, att.global.attributes, att.global.attributes } 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 { macro.phraseSeq, att.global.attributes, att.global.attributes, att.typed.attributes, att.msExcerpt.attributes } 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 { macro.specialPara, att.global.attributes, att.global.attributes, att.typed.attributes } 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 { macro.phraseSeq, att.global.attributes, att.global.attributes, att.typed.attributes } 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 incipts were, in fomer times, frequently used a means of reference to a work, in place of a title. element incipit { macro.phraseSeq, att.global.attributes, att.global.attributes, att.typed.attributes, att.msExcerpt.attributes } 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 { (model.pLike+ | (summary?, textLang?, titlePage?, (msItem | msItemStruct)*)), att.global.attributes, att.global.attributes, att.msExcerpt.attributes, ## identifies the text types or classifications applicable to this object. attribute class { xsd:anyURI }? } msItem = ## (manuscript item) describes an individual work or item within the intellectual ## content of a manuscript or manuscript part. element msItem { ((locus | locusGrp)*, (model.pLike+ | (model.titlepagePart | model.msItemPart | model.global)+)), att.global.attributes, att.global.attributes, att.msExcerpt.attributes, ## identifies the text types or classifications applicable to this ## item attribute class { xsd:anyURI }? } 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 { (locus?, (model.pLike+ | (author*, title*, rubric?, incipit?, msItemStruct*, explicit?, finalRubric?, colophon*, decoNote*, bibl*, filiation*, model.noteLike*, textLang?))), att.global.attributes, att.global.attributes, att.msExcerpt.attributes, ## identifies the text types or classifications applicable to this ## item attribute class { xsd:anyURI }? } 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 { macro.phraseSeq, att.global.attributes, att.global.attributes, att.typed.attributes } 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 { macro.phraseSeq, att.global.attributes, att.global.attributes } textLang = ## (text language) in a manuscript description, describes ## the languages and writing systems identified within the manuscript ## being described. element textLang { macro.phraseSeq, att.global.attributes, att.global.attributes, ## (main language) supplies a code which identifies the chief language used in the manuscript. attribute mainLang { xsd:language }?, ## (other languages) one or more codes identifying any other languages used in the manuscript. attribute otherLangs { list { xsd:language* } }? } 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 { xsd:boolean | "unknown" | "inapplicable" }? physDesc = ## (physical description) contains a full physical description of a ## manuscript or manuscript part, optionally subdivided using more ## specialised elements from the model.physDescPart class. element physDesc { (model.pLike*, model.physDescPart_sequenceOptional), att.global.attributes, att.global.attributes } objectDesc = ## contains a description of the physical ## components making up the object which is being described. element objectDesc { (model.pLike+ | (supportDesc?, layoutDesc?)), att.global.attributes, 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 { xsd:Name }? } supportDesc = ## (support description) groups elements describing the physical support for the written part of a manuscript. element supportDesc { (model.pLike+ | (support?, extent?, foliation*, collation?, condition?)), att.global.attributes, att.global.attributes, ## a short project-defined name for the material composing ## the majority of the support ## Suggested values include: 1] paper (paper) ; 2] parch(parchment) ; 3] mixed attribute material { ## (paper) "paper" | ## (parchment) "parch" | ## "mixed" | xsd:Name }? } support = ## contains a description of the materials ## etc. which make up the physical support for the written part of a manuscript. element support { macro.specialPara, att.global.attributes, att.global.attributes } collation = ## contains a description of how the leaves or bifolia are physically ## arranged. element collation { macro.specialPara, att.global.attributes, att.global.attributes } foliation = ## describes the numbering system or systems used to ## count the leaves or pages in a codex. element foliation { macro.specialPara, att.global.attributes, att.global.attributes } condition = ## contains a description of the physical ## condition of the manuscript. element condition { macro.specialPara, att.global.attributes, att.global.attributes } layoutDesc = ## (layout description) collects the set of layout descriptions applicable to a manuscript. element layoutDesc { (model.pLike+ | (summary?, layout+)), att.global.attributes, att.global.attributes } 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 { macro.specialPara, att.global.attributes, att.global.attributes, ## specifies the number of columns per page attribute columns { list { xsd:nonNegativeInteger, xsd:nonNegativeInteger? } }?, ## specifies the number of ruled lines per column attribute ruledLines { list { xsd:nonNegativeInteger, xsd:nonNegativeInteger? } }?, ## specifies the number of written lines per ## column attribute writtenLines { list { xsd:nonNegativeInteger, xsd:nonNegativeInteger? } }? } handDesc = ## (description of hands) contains a description of all the different kinds of writing used in a manuscript. element handDesc { (model.pLike+ | (summary?, handNote+)), att.global.attributes, att.global.attributes, ## specifies the number of distinct hands identified within the manuscript attribute hands { xsd:nonNegativeInteger }? } typeDesc = ## contains a description of the typefaces or other aspects of ## the printing of an incunable or other printed source. element typeDesc { (model.pLike+ | (summary?, typeNote+)), att.global.attributes, att.global.attributes } scriptDesc = ## contains a description of the scripts used in a manuscript or similar source. element scriptDesc { (model.pLike+ | (summary?, scriptNote+)), att.global.attributes, att.global.attributes } musicNotation = ## contains description of type of musical notation. element musicNotation { macro.specialPara, att.global.attributes, att.global.attributes } decoDesc = ## (decoration description) contains a description of the decoration of a manuscript, either as a sequence of paragraphs, or as a sequence of topically organised decoNote elements. element decoDesc { (model.pLike+ | (summary?, decoNote+)), att.global.attributes, att.global.attributes } 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 { macro.specialPara, att.global.attributes, att.global.attributes, att.typed.attributes } additions = ## contains a description of any significant additions found ## within a manuscript, such as marginalia or other annotations. element additions { macro.specialPara, att.global.attributes, att.global.attributes } 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 { ((model.pLike | decoNote | condition)+ | binding+), att.global.attributes, att.global.attributes } binding = ## contains a description of one binding, i.e. type of covering, boards, ## etc. applied to a manuscript. element binding { (model.pLike | condition | decoNote)+, att.global.attributes, att.global.attributes, att.datable.attributes, ## specifies whether or not the binding is contemporary with the majority of its ## contents attribute contemporary { xsd:boolean | "unknown" | "inapplicable" }? } 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 { (model.pLike+ | (decoNote | seal | condition)+), att.global.attributes, att.global.attributes } seal = ## contains a description of one seal or similar ## attachment applied to a manuscript. element seal { (model.pLike | decoNote)+, att.global.attributes, 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 { xsd:boolean | "unknown" | "inapplicable" }? } 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 { macro.specialPara, att.global.attributes, att.global.attributes, att.typed.attributes } history = ## groups elements ## describing the full history of a manuscript or manuscript part. element history { (model.pLike+ | (summary?, origin?, provenance*, acquisition?)), att.global.attributes, att.global.attributes } origin = ## contains any descriptive or other information ## concerning the origin of a manuscript or manuscript part. element origin { macro.specialPara, att.global.attributes, att.global.attributes, att.editLike.attributes, att.datable.attributes } 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 { macro.specialPara, att.global.attributes, att.global.attributes, att.datable.attributes } acquisition = ## contains any descriptive or other information ## concerning the process by which a manuscript or manuscript part entered the holding ## institution. element acquisition { macro.specialPara, att.global.attributes, att.global.attributes, att.datable.attributes } additional = ## groups additional information, combining ## bibliographic information about a manuscript, or surrogate copies of ## it with curatorial or administrative information. element additional { (adminInfo?, surrogates?), att.global.attributes, att.global.attributes } adminInfo = ## (administrative information) contains information about the present ## custody and availability of the manuscript, and also about the record ## description itself. element adminInfo { (recordHist?, availability?, custodialHist?, model.noteLike?), att.global.attributes, att.global.attributes } recordHist = ## (recorded history) provides information about the source and ## revision status of the parent manuscript description itself. element recordHist { (model.pLike+ | (source, change*)), att.global.attributes, att.global.attributes } source = ## describes the original source for the information contained with a manuscript description. element source { macro.specialPara, att.global.attributes, att.global.attributes } 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 { (model.pLike+ | custEvent+), att.global.attributes, att.global.attributes } custEvent = ## (custodial event) describes a single event during the custodial history of a manuscript. element custEvent { macro.specialPara, att.global.attributes, att.global.attributes, att.datable.attributes, att.typed.attributes } surrogates = ## contains information about any representations of the manuscript being described which ## may exist in the holding institution or elsewhere. element surrogates { macro.specialPara, att.global.attributes, att.global.attributes } msPart = ## (manuscript part) contains information about an originally ## distinct manuscript or part of a manuscript, now forming part of a composite manuscript. element msPart { (altIdentifier, model.headLike*, (model.pLike+ | (msContents?, physDesc?, history?, additional?, msPart*))), att.global.attributes, att.global.attributes } 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 { (teiHeader, ((model.resourceLike+, \text?) | \text)) >> sch:ns [ prefix = "tei" uri = "http://www.tei-c.org/ns/1.0" ] >> sch:ns [ prefix = "rng" uri = "http://relaxng.org/ns/structure/1.0" ], att.global.attributes, att.global.attributes, ## specifies the version number of the TEI Guidelines against ## which this document is valid. attribute version { xsd:token { pattern = "[\d]+(\.[\d]+){0,2}" } }? } \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 { (model.global*, (front, model.global*)?, (body | group), model.global*, (back, model.global*)?), att.global.attributes, att.global.attributes, att.typed.attributes } body = ## (text body) contains the whole body of a single unitary text, excluding any front or back matter. element body { (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*)*), att.global.attributes, att.global.attributes } 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 { ((model.divTop | model.global)*, ((\text | group), (\text | group | model.global)*), model.divBottom*), att.global.attributes, att.global.attributes } \div = ## (text division) contains a subdivision of the front, body, or back of a text. element div { ((model.divTop | model.global)*, ((((model.divLike | model.divGenLike), model.global*)+ | ((model.common, model.global*)+, ((model.divLike | model.divGenLike), model.global*)*)), (model.divBottom, model.global*)*)?), att.global.attributes, att.global.attributes, att.divLike.attributes, att.typed.attributes } trailer = ## contains a closing title or footer appearing at the end of a division of a text. element trailer { macro.phraseSeq, att.global.attributes, att.global.attributes } 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 { (text | model.gLike | model.phrase | docAuthor | model.global)*, att.global.attributes, att.global.attributes } 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 { macro.phraseSeq, att.global.attributes, att.global.attributes } epigraph = ## contains a quotation, anonymous or attributed, appearing at the start of a section or ## chapter, or on a title page. element epigraph { (model.common | model.global)*, att.global.attributes, att.global.attributes } 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 { (text | model.gLike | model.phrase | byline | dateline | epigraph | salute | signed | model.global)*, att.global.attributes, att.global.attributes } 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 { (text | model.gLike | signed | dateline | salute | model.phrase | model.global)*, att.global.attributes, att.global.attributes } 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 { macro.phraseSeq, att.global.attributes, att.global.attributes } signed = ## (signature) contains the closing salutation, etc., appended to a foreword, ## dedicatory epistle, or other division of a text. element signed { macro.phraseSeq, att.global.attributes, att.global.attributes } postscript = ## contains a postscript, e.g. to a letter. element postscript { (model.common | model.global)*, att.global.attributes, att.global.attributes } titlePage = ## (title page) contains the title page of a text, appearing within the front or back matter. element titlePage { (model.global*, model.titlepagePart, (model.titlepagePart | model.global)*), att.global.attributes, att.global.attributes, ## classifies the title page according to any convenient typology. attribute type { xsd:Name }? } docTitle = ## (document title) contains the title of a document, including all its ## constituents, as given on a title page. element docTitle { (model.global*, (titlePart, model.global*)+), att.global.attributes, att.global.attributes, att.canonical.attributes } titlePart = ## contains a subsection or division of the title of a work, as ## indicated on a title page. element titlePart { macro.paraContent, att.global.attributes, 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 }? } 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 { macro.phraseSeq, att.global.attributes, att.global.attributes, att.canonical.attributes } imprimatur = ## contains a formal statement authorizing the publication of a work, sometimes required to ## appear on a title page or its verso. element imprimatur { macro.paraContent, att.global.attributes, att.global.attributes } docEdition = ## (document edition) contains an edition statement as presented on a title page of a ## document. element docEdition { macro.paraContent, att.global.attributes, att.global.attributes } 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 { (text | model.gLike | model.phrase | pubPlace | docDate | publisher | model.global)*, att.global.attributes, att.global.attributes } docDate = ## (document date) contains the date of a document, as given ## (usually) on a title page. element docDate { macro.phraseSeq, att.global.attributes, att.global.attributes, ## gives the value of the date in standard form, i.e. YYYY-MM-DD. attribute when { xsd:date | xsd:gYear | xsd:gMonth | xsd:gDay | xsd:gYearMonth | xsd:gMonthDay | xsd:time | xsd:dateTime }? } 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 { ((model.frontPart | model.pLike.front | model.global)*, ((model.div1Like, (model.frontPart | model.div1Like | model.global)*) | (model.divLike, (model.frontPart | model.divLike | model.global)*))?, (model.divBottomPart, (model.divBottomPart | model.global)*)?), att.global.attributes, att.global.attributes } back = ## (back matter) contains any appendixes, etc. following the main part of a text. element back { ((model.frontPart | model.pLike.front | model.global)*, ((model.div1Like, (model.frontPart | model.div1Like | model.global)*) | (model.divLike, (model.frontPart | model.divLike | model.global)*))?, (model.divBottomPart, (model.divBottomPart | model.global)*)?), att.global.attributes, att.global.attributes } att.metrical.attributes = att.metrical.attribute.met, att.metrical.attribute.real, att.metrical.attribute.rhyme att.metrical.attribute.met = ## (metrical structure, conventional) contains a user-specified encoding for the conventional ## metrical structure of the element. attribute met { xsd:token }? att.metrical.attribute.real = ## (metrical structure, realized) contains a user-specified encoding for the actual realization ## of the conventional metrical structure applicable to the element. attribute real { xsd:token }? att.metrical.attribute.rhyme = ## (rhyme scheme) specifies the rhyme scheme applicable to a group of verse lines. attribute rhyme { xsd:token }? att.enjamb.attributes = att.enjamb.attribute.enjamb att.enjamb.attribute.enjamb = ## (enjambement) indicates that the end of a verse line is marked by enjambement. ## Sample values include: 1] no; 2] yes; 3] weak; 4] strong attribute enjamb { xsd:Name }? caesura = ## marks the point at which a metrical line may be divided. element caesura { empty, att.global.attributes, att.global.attributes } rhyme = ## marks the rhyming part of a metrical line. element rhyme { macro.paraContent, att.global.attributes, att.global.attributes, att.typed.attributes, ## provides a label to identify which part of a rhyme scheme this rhyming string ## instantiates. attribute label { xsd:token { pattern = "(\p{L}|\p{N}|\p{P}|\p{S})+" } }? } anchor = ## (anchor point) attaches an identifier to a point within a text, whether or not it corresponds with a textual element. element anchor { empty, ## (identifier) provides a unique identifier for the element bearing the attribute. attribute xml:id { xsd:ID }, att.global.attribute.n, att.global.attribute.xmllang, att.global.attribute.xmlspace, att.global.linking.attributes, att.global.analytic.attributes, att.global.facs.attributes, ## (identifier) provides a unique identifier for the element bearing the attribute. attribute xml:id { xsd:ID }, att.global.attribute.n, att.global.attribute.xmllang, att.global.attribute.xmlspace, att.global.linking.attributes, att.global.analytic.attributes, att.global.facs.attributes } att.global.linking.attributes = att.global.linking.attribute.corresp, att.global.linking.attribute.synch, att.global.linking.attribute.sameAs, att.global.linking.attribute.copyOf, att.global.linking.attribute.next, att.global.linking.attribute.prev, att.global.linking.attribute.exclude, att.global.linking.attribute.select att.global.linking.attribute.corresp = ## (corresponds) points to elements that correspond to the current ## element in some way. attribute corresp { list { xsd:anyURI, xsd:anyURI* } }? att.global.linking.attribute.synch = ## (synchronous) points to elements that are synchronous with the current ## element. attribute synch { list { xsd:anyURI, xsd:anyURI* } }? att.global.linking.attribute.sameAs = ## points to an element that is the same as the current ## element. attribute sameAs { xsd:anyURI }? att.global.linking.attribute.copyOf = ## points to an element of which the current element is a ## copy. attribute copyOf { xsd:anyURI }? att.global.linking.attribute.next = ## points to the next element of a virtual aggregate of which ## the current element is part. attribute next { xsd:anyURI }? att.global.linking.attribute.prev = ## (previous) points to the previous element of a virtual aggregate of ## which the current element is part. attribute prev { xsd:anyURI }? att.global.linking.attribute.exclude = ## points to elements that are in exclusive alternation ## with the current element. attribute exclude { list { xsd:anyURI, xsd:anyURI* } }? att.global.linking.attribute.select = ## selects one or more alternants; if one alternant is ## selected, the ambiguity or uncertainty is marked as resolved. If ## more than one alternant is selected, the degree of ambiguity or ## uncertainty is marked as reduced by the number of alternants not ## selected. attribute select { list { xsd:anyURI, xsd:anyURI* } }? w = ## (word) represents a grammatical (not necessarily orthographic) word. element w { (text | model.gLike | w | c | model.global | model.lPart | model.hiLike | model.pPart.edit)*, ## provides a lemma for the word, such as an uninflected ## dictionary entry form. attribute lemma { xsd:string }?, ## provides a pointer to a definition of the lemma for the ## word, for example in an online lexicon. attribute lemmaRef { xsd:anyURI }?, att.global.attribute.xmlid, att.global.attribute.n, att.global.attribute.xmllang, att.global.attribute.xmlspace, att.global.linking.attributes, att.global.facs.attributes, att.global.attribute.xmlid, att.global.attribute.n, att.global.attribute.xmllang, att.global.attribute.xmlspace, att.global.linking.attributes, att.global.facs.attributes, att.typed.attribute.subtype } c = ## (character) represents a character. element c { macro.xtext, att.global.attributes, att.global.attributes, att.typed.attribute.subtype } pc = ## (punctuation character) a character or string of characters regarded as constituting a ## single punctuation mark. element pc { (text | model.gLike | c)*, att.global.attributes, att.global.attributes, att.segLike.attributes, att.typed.attributes, ## indicates the extent to which this punctuation mark ## conventionally separates words or phrases attribute force { ## the punctuation mark is a word separator "strong" | ## the punctuation mark is not a word separator "weak" | ## the punctuation mark may or may not be a ## word separator "inter" }?, ## provides a name for the kind of unit delimited by this punctuation mark. attribute unit { xsd:Name }?, ## indicates whether this punctuation mark precedes or ## follows the unit it delimits. attribute pre { xsd:boolean }? } att.global.analytic.attributes = att.global.analytic.attribute.ana att.global.analytic.attribute.ana = ## (analysis) indicates one or more elements containing interpretations of the ## element on which the ana attribute appears. attribute ana { list { xsd:anyURI, xsd:anyURI* } }? att.global.facs.attributes = att.global.facs.attribute.facs att.global.facs.attribute.facs = ## (facsimile) points to all or part of an image which corresponds with the content of the element. attribute facs { list { xsd:anyURI, xsd:anyURI* } }? addSpan = ## (added span of text) marks the beginning of a longer sequence of text added by an ## author, scribe, annotator or corrector (see also add). element addSpan { empty >> sch:pattern [ id = "addSpan-constraint-spanTo" "\x{a}" ~ " " sch:rule [ context = "tei:addSpan" "\x{a}" ~ " " sch:assert [ test = "@spanTo" "The spanTo= attribute of " sch:name [ ] " is required." ] "\x{a}" ~ " " ] "\x{a}" ~ " " ] >> sch:pattern [ id = "addSpan-constraint-spanTo_fr" "\x{a}" ~ " " sch:rule [ context = "tei:addSpan" "\x{a}" ~ " " sch:assert [ test = "@spanTo" "L'attribut spanTo est requis." ] "\x{a}" ~ " " ] "\x{a}" ~ " " ], att.global.attributes, att.global.attributes, att.transcriptional.attributes, att.placement.attributes, att.typed.attributes, att.spanning.attributes } delSpan = ## (deleted span of text) marks the beginning of a longer sequence of text deleted, ## marked as deleted, or otherwise signaled as superfluous or spurious by an ## author, scribe, annotator, or corrector. element delSpan { empty >> sch:pattern [ id = "delSpan-constraint-spanTo" "\x{a}" ~ " " sch:rule [ context = "tei:delSpan" "\x{a}" ~ " " sch:assert [ test = "@spanTo" "The spanTo= attribute of " sch:name [ ] "\x{a}" ~ " is required." ] "\x{a}" ~ " " ] "\x{a}" ~ " " ] >> sch:pattern [ id = "delSpan-constraint-spanTo_fr" "\x{a}" ~ " " sch:rule [ context = "tei:delSpan" "\x{a}" ~ " " sch:assert [ test = "@spanTo" "L'attribut spanTo est requis." ] "\x{a}" ~ " " ] "\x{a}" ~ " " ], att.global.attributes, att.global.attributes, att.transcriptional.attributes, att.typed.attributes, att.spanning.attributes } gb = ## (gathering begins) marks the point in a transcribed codex at which a new ## gathering or quire begins. element gb { empty, att.global.attributes, att.global.attributes, att.typed.attributes, att.spanning.attributes, att.breaking.attributes } handNotes = ## contains one or more handNote elements documenting the ## different hands identified within the source texts. element handNotes { handNote+, att.global.attributes, att.global.attributes } surplus = ## (Texte superflu) marks text present in the source which the editor believes to ## be superfluous or redundant. element surplus { macro.paraContent, att.global.attributes, att.global.attributes, att.editLike.attributes, ## indicates the grounds for believing this text to be superfluous. attribute reason { list { xsd:token { pattern = "(\p{L}|\p{N}|\p{P}|\p{S})+" }, xsd:token { pattern = "(\p{L}|\p{N}|\p{P}|\p{S})+" }* } }? } fs = ## (feature structure) represents a feature structure, that is, a ## collection of feature-value pairs organized as a ## structural unit. element fs { f*, att.global.attributes, att.global.attributes, ## specifies the type of the feature structure. attribute type { xsd:Name }?, ## (features) references the feature-value specifications making up this feature structure. attribute feats { list { xsd:anyURI, xsd:anyURI* } }? } f = ## (feature) represents a feature value specification, that ## is, the association of a name with a value of any of several different types. element f { ((text | model.gLike | model.featureVal)*) >> sch:pattern [ id = "f-constraint-fValConstraints" "\x{a}" ~ " " sch:rule [ context = "tei:fVal" "\x{a}" ~ " " sch:assert [ test = "not(tei:* and text)" " A feature value cannot\x{a}" ~ " contain both text and element content" ] "\x{a}" ~ " " ] "\x{a}" ~ " " ] >> sch:pattern [ id = "f-constraint-fValConstraints" "\x{a}" ~ " " sch:rule [ context = "tei:fVal" "\x{a}" ~ " " sch:report [ test = "count(tei:*)>1" " A feature value can contain\x{a}" ~ " only one child element" ] "\x{a}" ~ " " ] "\x{a}" ~ " " ], att.global.attributes, att.global.attributes, ## provides a name for the feature. attribute name { xsd:Name }, ## (feature value) references any element which can be used to represent the ## value of a feature. attribute fVal { xsd:anyURI }? } symbol = ## (symbolic value) represents the value part of a feature-value specification ## which contains one of a finite list of symbols. element symbol { empty, att.global.attributes, att.global.attributes, ## supplies the symbolic value for the feature, one of a finite list that ## may be specified in a feature declaration. attribute value { xsd:token { pattern = "(\p{L}|\p{N}|\p{P}|\p{S})+" } } } fLib = ## (feature library) assembles a library of feature elements. element fLib { f+, att.global.attributes, att.global.attributes } 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+ orgName = ## (organization name) contains an organizational name. element orgName { macro.phraseSeq, att.global.attributes, att.global.attributes, att.datable.attributes, att.editLike.attributes, att.personal.attributes, att.typed.attributes } persName = ## (personal name) contains a proper noun or proper-noun phrase referring to a person, possibly including any ## or all of the person's forenames, surnames, honorifics, added names, etc. element persName { macro.phraseSeq, att.global.attributes, att.global.attributes, att.datable.attributes, att.editLike.attributes, att.personal.attributes, att.typed.attributes } surname = ## contains a family (inherited) name, as opposed to a given, baptismal, or nick name. element surname { macro.phraseSeq, att.global.attributes, att.global.attributes, att.personal.attributes, att.typed.attributes } forename = ## contains a forename, given or baptismal name. element forename { macro.phraseSeq, att.global.attributes, att.global.attributes, att.personal.attributes, att.typed.attributes } 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 { macro.phraseSeq, att.global.attributes, att.global.attributes, att.personal.attributes, att.typed.attributes } 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 { macro.phraseSeq, att.global.attributes, att.global.attributes, att.typed.attributes } 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 { macro.phraseSeq, att.global.attributes, att.global.attributes, att.personal.attributes, att.typed.attributes } 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 { macro.phraseSeq, att.global.attributes, att.global.attributes, att.personal.attributes, att.typed.attributes } country = ## (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 { macro.phraseSeq, att.global.attributes, att.global.attributes, att.naming.attributes, att.typed.attributes, att.datable.attributes } settlement = ## element settlement { text } offset = ## 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 { macro.xtext, att.global.attributes, att.global.attributes, att.typed.attributes } geogFeat = ## (geographical feature name) contains a common noun identifying some geographical feature contained within a geographic ## name, such as valley, mount, etc. element geogFeat { macro.xtext, att.global.attributes, att.global.attributes, att.naming.attributes, att.typed.attributes, att.datable.attributes } affiliation = ## (affiliation) contains an informal description of a person's present or past affiliation with some ## organization, for example an employer or sponsor. element affiliation { macro.phraseSeq, att.global.attributes, att.global.attributes, att.editLike.attributes, att.datable.attributes, att.naming.attributes } age = ## (age) specifies the age of a person. element age { macro.phraseSeq.limited, att.global.attributes, att.global.attributes, att.editLike.attributes, att.datable.attributes, ## supplies a numeric code representing the age or age group attribute value { xsd:nonNegativeInteger }? } birth = ## (birth) contains information about a person's birth, such as its date and place. element birth { macro.phraseSeq, att.global.attributes, att.global.attributes, att.editLike.attributes, att.datable.attributes, att.naming.attributes } climate = ## (climate) contains information about the physical climate of a place. element climate { (model.headLike*, (model.pLike+ | model.labelLike+), (model.noteLike | model.biblLike)*, climate*), att.global.attributes, att.global.attributes, att.datable.attributes, att.editLike.attributes, att.naming.attributes, att.typed.attributes } death = ## (death) contains information about a person's death, such as its date and place. element death { macro.phraseSeq, att.global.attributes, att.global.attributes, att.editLike.attributes, att.datable.attributes, att.naming.attributes } education = ## contains a description of the educational experience of a person. element education { macro.phraseSeq, att.global.attributes, att.global.attributes, att.editLike.attributes, att.datable.attributes, att.naming.attributes } event = ## (event) contains data relating to any kind of significant event associated with a person, place, or organization. element event { (model.headLike*, (model.pLike+ | model.labelLike+), (model.noteLike | model.biblLike)*, event*), att.global.attributes, att.global.attributes, att.datable.attributes, att.editLike.attributes, att.typed.attributes, att.naming.attributes, ## indicates the location of an event by pointing to a place element attribute where { xsd:anyURI }? } faith = ## specifies the faith, religion, or belief set of a person. element faith { macro.phraseSeq, att.global.attributes, att.global.attributes, att.editLike.attributes, att.datable.attributes } floruit = ## contains information about a person's period of activity. element floruit { macro.phraseSeq, att.global.attributes, att.global.attributes, att.datable.attributes, att.editLike.attributes } 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 { text, att.global.attributes, att.global.attributes } langKnowledge = ## (language knowledge) summarizes the state of a person's linguistic knowledge, either as prose or by a list of langKnown elements. element langKnowledge { (model.pLike | langKnown+), att.global.attributes, att.global.attributes, att.datable.attributes, att.editLike.attributes, ## supplies one or more valid language tags for the languages specified attribute tags { list { xsd:language, xsd:language* } }? } langKnown = ## (language known) summarizes the state of a person's linguistic competence, i.e., knowledge of a single language. element langKnown { macro.phraseSeq.limited, att.global.attributes, att.global.attributes, att.datable.attributes, att.editLike.attributes, ## supplies a valid language tag for the language concerned. attribute tag { xsd:language }, ## a code indicating the person's level of knowledge for this language attribute level { xsd:token { pattern = "(\p{L}|\p{N}|\p{P}|\p{S})+" } }? } listOrg = ## (list of organizations) contains a list of elements, each of which provides information about an identifiable ## organization. element listOrg { (model.headLike*, (org | listOrg)+, (relationGrp | relation)*), att.global.attributes, att.global.attributes, att.typed.attributes, att.declarable.attributes } listEvent = ## (list of events) contains a list of descriptions, each of which provides information ## about an identifiable event. element listEvent { (model.headLike*, (event | listEvent)+, (relation | relationGrp)*), att.global.attributes, att.global.attributes, att.typed.attributes, att.declarable.attributes } 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 { (model.headLike*, (model.personLike | listPerson)+, (relation | relationGrp)*), att.global.attributes, att.global.attributes, att.typed.attributes, att.declarable.attributes } listPlace = ## (list of places) contains a list of places, optionally followed by a list of relationships (other than ## containment) defined amongst them. element listPlace { (model.headLike*, (model.placeLike | listPlace)+, (relationGrp | relation)*), att.global.attributes, att.global.attributes, att.typed.attributes, att.declarable.attributes } location = ## defines the location of a place as a set of geographical coordinates, in terms of a other named geo-political entities, or as an ## address. element location { (model.labelLike | model.placeNamePart | model.offsetLike | model.measureLike | model.addressLike | model.noteLike | model.biblLike)*, att.global.attributes, att.global.attributes, att.typed.attributes, att.datable.attributes, att.editLike.attributes } nationality = ## contains an informal description of a person's present or past nationality or citizenship. element nationality { macro.phraseSeq, att.global.attributes, att.global.attributes, att.datable.attributes, att.editLike.attributes, att.naming.attributes } occupation = ## contains an informal description of a person's trade, profession or occupation. element occupation { macro.phraseSeq, att.global.attributes, att.global.attributes, att.datable.attributes, att.editLike.attributes, att.naming.attributes, ## identifies the classification system or taxonomy in use by supplying the identifier of a taxonomy element elsewhere in the ## header. attribute scheme { xsd:anyURI }?, ## identifies an occupation code defined within the classification system or taxonomy defined by the scheme ## attribute. attribute code { xsd:anyURI }? } org = ## (organization) provides information about an identifiable organization such as a business, a tribe, or ## any other grouping of people. element org { (model.headLike*, (model.pLike* | (model.labelLike | model.nameLike | model.placeLike)*), (model.noteLike | model.biblLike)*, model.personLike*), att.global.attributes, att.global.attributes, att.typed.attributes, att.editLike.attributes, ## specifies a primary role or classification for the organization. attribute role { list { xsd:token { pattern = "(\p{L}|\p{N}|\p{P}|\p{S})+" }, xsd:token { pattern = "(\p{L}|\p{N}|\p{P}|\p{S})+" }* } }? } relationGrp = ## (relation group) provides information about relationships identified amongst people, places, and ## organizations, either informally as prose or as formally expressed relation links. element relationGrp { (model.pLike+ | relation+), att.global.attributes, att.global.attributes, att.typed.attributes } 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 { (model.pLike+ | (model.personPart | model.global)*), att.global.attributes, att.global.attributes, att.editLike.attributes, ## specifies a primary role or classification for the person. attribute role { list { xsd:Name, xsd:Name* } }?, ## specifies the sex of the person. attribute sex { "0" | "1" | "2" | "9" }?, ## specifies an age group for the person. attribute age { xsd:Name }? } personGrp = ## (personal group) describes a group of individuals treated as a single person for analytic purposes. element personGrp { (model.pLike+ | model.personPart*), att.global.attributes, att.global.attributes, ## specifies the role of this group of participants in the interaction. attribute role { xsd:Name }?, ## specifies the sex of the participant group. attribute sex { ("0" | "1" | "2" | "9") | "mixed" }?, ## specifies the age group of the participants. attribute age { xsd:Name }?, ## specifies the size or approximate size of the group. attribute size { list { xsd:token { pattern = "(\p{L}|\p{N}|\p{P}|\p{S})+" }, xsd:token { pattern = "(\p{L}|\p{N}|\p{P}|\p{S})+" }* } }? } place = ## contains data about a geographic location element place { (model.headLike*, (model.pLike* | (model.labelLike | model.placeStateLike | model.placeTraitLike | model.placeEventLike)*), (model.noteLike | model.biblLike)*, (model.placeLike | listPlace)*), att.global.attributes, att.global.attributes, att.typed.attributes, att.editLike.attributes } population = ## contains information about the population of a place. element population { (model.headLike*, ((model.pLike+ | model.labelLike+), (model.noteLike | model.biblLike)*)?, population*), att.global.attributes, att.global.attributes, att.datable.attributes, att.editLike.attributes, att.naming.attributes, att.typed.attributes } relation = ## (relationship) describes any kind of relationship or linkage amongst a specified group of participants. element relation { empty >> sch:pattern [ id = "relation-constraint-activemutual" "\x{a}" ~ " " sch:rule [ context = "tei:relation" "\x{a}" ~ " " sch:report [ test = "@active and @mutual" "Only one of the attributes\x{a}" ~ " 'active' and 'mutual' may be supplied" ] "\x{a}" ~ " " ] "\x{a}" ~ " " ] >> sch:pattern [ id = "relation-constraint-activepassive" "\x{a}" ~ " " sch:rule [ context = "tei:relation" "\x{a}" ~ " " sch: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}" ~ " " ], att.global.attributes, att.global.attributes, att.datable.attributes, att.editLike.attributes, att.naming.attributes, ## categorizes the relationship in some respect, e.g. as social, personal or other. ## Suggested values include: 1] social; 2] personal; 3] other [ a:defaultValue = "personal" ] attribute type { ## relationship concerned with social roles "social" | ## relationship concerned with personal roles, e.g. kinship, marriage, etc. "personal" | ## other kinds of relationship "other" | xsd:Name }?, ## supplies a name for the kind of relationship of which this is an instance. attribute name { xsd:Name }, ## identifies the passive participants in a non-mutual relationship. attribute passive { list { xsd:anyURI, xsd:anyURI* } }?, ( ## identifies the active participants in a non-mutual relationship, or all the participants in a mutual ## one. attribute active { list { xsd:anyURI, xsd:anyURI* } }? | ## supplies a list of participants amongst all of whom the relationship holds equally. attribute mutual { list { xsd:anyURI, xsd:anyURI* } }?) } residence = ## (residence) describes a person's present or past places of residence. element residence { macro.phraseSeq, att.global.attributes, att.global.attributes, att.datable.attributes, att.editLike.attributes, att.naming.attributes } sex = ## specifies the sex of a person. element sex { macro.phraseSeq, att.global.attributes, att.global.attributes, att.editLike.attributes, att.datable.attributes, ## attribute value { "0" | "1" | "2" | "9" }? } socecStatus = ## (socio-economic status) contains an informal description of a person's perceived social or economic status. element socecStatus { macro.phraseSeq, att.global.attributes, att.global.attributes, att.datable.attributes, att.editLike.attributes, att.naming.attributes, ## identifies the classification system or taxonomy in use. attribute scheme { xsd:anyURI }?, ## identifies a status code defined within the classification system or taxonomy defined by the source attribute. attribute code { xsd:anyURI }? } terrain = ## contains information about the physical terrain of a place. element terrain { (model.headLike*, (model.pLike+ | model.labelLike+), (model.noteLike | model.biblLike)*, terrain*), att.global.attributes, att.global.attributes, att.datable.attributes, att.editLike.attributes, att.naming.attributes, att.typed.attributes } trait = ## contains a description of some culturally-determined and in principle unchanging characteristic attributed to a person or place. element trait { (trait+ | (model.headLike*, model.pLike+, (model.noteLike | model.biblLike)*) | (model.labelLike | model.noteLike | model.biblLike)*), att.global.attributes, att.global.attributes, att.datable.attributes, att.editLike.attributes, att.naming.attributes, att.typed.attributes } nym = ## (canonical name) contains the definition for a canonical name or namepart of any kind. element nym { (model.entryPart*, model.pLike*, nym*), att.global.attributes, att.global.attributes, att.typed.attributes, ## points to constituent nyms attribute parts { list { xsd:anyURI, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI?, xsd:anyURI? } }? } listNym = ## (list of canonical names) contains a list of nyms, that is, standardized names for any thing. element listNym { (model.headLike*, (nym | listNym)+, (relationGrp | relation)*), att.global.attributes, att.global.attributes, att.typed.attributes, att.declarable.attributes } 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 { xsd:date | xsd:gYear | xsd:gMonth | xsd:gDay | xsd:gYearMonth | xsd:gMonthDay | xsd:time | xsd:dateTime | xsd:token { pattern = "[0-9.,DHMPRSTWYZ/:+\-]+" } }? 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 { xsd:date | xsd:gYear | xsd:gMonth | xsd:gDay | xsd:gYearMonth | xsd:gMonthDay | xsd:time | xsd:dateTime | xsd:token { pattern = "[0-9.,DHMPRSTWYZ/:+\-]+" } }? 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 { xsd:date | xsd:gYear | xsd:gMonth | xsd:gDay | xsd:gYearMonth | xsd:gMonthDay | xsd:time | xsd:dateTime | xsd:token { pattern = "[0-9.,DHMPRSTWYZ/:+\-]+" } }? att.datable.iso.attribute.from-iso = ## indicates the starting point of the period in standard form. attribute from-iso { xsd:date | xsd:gYear | xsd:gMonth | xsd:gDay | xsd:gYearMonth | xsd:gMonthDay | xsd:time | xsd:dateTime | xsd:token { pattern = "[0-9.,DHMPRSTWYZ/:+\-]+" } }? att.datable.iso.attribute.to-iso = ## indicates the ending point of the period in standard form. attribute to-iso { xsd:date | xsd:gYear | xsd:gMonth | xsd:gDay | xsd:gYearMonth | xsd:gMonthDay | xsd:time | xsd:dateTime | xsd:token { pattern = "[0-9.,DHMPRSTWYZ/:+\-]+" } }? start = TEI