<change>

<change> (change) documents a change or set of changes made during the production of a source document, or during the revision of an electronic file. [2.6. The Revision Description 2.4.1. Creation 11.7. Identifying Changes and Revisions]
Module header
Attributes Attributes att.docStatus (docStatus, metaStatus) att.global (xml:id, n, xml:lang) (lim.att.global.fragmentable (part)) (att.global.rendition (rendition)) (att.global.source (source)) att.typed (type) att.datable (@calendar) att.datable.w3c (when, @notBefore, @notAfter, @from, @to) att.datable.custom (@when-custom, @notBefore-custom, @notAfter-custom, @from-custom, @to-custom, @datingMethod)
who indicates the person, or group of people, to whom the element content is ascribed.
Derived from att.ascribed
Status Required
Datatype 1–∞ occurrences of teidata.pointer separated by whitespace
when supplies the value of the date or time in a standard form, e.g. yyyy-mm-dd.
Derived from att.datable.w3c
Status Required
Datatype teidata.temporal.w3c
target (target) points to one or more elements that belong to this change.
Status Optional
Datatype 1–∞ occurrences of teidata.pointer separated by whitespace
Contained by
May contain
Note
The who attribute may be used to point to any other element, but will typically specify a respStmt or person element elsewhere in the header, identifying the person responsible for the change and their role in making it.
It is recommended that changes be recorded with the most recent first. The status attribute may be used to indicate the status of a document following the change documented.
Examples

<titleStmt>
   
<title>  ... </title>
   
<editor xml:id="LDB">Lou Burnard</editor>
   
<respStmt xml:id="BZ">
      
<resp>copy editing</resp>
      
<name>Brett Zamir</name>
   
</respStmt>
</titleStmt>
<!-- ... -->
<revisionDesc status="published">
   
<change who="#BZ" when="2008-02-02" status="public">Finished chapter 23</change>
   
<change who="#BZ" when="2008-01-02" status="draft">Finished chapter 2</change>
   
<change n="P2.2" when="1991-12-21" who="#LDB">Added examples to section 3</change>
   
<change when="1991-11-11" who="#MSM">Deleted chapter 10</change>
</revisionDesc>

<profileDesc>
   
<creation>
      
<listChange>
         
<change xml:id="DRAFT1">First draft in pencil</change>
         
<change xml:id="DRAFT2" notBefore="1880-12-09">First revision, mostly
using green ink
</change>
         
<change xml:id="DRAFT3" notBefore="1881-02-13">Final corrections as
supplied to printer.
</change>
      
</listChange>
   
</creation>
</profileDesc>
Schematron

<sch:pattern>
   
<sch:rule context="tei:change">
      
<sch:assert test="every $ptr in tokenize(@who,'\s+') satisfies matches($ptr,'^team:')">ERROR: Every pointer in change/@who must start with 'team:'.</sch:assert>
   
</sch:rule>
</sch:pattern>

<sch:pattern>
   
<sch:rule context="tei:change">
      
<sch:assert test="not(normalize-space(string-join(descendant::text(),'')) = '')">ERROR: change elements must contain meaningful content.</sch:assert>
   
</sch:rule>
</sch:pattern>
Source Github

<elementSpec rend="change" module="header" ident="change">
   
<gloss>change</gloss>
   
<desc>documents a change or set of changes made during the production
of a source document, or during the revision of an electronic file.
</desc>
   
<classes>
      
<memberOf key="att.ascribed"/>
      
<memberOf key="att.datable"/>
      
<memberOf key="att.docStatus"/>
      
<memberOf key="att.global"/>
      
<memberOf key="att.typed"/>
   
</classes>
   
<content>
      
<macroRef key="macro.specialPara"/>
   
</content>
   
<attList>
      
<attDef ident="who" mode="change" usage="req"/>
      
<attDef ident="when" mode="change" usage="req"/>
      
<attDef ident="target">
         
<gloss>target</gloss>
         
<desc>points to one or more elements that belong to this change.</desc>
         
<datatype minOccurs="1" maxOccurs="unbounded">
            
<dataRef key="teidata.pointer"/>
         
</datatype>
      
</attDef>
   
</attList>
</elementSpec>