<persName>

<persName> (personal name) contains a proper noun or proper-noun phrase referring to a person, possibly including one or more of the person's forenames, surnames, honorifics, added names, etc. [13.2.1. Personal Names]
Module namesdates
Attributes
att.datable
att.datable.w3c
when
notBefore
notAfter
from
to
att.datable.custom
when-custom
notBefore-custom
notAfter-custom
from-custom
to-custom
datingMethod
att.editLike
evidence
att.typed
type
calendar indicates one or more systems or calendars to which the date represented by the content of this element belongs.
Deprecated will be removed on 2024-11-11
Status Optional
Datatype 1–∞ occurrences of teidata.pointer separated by whitespace
Schematron
<sch:rule context="tei:*[@calendar]"> <sch:assert test="string-length( normalize-space(.) ) gt 0"> @calendar indicates one or more systems or calendars to which the date represented by the content of this element belongs, but this <sch:name/> element has no textual content.</sch:assert> </sch:rule>
Member of
Contained by
May contain
Examples

<persName>
   
<forename>Edward</forename>
   
<forename>George</forename>
   
<surname type="linked">Bulwer-Lytton</surname><roleName>Baron Lytton of
     
<placeName>Knebworth</placeName>
   
</roleName>
</persName>
Schematron
All inline persNames must have a ref that points to the personography db.

<sch:rule context="tei:persName[not(parent::tei:person)][@ref]">
   
<sch:assert test="matches(@ref,concat('^prs:', $persIdPattern, '$'))">ERROR: All persName pointers must have an @ref that begins with "prs:" followed by 5 uppercase letters and a number (e.g. prs:FORBR1).</sch:assert>
</sch:rule>
Do not use roleName, but use occupation instead.

<sch:rule context="tei:persName/tei:roleName">
   
<sch:assert test="false()">ERROR: Rolenames should not be denoted in a persName directly; all role information should be encoded using the occupation element.</sch:assert>
</sch:rule>

<sch:rule context="tei:*[@calendar]">
   
<sch:assert test="string-length( normalize-space(.) ) gt 0">@calendar indicates one or more systems or calendars to which the date represented by the content of this element belongs, but this<sch:name/>element has no textual content.</sch:assert>
</sch:rule>

<sch:rule context="tei:*[@calendar]">
   
<sch:assert test="string-length( normalize-space(.) ) gt 0">@calendar indicates one or more systems or calendars to which the date represented by the content of this element belongs, but this<sch:name/>element has no textual content.</sch:assert>
</sch:rule>
Source Github

<elementSpec rend="change" module="namesdates" ident="persName">
   
<gloss>personal name</gloss>
   
<desc>contains a proper noun or proper-noun phrase referring to a
 person, possibly including one or more of
 the person's forenames, surnames, honorifics, added names, etc.
</desc>
   
<classes>
      
<memberOf key="att.global"/>
      
<memberOf key="model.nameLike.agent"/>
      
<memberOf key="att.datable"/>
      
<memberOf key="att.editLike"/>
      
<memberOf key="att.personal"/>
      
<memberOf key="att.typed"/>
   
</classes>
   
<content>
      
<macroRef key="macro.phraseSeq"/>
   
</content>
   
<attList>
      
<attDef ident="calendar" usage="opt" validUntil="2024-11-11">
         
<desc>indicates one or more systems or calendars to which the
        date represented by the content of this element belongs.
</desc>
         
<datatype minOccurs="1" maxOccurs="unbounded">
            
<dataRef key="teidata.pointer"/>
         
</datatype>
      
</attDef>
   
</attList>
</elementSpec>