att.deprecated

att.deprecated provides attributes indicating how a deprecated feature will be treated in future releases.
Module tagdocs — Documentation Elements
Members att.combinable [att.identified [attDef classSpec constraintSpec dataSpec elementSpec macroSpec moduleSpec paramSpec schemaSpec] defaultVal remarks valDesc valItem valList]
Attributes
validUntil⚓︎ provides a date before which the construct being defined will not be removed.
Status Optional
Datatype date
Schematron

<sch:rule context="tei:*[@validUntil]">
<sch:let name="advance_warning_period"
 value="current-date() + xs:dayTimeDuration('P60D')"/>

<sch:let name="me_phrase"
 value="if (@ident) then concat('The ', @ident ) else concat('This ', local-name(.), ' of ', ancestor::tei:*[@ident][1]/@ident )"/>

<sch:assert test="@validUntil cast as xs:date ge current-date()">
 <sch:value-of select="concat( $me_phrase, ' construct is outdated (as of ', @validUntil, '); ODD processors may ignore it, and its use is no longer supported' )"/>
</sch:assert>
<sch:assert role="warning"
 test="@validUntil cast as xs:date ge $advance_warning_period">

 <sch:value-of select="concat( $me_phrase, ' construct becomes outdated on ', @validUntil )"/>
</sch:assert>
</sch:rule>
Schematron

<sch:rule context="tei:*[@validUntil][ not( self::tei:valDesc | self::tei:valList | self::tei:defaultVal | self::tei:remarks )]">
<sch:assert test="child::tei:desc[ @type eq 'deprecationInfo']"> A deprecated construct should include, whenever possible, an explanation, but this <sch:value-of select="name(.)"/> does not have a child <desc type="deprecationInfo"></sch:assert>
</sch:rule>
Note

The value of this attribute should represent a date (in standard yyyy-mm-dd format) which is later than the date on which the attribute is added to an ODD. Technically, this attribute asserts only the intent to leave a construct in future releases of the markup language being defined up to at least the specified date, and makes no assertion about what happens past that date. In practice, the expectation is that the construct will be removed from future releases of the markup language being defined sometime shortly after the validUntil date.

An ODD processor will typically not process a specification element which has a validUntil date that is in the past. An ODD processor will typically warn users about constructs which have a validUntil date that is in the future. E.g., the documentation for such a construct might include the phrase warning: deprecated in red.