* connection - in XML I/O, this element wraps the entire session

* out - a <connection> contains a sequence of <out>s which contain one of:

* report - usually a response from a command - anything containing large amounts of data that is NOT a direct result of someone else's action
* error - generally a response to an unhandlable command. should NOT be used for also mentioning actions that happened - either use <action> or use <action>what happened</action><error>what didn't happen</error>
* action - events. e.g. someone says something, or logs out, or punches you in the face, or you do any of the above
* log - hrm, this element is a bit too special-purpose, perhaps. in mpMUD, it is used for the server's log messages, with the stylesheets wrapping [[ ... ]] around the content. For moebius, the 'debug' method ought to send the exceptions to the creator wrapped in this element.
Another element that might be added is one for messages that are like <log> but aren't specifically server log 
 
Inside of one of the four above elements goes the actual content of the message.

(block elements)
* division - used for indicating some significant change in state - like moving between rooms. Usually rendered like HTML's <hr>.
* detail - Indicates extra detail in descriptions of things. Should be hidden if the user chooses so.
* title - This is like a <h1> in HTML - it usually serves as the title for a <report>, and there may be special handling if it is found at the beginning of <report>. It is only allowed inside <report>.
* line - This is like the HTML <p>, but indicates a paragraph which usually fits on one line. Use this if you need, say, a multi-line <action>.

(inline elements)
* ipre - like HTML's <pre>, but inline.
* obj - marks the name of an object, or other forms of reference to it. See the listing of <ovj> under special elements.
* key - any value which the user might retype - for example, attribute names.
* meta - metasyntax in help text. wrap this ONLY around non-literal text
* quo - like <meta> but for characters that are not metasyntax, but non-data. for example, if a string were displayed quoted, the quotes would be <quo>"</quo>.
* weak - the opposite of <html:strong>
* help - marks a reference to a help file. this element is not well-specified
* ucfirst - First letter of content should be uppercased. This is present because other elements (e.g. <obj>, <verb>) are replaced, and therefore one needs to be able to specify "uppercase whatever is the first letter after processing".

Note that HTML elements may be used together with the above elements.

(special elements)
All of these elements get special handling within the server.
* group - this element should be ignored, and its content be treated as if it were not inside <group>.
* acti - action information. This is a way of generating <action> text that can also provide information more readable by NPC programs, etc. Specifically:
  acti has two significant attributes - 'type' and 'subtype'. The type indicates what sort of action this is - all actis of the same type should be processable identically. The subtype indicates a more specific classification, such as whether a 'motion' was a 'get', 'drop' or something else
  Relevant objects are specified by including <obj> elements in the content of the <acti>. No other content is significant. <obj>s have the special attribute 'role' to indicate what they are for the message.
* help - see definition in inline elements section. This gets processed to include XLink attributes referring to the web help interface.
* html:pre and ipre - get processed to always include xml:space="preserve", so that the output can be handled properly without a DTD.
* if - this is mainly used for various conditions in <action>s. It contains three elements, none of which are used anywhere else; <test>, <then>, and <else>. IF the content of <test> after postprocessing is a true value (not "" or "0"), then the result is the content of <then>, otherwise the result is the content of <else>.
* obj -
* verb - 