Java プログラムの構造を格納するために使用される XML ファイルを作成したいと考えています。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 プログラムを解析し、タグの属性とコンテンツを取得しています。それで、それに対する他の回避策はありますか?