3. XML at the top of the Stack


Impedance Mismatch
XML from the top down maintains consistency
The Climate Changed
We aren't standing on OO land anymore - afloat on the monster mashup blogosphere
Greater Agility Required
Let the framework do the heavy lifting
Ruby on Rails vs Grails vs Cocoon
A developer writes 10 lines of working code a day
10 lines of Java doing something arcane to the business DOM
clientElement = ElementHelper.getElement( updatedRiskData.getRootElement(),
"//client" );
processDataElement.add( clientElement.detach() );
// clear modified flags
modifiedItems = processDataElement.selectNodes( "//*[@modified='true']" );
if ( ( modifiedItems != null ) && !modifiedItems.isEmpty() )
{
Iterator itemIter = modifiedItems.iterator();
while ( itemIter.hasNext() )
{
// remove attribute
( (Element) itemIter.next() ).addAttribute( "modified", null );
}
}
A 10 line pipeline that invokes EJB services, builds a view of the results and re-uses a presentation resource
<map:match pattern="logQuote"> <map:generate type="jx" src="newclientpolicy.xml"/> <map:transform type="ejb"> <map:parameter name="application" value="BarclaysHNW"/> </map:transform> <map:transform src="dayState.xsl"/> <map:transform type="xmldb"/> <map:call resource="dayViewRes"/> </map:match>
Mixing-up mental models
Uniformity of approach costs less in the long run