Is Hand Written Xml Too Much For Mere Mortals?

I am currently working on a project that requires the editing of information in a very free flowing way (like in Word or Excel) but has very strict data and validation conditions as well. I have considered many different mechanisms/interfaces which would allow a reasonable amount of freedom on the users part but still be able to adhere to a formal structure.

The solution that I am currently considering is to have the users just edit Xml directly. The users in this case are very capable and can adapt pretty well to new ideas. Here are is my current list of pros and cons:

Pros

  • Easily Validated
  • Fairly easy to read, understand and write
  • Possible intellisense with the right editor
  • Easy to program against
  • Lends itself well to heirarichal data

Cons

  • Very verbose
  • Another language for users to learn
  • No consumer level editor

So with the above lists, Xml is not looking like too bad of a choice. Did I miss any pros or cons?

I have also been looking for a good Xml editor that the people can use to author the documents with. My first idea was the Microsoft Xml Notepad. Maybe I am missing something but that tool seems very awkward and hard to use, not to mention the fact that you have to edit an xml file as if it were a tree. Then, I thought of SharpDevelop – a free, open source, .Net IDE that has a pretty decent Xml editor (I still think visual studio 2005 is the best I have used). I downloaded it and tried out SharpDevelop and it seems to work very well. It would fit the bill for this project because it is free and lightweight.

So what do you think – Is hand writing Xml too much to ask of the average user?

Advertisements

3 Responses to Is Hand Written Xml Too Much For Mere Mortals?

  1. Dan says:

    Very interesting your comment about xml editors.
    MS Xml Notepad is not very usable for editing documents, in fact it has an edit… menu that opens the plain notepad.
    And well, I don’t imagine a worker used to Office with SharpDevelop or Visual Studio for editing xml docs.

    The processing of xml docs is not as easy, the fact that makes it look easy are the fantastic APIs like System.XML and the great support in Visual Studio, even in Express editions.

    If you find a free xml editor with intellisense ( from the xml schema ) like Visual Studio let us know please.
    At sourceforge there is a good program called Xml Copy Editor that I use currently for editing xml, but the intellisense is not as good as VS.

  2. SeanG says:

    It seems to me that you could make an editor that doesn’t require the user to type the angle brackets (i.e. ) at all.

    The user could just type lines with the element name first, followed by attributes, followed by a newline and indentation for a child text node.

    For example:

    The text:
    person name=”James” dob=”1980-08-20″
    profile datePosted=”2007-09-04″
    Hi! My name is James, and I really like programming. No, I mean I *really* like it.

    Would become the following Xml, automatically:

    Hi! My name is James, and I really like programming. No, I mean I *really* like it.

    This has the advantage that the user doesn’t have to learn anything that looks like code; they just have to know rules for body text, element names, and attributes. Also, many finger-stretching keystrokes are saved (as are the closing elements).

    The editor can enforce compliance behind the scenes, by using auto-indentation, quote-closing, etc.

  3. SeanG says:

    Argh; all my beautiful Xml was disappeared. Let me do the example again:

    The text:
    person name=”James” dob=”1980-08-20″
      profile datePosted=”2007-09-04″
        Hi! My name is James, and I really like programming. No, I mean I *really* like it.

    Would become the following Xml, automatically:
    <person name=”James” dob=”1980-08-20″>
      <profile datePosted=”2007-09-04″>
        Hi! My name is James, and I really like programming. No, I mean I *really* like it.
      </profile>
    <person>

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: