<Glazblog/>

Wednesday 13 April 2005

Editing XML documents

As you probably already know, Disruptive Innovations is working on a new editor, codenamed ETNA. An XML Wysiwyg editor, RelaxNG-based. Doing that, we hit a bunch of known old problems that plague Markup editors since GML:

  • How do you create a blank document? When you create a new document based on a given RNG schema, what should be the result? The question is not obvious. Yeah, you can query the schema to get one possible minimal document, for instance always taking the first choice in choices, drop ZeroOrMore and having only one occurence of OneOrMore, but is that really the document you want? Rarely. See how simple, user-friendly and accessible to non-techies the problem is solved in Eclipse. How can you put that in the hands of someone without XML/Schema knowledge? You can't.
  • Similarly, what's a new instance of a given element in a given context? Once again, the schema can give you a minimal possible subtree but that's rarely the one you want.
  • Element and attribute names are not meant to be human-readable. Or at least not a lot. I can't find rprtsvc12 (real example) very descriptive, sorry. So how do you associate a human-readable description, of course localizable, to a given element or attribute in a given context?
  • How do you specify the default stylesheets for a new document?
  • How do you specify extra stylesheets that apply only in editing environments? (Yes, because editing and browsing are different...)
  • How do you specify where you want the initial selection in a new blank document to be?
  • What's the default behavior when you split an element in two (if you can, and you rarely can in complex schemas) or when you want to create a new element at the end of an existing one (think of pressing CR key at the end of a list item to create a new one, or worse pressing twice CR to - for instance - leave the list)?
  • How do you specify default Processing Instructions and Comments that should appear in a blank document or new element? For the moment, the answer is simple, you can't.

We are now working on non-intrusive, simple, easy to use for Schemas authors, solutions to the issues above.