如何将CodeSynthesis-XSD包含到自己的应用程序中?

时间:2013-05-27 10:40:43

标签: c++ qt xsd xsd.exe codesynthesis

1.。)如何将CodeSynthesis-XSD代码生成包含到我的应用程序中,所以当我将应用程序(Visual Studio 10中的QT)提供给其他人时,他不需要安装Code-Synthesis?


2。)我如何指定.cpp.h文件的输出目录? xsd help没有列出这样的选项?我用树生成这样的东西:

>xsd cxx-tree "C:\scheme.xsd"

- >在执行xsd

之前通过“cd”(更改目录)解决

3。)我得到警告,我不知道如何解决:

warning F002: attribute 'value' is implicitly of anySimpleType
info: did you forget to specify 'type' attribute?
warning T004: generating parsing functions for 18 global elements
info: use --root-element-* options to specify document root(s)

是否有xsd help中列出的其他参数?

2 个答案:

答案 0 :(得分:2)

  1. 运行时库(libxsd)仅限标题,因此如果您以编译形式提供软件,则最终用户无需安装它。

  2. 使用--output-dir选项

  3.   
        erik@ubuntu:~$ xsdcxx help cxx-tree 2>&1 | grep -A1 output-dir
          --output-dir <dir>          Write generated files to <dir> instead of current
                                      directory.
    

    3。关于“警告T004”:

      
        erik@ubuntu:~$ xsdcxx help cxx-tree 2>&1 | grep -A1 root-element
          --root-element-first        Treat only the first global element as a document
                                      root.
          --root-element-last         Treat only the last global element as a document
                                      root.
          --root-element-all          Treat all global elements as document roots.
          --root-element-none         Don't treat any global elements as document roots.
          --root-element <element>    Treat only <element> as a document root. Repeat
                                      this option to specify more than one root element.
    

    如果您未指定任何这些选项,则隐含--root-element-all,但您会看到“警告T004”。   如果您想要--root-element-all,我建议添加该选项以使警告消失。

    关于“警告F002”:对不起,我不知道。

    注意:CodeSynthesis XSD将开始将帮助文本打印到stdout时,将来不再需要“2&gt;&amp; 1”。      http://codesynthesis.com/pipermail/xsd-users/2012-March/003577.html

答案 1 :(得分:1)

关于“警告F002”,得到了类似的问题,并发现在声明属性时没有指定具体类型就会引发它。