Some of my current thought:
- To the extent that we're talking about actual components
we are language-specific (preferably Java :-) but it could
be useful to think a bit more generally.
- I'd prefer to name element types as { namespace uri, tag }
rather than with compound strings or a flat namespace.
- Issues include how to construct a given node, and (IMHO)
the desirability of specialized parse-time interactions to
affect/approve the tree(s) constructed.
- Depending on special DTDs or DTD rules may be unwise in
the general case, and even in the typical one.
- Most non-structural operations should be separated. For
example, GUI stuff should all be separate interfaces. Some
attention to delegation will be important.
- Generating customized content. It's no good solving only half
the problem, and customization during parsing is "easy" (as
suggested by all the results there).
- Separating configuration issues (property file vs a more
structured XML file vs compiled in defaults vs inferring
mappings from packages, etc) from everything else will help.
A factory API helps a lot here.
Clearly, I agree this is important.
- Dave