Duvida em tratamento de arquivo texto para formato XML

Gente, tenho um arquivo XML que foi gerado em uma ferramenta externa. Eu recebo este arquivo sem formatação, e gostaria de aplicar uma formatação nele. Existe uma forma de se fazer isto por código??? (Seria como usar o Ctrl+shift+F do Eclipse/WSAD…)

texto original:

<?xml version="1.0" encoding="UTF-8"?><system name="HELP" type="Standalone" version="3.5.2"><characteristic name="campo 01" version="1.0"><data_type>1</data_type><length>03</length></characteristic><characteristic name="campo 02" version="1.0"><data_type>1</data_type><length>16</length></characteristic></system>

texto ajustado:

<?xml version="1.0" encoding="UTF-8"?>
<system name="HELP" type="Standalone" version="3.5.2">
	<characteristic name="campo 01" version="1.0">
		<data_type>1</data_type>
		<length>03</length>
	</characteristic>
	<characteristic name="campo 02" version="1.0">
		<data_type>1</data_type>
		<length>16</length>
	</characteristic>
</system>

http://faq.javaranch.com/java/HowToPrettyPrintXmlWithJava

xmllint --format arquivo

programa | xmllint --format -

Valeu pessoal, é por aí mesmo