0
我想知道這種情況是否有任何特定的設計模式(可能針對C++)。描述C++類的XML類描述:設計模式?
我有這種格式包含數據的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;
}
什麼設計模式最適合於實現這個功能呢?
非常感謝您分享您的見解。在這種情況下,您是否知道使用XML/XSD時可以使用的特定工具? – ripkars
我上次用這種方法做的一個是Perl腳本,叫做Jeeves。它讓我可以從頭開始指定輸出結果。這是迄今爲止我做到的唯一途徑。但是有很多XML解析器可以用來解析你的XSD。從那裏,你知道你想要生成的C++,然後只需遍歷XSD和cout就可以了。我認爲,你可能會想要比想要開箱即可定製一個巨大的圖書館更快。 – John