Code view:

A painting is a person's account of this edit as text, recorded independently of the node mapping - a rendering often has several equally defensible answers where the mapping has one. Deletions and insertions carry no position on the opposite side in a painting, so that panel draws no caret for them.

Before

1<tv date="20221104">
2 <programme channel="3297" start="20221104130000 -0400" stop="20221105235959 -0400">
3 <category lang="en" />
4 <category lang="en">sports</category>
5 </programme>
6</tv>
7

After

1<tv date="20221104">
2 <programme channel="3297" start="20221104130000 +0000" stop="20221105235959 +0000">
3 <category lang="en" />
4 <category lang="en">sports</category>
5 </programme>
6</tv>
7

Before

document
element
STag
< "<"
Name "tv"
Attribute
Name "date"
= "="
AttValue
" "\""
" "\""
> ">"
content
CharData "\n "
element
STag
< "<"
Name "programme"
Attribute
Name "channel"
= "="
AttValue
" "\""
" "\""
Attribute
Name "start"
= "="
AttValue
" "\""
" "\""
Attribute
Name "stop"
= "="
AttValue
" "\""
" "\""
> ">"
content (+32 nodes collapsed)
ETag
</ "</"
Name "programme"
> ">"
CharData "\n"
ETag
</ "</"
Name "tv"
> ">"

After

document
element
STag
< "<"
Name "tv"
Attribute
Name "date"
= "="
AttValue
" "\""
" "\""
> ">"
content
CharData "\n "
element
STag
< "<"
Name "programme"
Attribute
Name "channel"
= "="
AttValue
" "\""
" "\""
Attribute
Name "start"
= "="
AttValue
" "\""
" "\""
Attribute
Name "stop"
= "="
AttValue
" "\""
" "\""
> ">"
content (+32 nodes collapsed)
ETag
</ "</"
Name "programme"
> ">"
CharData "\n"
ETag
</ "</"
Name "tv"
> ">"