DatatypeFactory.newInstance is a costly call, and shows up pretty high in the profiler when performing many quick SOAP requests. I've arranged for the factory to be reused accross multiple calls.

According to the doc it's not guaranteed to be thread safe (although the implementation I'm using certainly is), so I used a ThreadLocal to get one instance per thread.
Merge pull request #243 from malaporte/Shared-DataTypeFactory

Reuse instances of DataTypeFactory