この XML があるとします。
<doc:document>
<objects>
<circle radius="10" doc:colour="red" />
<circle radius="20" doc:colour="blue" />
</objects>
</doc:document>
そして、これが解析される方法です(疑似コード):
// class DocumentParser
public Document parse(Element edoc) {
doc = new Document();
doc.objects = ObjectsParser.parse(edoc.getChild("objects"));
for ( ...?... ) {
doc.objectColours.put(object, colour);
}
return doc;
}
ObjectsParser
オブジェクトビットの解析を担当しますが、ドキュメントの存在を認識していませんし、認識すべきではありません。ただし、Document
色は を使用してオブジェクトに関連付けられますMap
。
DocumentParser.parse
色設定を元に戻して、ObjectsParser.parse
マップ内のオブジェクトに関連付けることができるようにするには、どのようなパターンをお勧めしますか?
代替案は次のようになります。
<doc:document>
<objects>
<circle id="1938" radius="10" />
<circle id="6398" radius="20" />
</objects>
<doc:objectViewSettings>
<doc:objectViewSetting object="1938" colour="red" />
<doc:objectViewSetting object="6398" colour="blue" />
</doc:objectViewSettings>
</doc:document>
醜い!