The only freely available editor is Emacs (GNU or X) in conjunction with psgml mode. From the mode help:
SGML mode:
Major mode for editing SGML.
Makes > display the matching <. Makes / display matching /.
Use C-c C-v to validate your document with an SGML parser.
You can find information with:
C-c C-c Show the nesting of elements at cursor position.
C-c C-t Show the tags valid at cursor position.
Insert tags with completion of contextually valid tags with C-c <.
End the current element with C-c /. Insert an element (i.e.
both start and end tag) with C-c C-e. Or tag a region with
C-c C-r.
To tag a region with the mouse, use transient mark mode or secondary selection.
Structure editing:
M-C-b Moves backwards over the previous element.
M-C-f Moves forward over the nex element.
M-C-d Move forward and down one level in the element structure.
M-C-u Move backward out of this element level.
M-C-a Move to after the start tag of the current element.
M-C-e Move to before the end tag of the current element.
M-C-k Kill the element following the cursor.
Finding interesting positions
C-c C-d Move forward to next point where data is allowed.
C-c C-o Move forward to next point where something is
amiss with the structure.
Folding and unfolding
C-c C-f C-e Fold the lines comprising the current element, leaving
the first line visible.
C-c C-f C-s Fold the elements in the content of the current element.
Leaving the first line of every element visible.
C-c C-s Show hidden lines in current line.