A TEI Customization for the GFL Project: Goethes Farbenlehre

This TEI ODD defines a TEI customization that is as minimal as possible and the schema generated from it will validate a document that is minimally valid against the TEI scheme. It includes only the ten required elements:

  1. <teiHeader> from the header module to store required metadata
  2. <fileDesc> from the header module to record information about this file
  3. <titleStmt> from the header module to record information about the title
  4. <publicationStmt> from the header module to detail how it is published
  5. <sourceDesc> from the header module to record where it is from
  6. <p> from the core module for use in the header and the body
  7. <title> from the core module for use in the titleStmt
  8. <TEI> from the textstructure module because what is a TEI file without that?
  9. <text> from the textstructure module to hold some text
  10. <body> from the textstructure module as a place to put that text

Specification []

Unlike vanilla TEI, we allow spaces in a URI (and thus give up the capability to differentiate a single URI with a space from 2 URIs) in order to get ID pop-ups to work in oXygen. See the corresponding Issue at GitHub.

Module: header
Module: core
Module: textstructure
Module: tei
Module: figures
Module: namesdates
Module: msdescription
Module: tagdocs
Module: linking
Module: textcrit
Module: transcr
att.breaking
@break
no
keep-hyphen
both
att.canonical
@key
att.citing
@unit
issue
column
entry
att.dimensions
@unit
wordwords
pagepages
@precision
att.global.rendition
@rend
@style
@rendition
[#renditionpointer]
<constraint    xmlns:sch="http://purl.oclc.org/dsdl/schematron"> <sch:rule context="tei:*[@rendition]">  <sch:let name="results"   value="for $val in tokenize(normalize-space(@rendition),'\s+') return starts-with($val,'simple:') or (starts-with($val,'#') and //tei:rendition[@xml:id=substring($val,2)])"/>  <sch:assert test="every $x in $results satisfies $x"> Error: Each of the    rendition values in "<sch:value-of select="@rendition"/>" must point to a    local ID or to a rendition defined in the TEI-Simple scheme (<sch:value-of select="$results"/>) </sch:assert></sch:rule></constraint>
simple:allcapsall capitals
simple:blackletterblack letter or gothic typeface
simple:boldbold typeface
simple:bottombracedmarked with a brace under the bottom of the text
simple:boxedborder around the text
simple:centrecentred
simple:cursivecursive typeface
simple:displayblock display
simple:doublestrikethroughstrikethrough with double line
simple:doubleunderlineunderlined with double line
simple:dropcapinitial letter larger or decorated
simple:floatfloated out of main flow
simple:hyphenwith a hyphen here (eg in line break)
simple:inlineinline rendering
simple:justifyjustified text
simple:italicitalic typeface
simple:largerlarger type
simple:leftaligned to the left or left-justified
simple:leftbracedmarked with a brace on the left side of the text
simple:letterspacelarger-than-normal spacing between letters, usually for emphasis
simple:literalfixed-width typeface, spacing preserved
simple:normalstyleupright shape and default weight of typeface
simple:normalweightnormal typeface weight
simple:rightaligned to the right or right-justified
simple:rightbracedmarked with a brace to the right of the text
simple:rotateleftrotated to the left
simple:rotaterightrotated to the right
simple:smallcapssmall caps
simple:smallersmaller type
simple:strikethroughstrike through
simple:subscriptsubscript
simple:superscriptsuperscript
simple:topbracedmarked with a brace above the text
simple:typewriterfixed-width typeface, like typewriter
simple:underlineunderlined with single line
simple:wavyunderlineunderlined with wavy line
simple:half-brokenhalf broken
simple:column-leftcolumn left
simple:column-rightcolumn right
att.naming
@role
aut
crr
dtc
dub
edt
fnd
pbl
prt
rcp
trc
wac
att.placement
@place
aboveabove the line
belowbelow the line
topat the top of the page
top-rightat the top right of the page
top-leftat the top left of the page
top-centreat the top center of the page
bottom-rightat the bottom right of the page
bottom-leftat the bottom left of the page
bottom-centreat the bottom centre of the page
bottomat the foot of the page
tablebottomunderneath a table
margin-rightin the right-hand margin
marginin the outer margin
margin-innerin the inner margin
margin-leftin the left-hand margin
oppositeon the opposite, i.e. facing, page.
overleafon the other side of the leaf.
overstrikesuperimposed on top of the current context
endat the end of the volume.
divendat the end the current division.
parendat the end the current paragraph.
inlinewithin the body of the text.
inspacein a predefined space, for example left by an earlier scribe.
blockformatted as an indented paragraph
left-sideon the left side paragraph
right-sideon the right side paragraph
att.cReferencing
att.damaged
att.datable
@calendar
@period
att.datable.custom
att.datable.iso
att.datcat
att.declarable
att.declaring
att.divLike
att.docStatus
att.duration.iso
att.editLike
att.edition
att.personal
att.ranging
<name>
@type
personEin Eigenname als Bezeichnung einer Person, entweder in ausgeschriebener oder abgekürzter Form. Hierbei kann es sich um den tatsächlichen Namen oder einen Spitznamen handeln.
orgEin Eigenname zu Bezeichnung einer Organisation, entweder in ausgeschriebener oder abgekürzter Form.
placeEin Eigenname zur Bezeichnug eines Orts, entweder in ausgeschriebener oder abgekürzter Form.
objectEine Bezeichnung eines Objekts, entweder in ausgeschriebener oder abgekürzter Form.
@subtype
autEigenname einer Person: Autor des Werkes
scrEigenname einer Person: Handschriftlicher Schreiber
crrEigenname einer Person: Korrektor des Werkes
dtcEigenname einer Person: Zulieferer von Daten
dubEigenname einer Person: Zweifelhafter Autor
edtEigenname einer Person: Editor
fndEigenname einer Person: Kostenträger
pblEigenname einer Person: Herausgeber
prtEigenname einer Person: Drucker
rcpEigenname einer Person: Adressat / Empfänger
trcEigenname einer Person: Ersteller der Transcription
wacEigenname einer Person: Schreiber eines zugefügten Kommentars
dtnEigenname eines Ortes: Ziel
ornEigenname eines Ortes: Herkunftsort
pupEigenname eines Ortes: Publikationsort
<rs>
@type
personEin Eigenname als Bezeichnung einer Person, entweder in ausgeschriebener oder abgekürzter Form. Hierbei kann es sich um den tatsächlichen Namen oder einen Spitznamen handeln.
orgEin Eigenname zu Bezeichnung einer Organisation, entweder in ausgeschriebener oder abgekürzter Form.
placeEin Eigenname zur Bezeichnug eines Orts, entweder in ausgeschriebener oder abgekürzter Form.
objectEine Bezeichnung eines Objekts, entweder in ausgeschriebener oder abgekürzter Form.
@subtype
autEigenname einer Person: Autor des Werkes
scrEigenname einer Person: Handschriftlicher Schreiber
crrEigenname einer Person: Korrektor des Werkes
dtcEigenname einer Person: Zulieferer von Daten
dubEigenname einer Person: Zweifelhafter Autor
edtEigenname einer Person: Editor
fndEigenname einer Person: Kostenträger
pblEigenname einer Person: Herausgeber
prtEigenname einer Person: Drucker
rcpEigenname einer Person: Adressat / Empfänger
trcEigenname einer Person: Ersteller der Transcription
wacEigenname einer Person: Schreiber eines zugefügten Kommentars
dtnEigenname eines Ortes: Ziel
ornEigenname eines Ortes: Herkunftsort
pupEigenname eines Ortes: Publikationsort
<handNote>
@xml:id
@medium
ink
pencil
pncInk
redInk
redChalk
<handShift>
@scribe
@scribeRef
<date>
@type
ornEntstehungsdatum
pubPublikationsdatum
<note>
@type
com
footnote
<add>
@type
archive
courseBus
<pb>
[#pbinnote]
<constraint    xmlns:sch="http://purl.oclc.org/dsdl/schematron"> <sch:rule context="tei:pb[parent::tei:note]">  <sch:report test="@facs"> Error: <sch:name/> may not contain @facs if it is placed    in a note </sch:report></sch:rule></constraint>
<height>
@scope
all
most
range
<width>
@type
all
most
range
<relatedItem>
@type
print
document
letter
onlineedition
@subtype
related
response
<title>
@type
main
sub
alt
short
desc
<language>
@identger
ger
eng
lat
fre
ita
<dataRef name="anyURI"/>
[#scribereferences]
<constraint    xmlns:sch="http://purl.oclc.org/dsdl/schematron"> <sch:rule context="tei:*[@scribeRef]">  <sch:let name="scribe-references"   value="for $scribe in tokenize(normalize-space(@scribeRef),'\s+') return starts-with($scribe,'#') and id(substring($scribe,2))"/>  <sch:assert test="every $x in $scribe-references satisfies $x"> Error: Every    referenced scribe in <sch:name/>/@scibeRef ("<sch:value-of select="@scribeRef"/>")    must point to a personal entity identified by an @xml:id in this document    (<sch:value-of select="$scribe-references"/>) </sch:assert></sch:rule></constraint>
[#validrefandtarget]
<constraint    xmlns:sch="http://purl.oclc.org/dsdl/schematron"> <sch:rule context="@*[name() = 'ref' or name() = 'target']">  <sch:let name="declared-prefixes"   value="//tei:prefixDef/@ident"/>  <sch:let name="external-references"   value="for $t in tokenize(normalize-space(.),'\s+') return if( not(starts-with($t, 'http')) ) then (substring-before($t, ':')) else ()"/>  <sch:let name="results"   value="for $t in tokenize(normalize-space(.),'\s+') return starts-with($t,'#') and not(id(substring($t,2)))"/>  <sch:report test="some $x in $results satisfies $x"> Error: Every local pointer in    @<sch:name/> ("<sch:value-of select="."/>") must point to an ID in this document    (<sch:value-of select="$results"/>) </sch:report>  <sch:report test="some $x in $external-references satisfies $x[not(.= $declared-prefixes)]"> Error: Every prefix ("<sch:value-of select="$external-references[not(.= $declared-prefixes)]"/>") used in @<sch:name/>    must be predeclared in a tei:prefixDef in the header </sch:report></sch:rule></constraint>
[#nameref]
<constraint    xmlns:sch="http://purl.oclc.org/dsdl/schematron"> <sch:rule context="tei:name[@ref]">  <sch:let name="refvalue="string(./@ref)"/>  <sch:let name="gndValue"   value="substring-after($ref, 'gnd:')"/>  <sch:assert test="matches($ref, '^gnd:\d')"> Error: Every referenced authority file    should start with "gnd:" followed by a digit. Value here: "<sch:value-of select="string(./@ref), ."/>" </sch:assert>  <sch:report test="matches($ref, '\s')"> Error: A gnd MUST NOT contain a whitespace.    Value here: "<sch:value-of select="."/>" </sch:report>  <sch:report test="contains($ref, '_')"> Error: A gnd MUST NOT contain an underscore.    Value here: "<sch:value-of select="."/>" </sch:report>  <sch:assert test="for $i in tokenize($gndValue) return doc(string-join(('https://d-nb.info/gnd/', $i, '/about/rdf'), ''))/*:RDF"> Error: GND file not found for value "<sch:value-of select="string(./@ref)"/>". In    case of other errors reported here, fix these at first and check the provided ID if    the error consists. </sch:assert></sch:rule></constraint>
[#name-string]
<constraint    xmlns:sch="http://purl.oclc.org/dsdl/schematron"> <sch:rule context="tei:name">  <sch:report test="ends-with(., ',') or ends-with(., ';')"> Error: tei:name should not    end with "," or ";". Value here: "<sch:value-of select="."/>" </sch:report></sch:rule></constraint>
[#idno-string]
<constraint    xmlns:sch="http://purl.oclc.org/dsdl/schematron"> <sch:rule context="tei:msIdentifier/tei:idno">  <sch:assert test=" starts-with(., 'Autographensammlung Günther Schmid ') or starts-with(., 'BBAW ') or starts-with(., 'FDH-FGM, ') or starts-with(., 'GSA ') or starts-with(., 'GStA PK,') or starts-with(., 'HAAB ') or starts-with(., 'HU UA,') or starts-with(., 'Leopoldina Archiv / ') or starts-with(., 'RSA ') or starts-with(., 'SBB Handschriftenabt., ') or starts-with(., 'SMB-ZA, ') or starts-with(., 'SUB Göttingen, ') or starts-with(., 'UAHW, ') or starts-with(., 'GMD, ') or starts-with(., 'HAStK') "> Error: tei:idno refers to a instituion not available for    processing. Value here: "<sch:value-of select="."/>. Allowed values the text should    start with are 'Autographensammlung Günther Schmid ', 'BBAW ', 'FDH-FGM, ', 'GSA ',    'GStA PK,', 'HAAB ', 'HU UA,', 'Leopoldina Archiv / ', 'RSA ', 'SBB    Handschriftenabt., ', 'SMB-ZA, ', 'SUB Göttingen, ', 'UAHW, ' or 'GMD,    '.</sch:assert></sch:rule></constraint>
[#idno-empty]
<constraint    xmlns:sch="http://purl.oclc.org/dsdl/schematron"> <sch:rule context="tei:idno">  <sch:assert test="string-length(.) gt 0">Error: An empty tei:idno has no function and    should be removed.</sch:assert></sch:rule></constraint>
[#body-note]
<constraint    xmlns:sch="http://purl.oclc.org/dsdl/schematron"> <sch:rule context="(tei:body/tei:*)[local-name() eq 'note']">  <sch:report role="infotest="true()"> Consider moving the editorial comment regarding    the complete document to teiHeader/profileDesc/abstract. </sch:report></sch:rule></constraint>
[#body-pb]
<constraint    xmlns:sch="http://purl.oclc.org/dsdl/schematron"> <sch:rule context="tei:body">  <sch:assert test=".//tei:pb"> At least a single tei:pb element is required.  </sch:assert></sch:rule></constraint>
[#name-name]
<constraint    xmlns:sch="http://purl.oclc.org/dsdl/schematron"> <sch:rule context="tei:name">  <sch:report role="infotest=".//tei:name"> Nested tei:name adressing <sch:value-of select=".//tei:name/string()"/> within <sch:value-of select="./string()"/>.  </sch:report></sch:rule></constraint>
[#rendition-rendition]
<constraint    xmlns:sch="http://purl.oclc.org/dsdl/schematron"> <sch:rule context="tei:*[@rendition]">  <sch:report test=".[tokenize(@rendition, ' ') = ./ancestor::tei:*[@rendition][not(@hand eq ./@hand)]/tokenize(@rendition, ' ')]"> The rendition is specified before. </sch:report></sch:rule></constraint>
[#filename-text-id]
<constraint    xmlns:sch="http://purl.oclc.org/dsdl/schematron"> <sch:rule context="tei:text">  <sch:assert test="./@xml:id = substring-before(tokenize(document-uri(/), '/')[last()], '.xml')"> The xml:id given for element tei:text should match the filename (w/o filename    extension). filename w/o extension: “<sch:value-of select="substring-before(tokenize(document-uri(/), '/')[last()], '.xml')"/>”    tei:text/@xml:id: “<sch:value-of select="string(./@xml:id)"/></sch:assert></sch:rule></constraint>
[#ref-target-availability]
<constraint    xmlns:sch="http://purl.oclc.org/dsdl/schematron"> <sch:rule context="tei:ref[@target][not(contains(@target, 'textgrid:3zhh5'))][not(contains(@target, 'textgrid:3zhh6'))][not(contains(@target, 'd-nb.info'))][not( ./parent::tei:relatedItem )]">  <sch:let name="docPath"   value="if ( contains(./@target, '#') ) then substring-before(./@target, '#') else string(@target) "/>  <sch:let name="idref"   value="substring-after(./@target, '#')"/>   <!-- check for the file at first -->  <sch:assert test="doc-available($docPath) or doc-available('../TEI_doc_bearb/' || $docPath)"> File is not available.    “<sch:value-of select="$docPath"/>”  </sch:assert>   <!-- check for the idref beeing available -->  <sch:assert test="if ($idref != '') then doc($docPath)/id($idref) or doc('../TEI_doc_bearb/' || $docPath)/id($idref) else true()"> IDREF    “<sch:value-of select="$idref"/>” is not available in file “<sch:value-of select="$docPath"/>”.     </sch:assert></sch:rule></constraint>
[#bilb-corresp-availability]
<constraint    xmlns:sch="http://purl.oclc.org/dsdl/schematron"> <sch:rule context="tei:bibl[@corresp]">  <sch:let name="docPath"   value="if ( contains(./@corresp, '#') ) then substring-before(./@corresp, '#') else string(@corresp) "/>  <sch:let name="idref"   value="substring-after(./@corresp, '#')"/>   <!-- check for the file at first -->  <sch:assert test="doc-available($docPath) or doc-available('../TEI_doc_bearb/' || $docPath)"> File is not available.    “<sch:value-of select="$docPath"/>”  </sch:assert>   <!-- check for the idref beeing available -->  <sch:assert test="if ($idref != '') then doc($docPath)/id($idref) or doc('../TEI_doc_bearb/' || $docPath)/id($idref) else true()"> IDREF    “<sch:value-of select="$idref"/>” is not available in file “<sch:value-of select="$docPath"/>”.     </sch:assert></sch:rule></constraint>
[#s3-content]
<constraint    xmlns:sch="http://purl.oclc.org/dsdl/schematron"> <sch:rule context="tei:graphic[@url][starts-with(@url, 'Graph')]">  <sch:assert test="./@url = doc('s3-content.xml')//item/text()"> File is not available in S3. Please check for the path: “<sch:value-of select="string(./@url)"/>”  </sch:assert></sch:rule></constraint>
Distributed under a Creative Commons Attribution-ShareAlike 3.0 Unported License

Copyright 2013 TEI Consortium.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

This software is provided by the copyright holders and contributors "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the copyright holder or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage.

TEI material can be licensed differently depending on the use you intend to make of it. Hence it is made available under both the CC+BY and BSD-2 licences. The CC+BY licence is generally appropriate for usages which treat TEI content as data or documentation. The BSD-2 licence is generally appropriate for usage of TEI content in a software environment. For further information or clarification, please contact the TEI Consortium.


Notes
Projekt „Wirkungsgeschichte von Goethes Werk ‚Zur Farbenlehre‘ in Berlin 1810-1832“
Holder of rights
Niedersächsische Staats- und Universitätsbibliothek Göttingen

Citation Suggestion for this Object
TextGrid Repository (2022). Weitere Materialien. TEI ODD. Wirkungsgeschichte von Goethes Werk „Zur Farbenlehre“ in Berlin 1810-1832. Niedersächsische Staats- und Universitätsbibliothek Göttingen. https://hdl.handle.net/21.11113/0000-000F-3284-3