我正在使用 xsd 3.3.0 编译器,以便将 xsd(xml 最好的朋友)文件解析为 C++ 类。(见最后一个网络链接)
命令名称是
xsd cxx-tree(选项)file.xsd
(+ 信息http://www.codesynthesis.com/projects/xsd/documentation/cxx/tree/guide/)
我看过代码合成提供的一些示例,它们解析 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 ());
它接收一个带有文件名的字符串
字符串& 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 协议文档。
谢谢您的帮助!