{
if( dest != null ) {
final Properties outputProperties = new Properties();
outputProperties.setProperty( OutputKeys.INDENT, "yes" );
final SAXSerializer serializer = (SAXSerializer)SerializerPool.getInstance().borrowObject( SAXSerializer.class );
Writer writer = null;
if( dest.isDirectory() ) {
if( !dest.exists() ) {
dest.mkdirs();
}
String fname = resource.getId();
if( !fname.endsWith( ".xml" ) ) {
fname += ".xml";
}
final File file = new File( dest, fname );
writer = new OutputStreamWriter( new FileOutputStream( file ), encoding );
} else {
writer = new OutputStreamWriter( new FileOutputStream( dest ), encoding );
}
serializer.setOutput( writer, outputProperties );
resource.getContentAsSAX( serializer );
writer.close();
SerializerPool.getInstance().returnObject( serializer );