Как включить CodeSynthesis-XSD в собственное приложение?

1.) Как я могу включить генерацию кода CodeSynthesis-XSD в свое приложение, чтобы, когда я передаю приложение (QT в Visual Studio 10) кому-то другому, ему не нужно устанавливать Code-Synthesis?


2.) И как я могу указать выходной каталог .cpp а также .h файлы? xsd help не перечисляет такую ​​опцию? я генерирую вот так с деревом:

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

-> решается с помощью «cd» (Change-Directory) перед выполнением xsd


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?

0

Решение

  1. Библиотека времени выполнения (libxsd) предназначена только для заголовков, поэтому конечному пользователю не нужно устанавливать ее, если вы предоставляете свое программное обеспечение в скомпилированном виде.

  2. Использовать --output-dir вариант

    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»: Извините, я не знаю.

Примечание: «2>&1 «не понадобится в будущем, когда CodeSynthesis XSD начнет печатать текст справки на стандартный вывод.
http://codesynthesis.com/pipermail/xsd-users/2012-March/003577.html

2

Другие решения

Что касается «предупреждения F002», то получил аналогичную проблему и выяснил, что она возникает при объявлении атрибутов без указания конкретного типа.

1