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