Thursday, 2 October 2003
Why do XML editors suck so much?
I’m seriously sick of using programs that call themselves “XML editors” because they colourize markup. I’m talking about XML Spy, Oxygen, BBEdit, and thousands of lesser programs. All of them are just glorified text editors - they still operate on the level of characters, not information items.
This is what I want to see:
- Element selection - the primary selection mechanism should be per-element, not per-character. I want soft boundries on each element - maybe even go so far that if I want to select more, I should have to do something special, like hold a modifier key down.
- Select-and-wrap - this is so basic I can’t believe they’re not all doing it. Select some content, right-click (or do whatever it is your platform does to get contextual menus) and allow me to wrap that content in an element of my choice.
- Select-and-escape - Same as above, but do entity escaping, based on the document’s DTD.
- Select-and-CDATA - Same as above, but wrap the selection in CDATA - intelligently.
- Schema-aware editing - I’ve seen half-hearted attempts at this, but it’s usually too confusing to be useful. It needs to be live, contextual and unintrusive. Maybe squiggly lines?
- Attribute editing - Some UI genius needs to come up with an intuitive, non-intrusive way to edit attributes. I shouldn’t have to position my cursor between the quotes, and I certainly shouldn’t have to worry about what style of quotes I’m using.
- Non-continguous selection - Nisus Writer (a seriously good editor in its day) and Word do this - why can’t everybody else? Makes the select-and-* stuff a lot more powerful…
- XInclude, XSLT, XML Encryption, XML Signature - all of these things should just happen if you ask for them. Bonus points for allowing people to mark sections of the document as XIncluded or encrypted, but still showing them the plaintext, so they can transparently edit and then save with the appropriate transforms.
- Search-and-replace - Anybody think that maybe wildcards and regex isn’t the best way to find content in markup? How about XPath? How about “find me element X with attribute Y? And make it namespace-aware, please. Not just some poxy XPath navigator widget either - I want it to equal or better every other find UI in existence.
- Not emacs - I don’t need a new religion, just an editor.
What else am I missing? Or is there already a perfect XML editor out there of which I’m blissfully unaware?