c++ - 使用 xsd cxx-tree 解析器的 XSD 到 C++ 类。从文件打开 xml 的方法。

标签 c++ xsd xerces local-files codesynthesis

我使用 xsd 3.3.0 编译器来将 xsd(xml 最好的 friend )文件解析为 C++ 类。 (见最后一个网页链接)

命令名称是

xsd cxx-tree (options) file.xsd

(+信息http://www.codesynthesis.com/projects/xsd/documentation/cxx/tree/guide/)

我看过 codesynthesis 提供的一些示例,它们在其中解析 hello.xsd 文档并非常轻松地创建 .hxx 和 .cxx 文件。 .hxx 有一种打开 xml 文档的方法,它创建一个对象,您可以在其中找到 xml 的不同部分,检查它等等...... .hxx 有这样的代码:

// Parse a URI or a local file.
//

::std::auto_ptr< ::hello_t >
hello (const ::std::string& uri,
       ::xml_schema::flags f = 0,
       const ::xml_schema::properties& p = ::xml_schema::properties ());

它接收一个带有文件名的字符串

string& uri = "hello.xsd"

并创建您在 main.cxx 中使用的对象。

因此,我正在尝试对我的 xsd 文件执行相同的操作。我使用 xsd cxx-tree 编译器,但它没有创建“解析 URI 或本地文件”的方法。然后我无法在我的主程序上从 xml 文件创建对象。

我使用 codesys 编译器文档 (http://www.codesynthesis.com/projects/xsd/documentation/xsd.xhtml) 中的不同选项解决了一些编译问题。关于你想编译什么,你想怎么做等等,有不同的选项......但我找不到任何选项来启用用于“解析 URI 或本地文件”的方法。

给出更多信息,xml-xsd文件是CBML协议(protocol)文件。

感谢您的帮助!

最佳答案

我自己找到了解决方案!

我使用了不同的编译选项。我使用了选项“--root-element library”,它导致方法“解析 URI 或本地文件”。未创建。

我删除了这个选项并添加了“--root-element-all”为所有主体对象创建解析方法!

现在我的程序可以运行了!谢谢!

关于c++ - 使用 xsd cxx-tree 解析器的 XSD 到 C++ 类。从文件打开 xml 的方法。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22039373/

相关文章:

c - 如何在 Unix 环境中使用 C 以编程方式从 XSD 创建 XML

java - 在 java 中将 XML 文档写入文件的最佳方法是什么?

java - MalformedURLException : no protocol with Xalan transformer

c++ - 如何将函数作为参数从 C 传递给 C++,然后返回给 C

xml - 如何使用工具检查xsd模式本身是否有效?

xsd - 如何在 XSD 模式中定义可变长度的字符串?

c++ - VS 2015 无法打开编译器生成的文件 : '' : Invalid argument

c++ - Code::阻止用其他语言编写代码

c++ - 如何在世界地图图像上突出显示特定国家/地区

c++ - 您能否(并且应该)消除使用 T 和 const 引用 T 的函数调用的歧义?