Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/144.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 用于构建xml的基于xsd的代码生成器?_C++_Xml_Xsd - Fatal编程技术网

C++ 用于构建xml的基于xsd的代码生成器?

C++ 用于构建xml的基于xsd的代码生成器?,c++,xml,xsd,C++,Xml,Xsd,我有一个模式(xsd),我想创建符合它的xml文件 我发现代码生成器可以生成可以从xml文件加载的类(CodeSynthesis)。但我想换个方向 我想生成代码,使我能够构建一个对象,该对象可以轻松地写成xml文件。在C++中。我也许可以用java来实现这个,但是C++更可取。我在solaris上,所以VisualStudio插件对我没有帮助(比如xsd2code) 有没有一个代码生成器可以让我这样做?结束这个问题:我确实使用了代码合成。它工作得非常好,只要我使用一个xsd作为它的源代码。因为我

我有一个模式(xsd),我想创建符合它的xml文件

我发现代码生成器可以生成可以从xml文件加载的类(CodeSynthesis)。但我想换个方向

我想生成代码,使我能够构建一个对象,该对象可以轻松地写成xml文件。在C++中。我也许可以用java来实现这个,但是C++更可取。我在solaris上,所以VisualStudio插件对我没有帮助(比如xsd2code)


有没有一个代码生成器可以让我这样做?

结束这个问题:我确实使用了代码合成。它工作得非常好,只要我使用一个xsd作为它的源代码。因为我实际上有两个XSD(一个导入另一个),所以我必须手动合并它们(它们执行了一些奇怪的继承,需要手动调整)


但是,是的,代码合成是一种方法。

CodeSynthesis生成可以生成xml输出的代码。什么是你不能用它做的?你是对的stefaanv。关于代码合成,我被误传了。在使用它一段时间后,它几乎满足了我的需求。现在的问题是它没有使用虚拟方法,所以派生类型不能正常工作。您能提供一些示例代码吗?我还希望使用代码合成来创建基于模式的xml,但我很难找到从…@tpm1510工作的示例,我很想帮你,但我现在有一份新工作,所以我无法访问我使用的代码。IIRC,我非常仔细地学习了这些例子。最困难的部分是调整xsd(它做了一些奇怪的事情,实际上可能是非标准的)/usr/bin/xsdcxx(命令的Ubuntu名称)需要为每个XSD文件运行一次。然而,在我的特殊情况下,一个XSD声明了一个元素X,该元素继承自另一个XSD的元素X,但为派生元素保留了相同的名称。我不相信这是有效的XSD语法,但这正是我一直坚持的。由于代码冲突——代码< >类X:公共x不是有效的C++,代码编译生成的代码无法编译。不过,我可能记错了一些细节;这是几年前的一份工作。