Why?!? basically Java spoils u for the amount of Open Sourced libraries/programs that help you in your coding.

I can't imagine coding with out anything from Apache (commons, axis2,tomcat), or database without hibernate (ok .NET has their own version), light weight db for testing (HSQLDB), Spring (Dependency Injection, Hibernate Transaction management), XML Mapping (Castor) and so on ..

In my current project, we are doing the project with the server end being implemented in Java and we require interoperability with .Net and Java clients. The approach we have taken is to use a XML to represent the POJO or PONO that is used as a base entity object to set attributes and also for hibernate to persist into the database, so we looked around for some library or solution that will allow us to do so.

Looking around the internet found a article that used XSD to convert from a .NET to XML and to JAVA solution. It uses .Net XmlSerializer that can use a XSD to save .Net objects to XML and Java has Castor that could read from a XML and the XSD .

But i find the solution not very elegant as u need to use XSD, which i find a pain to read (haha i am no XSD expert), and i quite like Castor's XML mapping format. So in the end for .Net we do manual parsing using XmlReader to convert from the XML to .Net objects.

Then i began to think what if my java stuff needs to talk to a php, python or any other language that does classes using XML? would it be good to have a coverter for all these languges and also a code generator to generate the require entity or plain objects from the XML mapping defination? That's why i started a project to write a simple Marshaller and Unmarshaller (in Castor's terms) to perform the same thing for .Net (Since i am using .Net and Java) and probably think about how to make the mapping suitable for other languages that need to transfer simple objects for data representation and storage.