この状況に対応する特定の設計パターン (おそらく C++ を対象とする) があるかどうか疑問に思っていました。
次の形式のデータを含む XML ファイルがあります。
<STH_XML>
<tag1>
<tag2 id="myId1">
<tag3 name="type" value="myVal1"/>
<tag4 name="device" value="myVal2"/>
<tag5 name="instances" value="myVal3"/>
<tag6>
<tag7 id="myId2">
<specs name="type" value="myVal4"/>
<specs name="frequency" value="myVal5" unit="MHz"/>
</tag7>
</tag6>
</tag2>
</tag1>
残念ながら、この XML の XSD/DTD は頻繁に変更される可能性があります。
次のように、XSD/DTD を一連の C++ 構造体またはクラスに自動的に変換する必要があります。
struct tag7
{
std::string id;
std::string type;
std::string frequency;
}
struct tag6
{
std::set<tag7*> tag6s;
}
struct tag2
{
std::string id;
std::string type;
std::string device;
std::string instances;
tag6 elem6; // because I know there is only one from the XSD analysis
}
struct tag1
{
std::set<tag2> tag2s;
}
この機能を実現するのに最適な設計パターンは何ですか?