С учетом XML-документа, подобного этому:
<!DOCTYPE doc SYSTEM 'http://www.blabla.com/mydoc.dtd'>
<author>john</author>
<doc>
<title>&title;</title>
</doc>
Я хотел проанализировать приведенный выше XML-документ и сгенерировать его копию со всеми уже разрешенными объектами. Таким образом, учитывая приведенный выше документ XMl, парсер должен вывести:
<!DOCTYPE doc SYSTEM 'http://www.blabla.com/mydoc.dtd'>
<author>john</author>
<doc>
<title>Stack Overflow Madness</title>
</doc>
Я знаю, что вы могли бы реализовать org.xml.sax.EntityResolver для разрешения сущностей, но я не знаю, как правильно сгенерировать копию XML-документа с все все еще не повреждено (кроме его сущностей). Под все я имею в виду пробелы, dtd в верхней части документа, комментарии и любые другие вещи, кроме сущностей, которые должны были быть разрешены ранее. Если это невозможно, пожалуйста, предложите способ, который по крайней мере может сохранить большинство вещей (например, все, но без комментариев).
Также обратите внимание, что я ограничен чистым Java API, предоставляемым Sun, поэтому здесь нельзя использовать сторонние библиотеки.
Большое спасибо!
РЕДАКТИРОВАТЬ: Приведенный выше XML-документ является значительно упрощенной версией исходного документа. Оригинальный включает в себя очень сложное разрешение сущностей с использованием EntityResolver, значение которого я значительно уменьшил в этом вопросе. Что меня действительно интересует, так это как получить точную копию документа XML с помощью синтаксического анализатора XML, который использует EntityResolver для разрешения сущностей.