Я хочу создать файл XML, который будет использоваться для хранения структуры Java-программы. Я могу успешно анализировать программу Java и создавать теги по мере необходимости. Проблема возникает, когда я пытаюсь включить исходный код в свои теги, поскольку исходный код Java может использовать огромное количество ссылок на сущности и зарезервированных символов, таких как &
, <
, >
, &
. Я не могу создать действительный XML.
Мой XML должен выглядеть так:
<?xml version="1.0"?>
<prg name="prg_name">
<class name= "class_name>
<parent>parent class</parent>
<interface>Interface name</interface>
.
.
.
<method name= "method_name">
<statement>the ordinary java statement</statement>
<if condition="Conditional Expression">
<statement> true statements </statement>
</if>
<else>
<statement> false statements </statement>
</else>
<statement> usual control statements </statement>
.
.
.
</method>
</class>
.
.
.
</prg>
Подобно этому, но проблема в том, что условные выражения if
или другие операторы содержат много &
или других зарезервированных символов, что препятствует проверке XML. Поскольку все эти данные (исходный код) предоставлены пользователем, я почти не контролирую их. Спасение персонажей будет очень дорогостоящим с точки зрения времени.
Я могу использовать CDATA для экранирования текста элемента, но его нельзя использовать для значений атрибутов, содержащих условные выражения. Я использую Antlr грамматику Java для анализа программы Java и получения атрибутов и содержимого для тегов. Так есть ли другой обходной путь для этого?