EMFモデルのインスタンスをコメント付きで直列化する

XMLスキーマから生成したEMFモデルについては、そのインスタンスを直列化する際に、DocumentRootの直下のみであればFeatureMapUtil.addComment()を使ってコメントを付けることができます。以下、サンプルコードです。

Resource resource = resourceSet.createResource(URI.createURI("http:///My.mindmap"));
DocumentRoot documentRoot = MindmapFactory.eINSTANCE.createDocumentRoot();
Map root = MindmapFactory.eINSTANCE.createMap();
documentRoot.setMap(root);
FeatureMapUtil.addComment(documentRoot.getMixed(), "Hello, EMF!");
resource.getContents().add(documentRoot);
resource.save(System.out, null);

このコードを何らかの形で実行する(.genmodelからテストコードを生成させると、main()内で簡単に実行できます)と、以下のような標準出力を得ます。

<?xml version="1.0" encoding="ASCII"?>
<mindmap:map xmlns:mindmap="http://www.example.org/mindmap"/>
<!--Hello, EMF!-->

EMFモデル内にコメントに対応する属性を設ける以外に、EMF上で任意の場所にコメントを付けるのは、現状は難しいかもしれません