<path>

<path> (path) defines any line passing through two or more points within a surface element. [11.1. Digital Facsimiles 11.2.2. Embedded Transcription]
Moduletranscr
Attributes
pointsidentifies a line within the container or bounding box specified by the parent element by means of a series of two or more pairs of numbers, each of which gives the x,y coordinates of a point on the line.
Derived fromatt.coordinated
Status Optional
Datatype 2–∞ occurrences of teidata.point separated by whitespace
Member of
Contained by
transcr: line surface zone
May containEmpty element
Note

Although the simplest form of a path is a straight line between two points, a line with more than two points may bend at any point. The order of coordinates in points is significant, because the line follows the coordinate sequence.

To specify a closed polygon, use the zone element rather than the path element.

Example
<surface ulx="0uly="0lrx="443lry="272">
 <graphic url="facs-fig3.jpg"/>
 <path points="74,73 171,244"/>
 <path points="71,203 173,116"/>
</surface>
SchematronSince a path> represents a line with distinct start and end points, the last coordinate should not be the same as the first coordinate.

<sch:rule context="tei:path[@points]">
<sch:let name="firstPair"
 value="tokenize( normalize-space( @points ), ' ')[1]"/>

<sch:let name="lastPair"
 value="tokenize( normalize-space( @points ), ' ')[last()]"/>

<sch:let name="firstX"
 value="xs:float( substring-before( $firstPair, ',') )"/>

<sch:let name="firstY"
 value="xs:float( substring-after( $firstPair, ',') )"/>

<sch:let name="lastX"
 value="xs:float( substring-before( $lastPair, ',') )"/>

<sch:let name="lastY"
 value="xs:float( substring-after( $lastPair, ',') )"/>

<sch:report test="$firstX eq $lastX and $firstY eq $lastY">The first and
last elements of this path are the same. To specify a closed polygon, use
the zone element rather than the path element. </sch:report>
</sch:rule>
Content model
<content>
 <empty/>
</content>
Schema Declaration
element path
{
   tei_att.global.attributes,
   tei_att.coordinated.attribute.start,
   tei_att.coordinated.attribute.ulx,
   tei_att.coordinated.attribute.uly,
   tei_att.coordinated.attribute.lrx,
   tei_att.coordinated.attribute.lry,
   tei_att.typed.attributes,
   tei_att.written.attributes,
   attribute points { list { teidata.point, teidata.point, teidata.point* } }?,
   empty
}