Closed. This question needs to be more focused。它当前不接受答案。
想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。
2年前关闭。
我想知道是否有针对这种情况的特定设计模式(可能针对C ++)。
我有一个XML文件,其中包含以下格式的数据:
不幸的是,此XML的XSD / DTD经常更改。
我需要自动将XSD / DTD转换为如下所示的一系列C ++结构或类:
哪种设计模式最适合实现此功能?
想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。
2年前关闭。
我想知道是否有针对这种情况的特定设计模式(可能针对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;
}
哪种设计模式最适合实现此功能?
最佳答案
不太确定这是您需要的设计模式。
我可以推荐一种编程范例:代码生成。
您可以在XSD / XDD中定义结构,并自动生成所需的C ++ struct
。
更进一步,您可以使用与语言无关的格式定义事物,然后从该语言生成XSD和C ++。然后,如果以后需要使用C#,则可以为此编写代码生成器。
最基本的是,代码生成器读取文件,对其进行解析,然后通过对所解析的数据的一堆打印语句来“生成”代码。
此过程可以作为构建的一部分作为构建的一部分。生成器处理XSD以吐出C ++,然后使用该C ++来构建项目的其余部分。
我认为您已经知道需要做什么,但是code generation
是它的用语。
关于c++ - XML类描述到C++类描述:一种设计模式? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16676092/
10-14 10:34