Oh, one thing I forgot to mention.
Not sure if we overlooked it, but I was wondering how are you handling
special (XML/HTML) character data? Especially for Struts (errors.header and
errors.footer)
One peice of functionality that I am adding will (for the most part) take
care of that in a clean (IMHO) way.
Here's a snip from my sample app (ok, Craig's app, but my changes)
ApplicationResources.xml
------------------------
<root>
<!--
This file demonstrates how you might use the XMLMessageResources
within
the cannonocial struts-example webapp.
-->
<app:mode en=""/>
<property:html name="html.li.begin" en="li"/>
<property:html name="html.li.end" en="/li"/>
<property:html name="html.ul.begin" en="ul"/>
<property:html name="html.ul.end" en="/ul"/>
<property:html name="html.hr" en="hr"/>
<property:html name="html.h3.begin" en="h3"/>
<property:html name="html.h3.end" en="/h3"/>
<property:html name="html.font.red.begin" en="font color='red'"/>
<property:html name="html.font.end" en="/font"/>
<button>
<cancel en="Cancel"/>
<confirm en="Confirm"/>
<reset en="Reset"/>
<save en="Save"/>
</button>
<change>
<message en="Your password has expired. Please ask the system
administrator to change it."/>
<try en="Try Again"/>
<title en="Password Has Expired"/>
</change>
<database>
<load en="Cannot load database from {0}"/>
</database>
<error>
<database>
<missing en="${html.li.begin}User database is missing, cannot
validate
logon credentials${html.li.end}"/>
</database>
-----------------------------------------------
1. en does not necessarily have to be the attribute name
And if using separate files (by locale), then I would use val="" or
value=""
or some other meaninful attribute.
2. The app:mode and html:property are special tags reserved for processing.
3. Notice the ${replace-able.keys} within the attribute values.
This has the same effect as Ant properties, but it works with any
attribute's key-value (not just html:property) which is done after
initial loading. It will recursively replace these tokens unless an
infinite loop is detected.
Anyway, that's some food for thought.
James Mitchell
Software Engineer/Struts Evangelist
http://www.open-tools.org
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>