現在、Eclipse Modeling Framework を使用して XML スキーマを ECore に変換しようとしています。EMF は属性 ecore:reference を提供して、属性を EReference に変換する必要があることを示します。ただし、これは、属性のタイプが IDREF または anyURI の場合にのみ機能します。私の問題は、IDREF を介して参照される ID は、XML ドキュメント全体で一意でなければならないということです。ただし、私の XML には次の構造があります。
<A id="a1">
<B id="b1">
<ref idref="b2" />
</B>
<B id="b2">
<ref idref="b1" />
</B>
</A>
<A id="a2">
<B id="b1">
<ref idref="b2" />
</B>
<B id="b2">
<ref idref="b1" />
</B>
</A>
B 要素の ID は、周辺の A 要素内でのみ一意です。したがって、B 要素の ID をタイプ ID として宣言すると、パーサーはエラーをスローします。
idref が同じ A 要素に属する B 要素の属性 id への参照であることを EMF に伝えるにはどうすればよいですか?