АнглийскийФранцузскийИспанский

Ad


Значок OnWorks

xsdcxx - Интернет в облаке

Запустите xsdcxx в бесплатном хостинг-провайдере OnWorks через Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS

Это команда xsdcxx, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.

ПРОГРАММА:

ИМЯ


xsdcxx - XML-схема W3C для компилятора C ++

СИНТАКСИС


хсдкхх команду [ кредита ] файл [ файл ...]
хсдкхх помощь [ команду ]
хсдкхх версия

ОПИСАНИЕ


хсдкхх генерирует статически типизированное отображение C ++ для конкретного словаря из XML-схемы W3C
определения. Конкретное отображение для создания выбирается команду. Каждое отображение имеет
количество картографических кредита который должен появиться, если таковой имеется, после команду, вход
файлы должны быть определениями схемы W3C XML. Точный набор сгенерированных файлов зависит от
на выбранном отображении и опциях.

КОМАНДЫ


cxx-дерево
Создайте отображение C ++ / Tree. Для каждого входного файла в форме имя.xsd домен
генерируются следующие файлы C ++: имя.hxx (заголовочный файл), имя.ixx (встроенный файл,
генерируется, только если --генерировать встроенный опция указана), имя.cxx (Источник
файл), и имя-fwd.hxx (файл форвардной декларации, создается, только если
--генерировать-вперед опция указана).

cxx-парсер
Создайте отображение C ++ / Parser. Для каждого входного файла в форме имя.xsd домен
генерируются следующие файлы C ++: имя-pskel.hxx (файл заголовка скелета парсера),
имя-pskel.ixx (встроенный файл скелета парсера, сгенерированный, только если --генерировать-
встроенный опция указана), и имя-pskel.cxx (исходный файл скелета парсера). Если
домен --generate-noop-импл or --generate-print-impl опция указана,
генерируются следующие дополнительные файлы примеров реализации: имя-pimpl.hxx
(файл заголовка реализации парсера) и имя-pimpl.cxx (реализация парсера
исходный файл). Если --генерировать-тест-драйвер опция указана, дополнительная
имя-driver.cxx создается тестовый файл драйвера.

помощь Распечатайте информацию об использовании и выйдите. Использовать

хсдкхх помощь команду

для справки по командам.

версия
Версия для печати и выход.

ДОПОЛНИТЕЛЬНЫЕ УСЛУГИ, НЕ ВКЛЮЧЕННЫЕ В ПАКЕТ


Зависит от команды кредита, если есть, должен появиться после соответствующего команду.

общий кредита
--стд версия
Укажите стандарт C ++, которому должен соответствовать сгенерированный код. Допустимые значения
Он c ++ 98 (по умолчанию) и c ++ 11.

Стандарт C ++ влияет на различные аспекты сгенерированного кода, которые обсуждаются.
более подробно в различной документации по картам. В целом, когда C ++ 11
selected, сгенерированный код полагается на семантику перемещения и использует std :: unique_ptr
вместо устаревшего std :: auto_ptr.

Когда выбран режим C ++ 11, вам обычно не нужно выполнять никаких дополнительных действий.
кроме включения C ++ 11 в вашем компиляторе C ++, если это необходимо. Компилятор XSDCXX будет
автоматически добавлять необходимые макроопределения в сгенерированные файлы заголовков, которые
переключит библиотеку времени выполнения XSDCXX только для заголовков (libxsd) в режим C ++ 11.
Однако, если вы включите какой-либо из заголовков среды выполнения XSDCXX непосредственно в свой
приложение (обычно вы просто включаете сгенерированные заголовки), тогда вам понадобится
определить XSD_CXX11 макрос для всего вашего проекта.

- тип диаграммы напишите
Сгенерируйте код, используя предоставленный символ напишите вместо по умолчанию колесница, действительный
значения колесница и wchar_t.

--char-кодирование ENC
Укажите кодировку символов, которая должна использоваться в сгенерированном коде. Действительный
значения для колесница тип персонажа utf8 (По умолчанию), исо8859-1, LCP (Xerces-C ++
местная кодовая страница), и изготовленный на заказ. Если вы пройдете изготовленный на заказ в качестве значения вам понадобится
включить заголовок реализации транскодера для вашей кодировки в начало
сгенерированных файлов заголовков (см. --hxx-пролог опция).

Для того, чтобы получить wchar_t тип символа единственное допустимое значение автоматический и кодировка
автоматически выбирается между UTF-16 и UTF-32 / UCS-4, в зависимости от wchar_t
размер шрифта.

--output-дир директория
Записать сгенерированные файлы в директория вместо текущего каталога.

--генерировать встроенный
Создавайте простые встроенные функции. Эта опция запускает создание встроенного файла.

--генерировать-xml-схема
Создайте файл заголовка C ++, как если бы компилируемая схема определяет схему XML.
пространство имен. Для сопоставления C ++ / Tree результирующий файл будет содержать определения
для всех встроенных типов XML-схемы. Для сопоставления C ++ / Parser результирующий файл
будет содержать определения для всех скелетов и реализаций парсера
соответствующие встроенным типам XML-схемы.

Файл схемы, предоставленный компилятору, не обязательно должен существовать и используется только для получения
имя результирующего файла заголовка. Использовать --extern-xml-схема вариант
включить этот файл в сгенерированные файлы для других схем.

--extern-xml-схема файл
Включите файл заголовка, полученный из файл вместо создания схемы XML
встроенное отображение пространства имен. Предоставленный файл не обязательно должен существовать и используется только для
получить имя включенного файла заголовка. Использовать --генерировать-xml-схема вариант
для создания этого файла заголовка.

--namespace-карта хнс=центральная нервная система
Сопоставить пространство имен схемы XML хнс в пространство имен C ++ центральная нервная система. Повторите этот параметр, чтобы указать
отображение для более чем одного пространства имен схемы XML. Например, такой вариант:

--namespace-карта http://example.com/foo/bar= foo :: bar

Нанесет на карту http://example.com/foo/bar Пространство имен XML-схемы для foo :: bar C + +
пространство имен.

--namespace-regex регулярное выражение
Добавить регулярное выражение в список регулярных выражений, используемых для преобразования пространства имен XML-схемы
имена в имена пространств имен C ++. регулярное выражение является регулярным выражением типа Perl в форме
/описания/замена/. В качестве разделителя можно использовать любой символ вместо /.
Экранирование символа-разделителя в описания or замена не поддерживается.

Все регулярные выражения помещаются в стек с последним указанным
выражение считается первым. Используется первое успешное совпадение. Обычный
выражения применяются к строке в форме

имя файла Пространство имен

Например, если у вас есть файл привет.xsd с пространством имен http://example.com/hello и
ты бежишь XSD в этом файле, то рассматриваемая строка будет:

привет.xsd. http://example.com/hello

Для встроенного пространства имен XML-схемы строка имеет следующий вид:

XMLSchema.xsd http://www.w3.org/2001/XMLSchema

Следующие три шага выполняются для каждого регулярного выражения до совпадения
находится:

1. Выражение применяется, и если результат пуст, следующим выражением будет
считается.

2. Все / заменены на ::.

3. Проверяется, что результат является допустимым именем области действия C ++ (например, foo :: bar). Если это
тест завершается успешно, результат используется как имя пространства имен C ++.

В качестве примера следующее выражение отображает пространства имен схемы XML в форме
http://example.com/foo/bar в пространства имен C ++ в форме foo :: bar:

%. * http://example.com/(. +)% $ 1%

См. Также раздел REGEX AND SHELL QUOTING ниже.

--namespace-regex-trace
Отслеживайте процесс применения регулярных выражений, указанных с помощью --пространство имен-
регулярное выражение вариант. Используйте эту опцию, чтобы узнать, почему ваши регулярные выражения не работают
что вы от них ожидали.

--зарезервированное-имя n[=r]
Добавить имя n в список имен, которые не должны использоваться в качестве идентификаторов. Название
может сопровождаться = и заменяющее имя r что следует использовать
вместо. Все ключевые слова C ++ уже есть в этом списке.

--include-с-скобками
Используйте угловые скобки (<>) вместо кавычек ("") в созданных #включают директивы.

--include-префикс префикс
Добавить префикс к сгенерированному #включают директивные пути.

Например, если у вас есть следующий элемент импорта в вашей схеме

<импорт namespace = "..." schemaLocation = "base.xsd" />

и скомпилировал этот фрагмент с --include-префикс схемы /, то включить
директива в сгенерированном коде будет:

#включают "схемы / base.hxx"

--include-regex регулярное выражение
Добавить регулярное выражение в список регулярных выражений, используемых для преобразования #включают Директивы
пути. регулярное выражение является регулярным выражением типа Perl в форме /описания/замена/.
В качестве разделителя можно использовать любой символ вместо /. Выход из разделителя
символ в описания or замена не поддерживается.

Все регулярные выражения помещаются в стек с последним указанным
выражение считается первым. Используется первое успешное совпадение.

В качестве примера следующее выражение преобразует пути в форму
схемы / foo / bar к путям в форме сгенерировано / foo / bar:

% schemas /(.+)% created / $ 1%

См. Также раздел REGEX AND SHELL QUOTING ниже.

--include-regex-trace
Отслеживайте процесс применения регулярных выражений, указанных с помощью --включают-
регулярное выражение вариант. Используйте эту опцию, чтобы узнать, почему ваши регулярные выражения не работают
что вы от них ожидали.

- префикс-охранник префикс
Добавить префикс к сгенерированным защитным ограждениям включения заголовка. Префикс преобразуется в верхний
регистр и символы, недопустимые в имени макроса препроцессора, заменяются на
подчеркивания. Если этот параметр не указан, то часть входных данных, относящаяся к каталогу
файл схемы используется как префикс.

--hxx-суффикс суффикс
Используйте предоставленные суффикс вместо по умолчанию .ххх построить имя
заголовочный файл. Обратите внимание, что этот суффикс также используется для создания имен файлов заголовков.
соответствующие включенным / импортированным схемам.

--ixx-суффикс суффикс
Используйте предоставленные суффикс вместо по умолчанию .ixx построить имя
встроенный файл.

--cxx-суффикс суффикс
Используйте предоставленные суффикс вместо по умолчанию .cxx построить имя
исходный файл.

--fwd-суффикс суффикс
Используйте предоставленные суффикс вместо по умолчанию -fwd.hxx построить имя
файл форвардной декларации.

--hxx-регулярное выражение регулярное выражение
Используйте предоставленное выражение для создания имени файла заголовка. регулярное выражение - это
Perl-подобное регулярное выражение в форме /описания/замена/. Обратите внимание, что это
выражение также используется для создания имен файлов заголовков, соответствующих
включены / импортированы схемы. См. Также раздел REGEX AND SHELL QUOTING ниже.

--ixx-регулярное выражение регулярное выражение
Используйте предоставленное выражение для создания имени встроенного файла. регулярное выражение - это
Perl-подобное регулярное выражение в форме /описания/замена/. Также REGEX
И ЦИТАТЫ ОБОЛОЧКИ ниже.

--cxx-регулярное выражение регулярное выражение
Используйте предоставленное выражение для создания имени исходного файла. регулярное выражение - это
Perl-подобное регулярное выражение в форме /описания/замена/. Также REGEX
И ЦИТАТЫ ОБОЛОЧКИ ниже.

--fwd-regex регулярное выражение
Используйте предоставленное выражение для создания имени файла форвардного объявления.
регулярное выражение является регулярным выражением типа Perl в форме /описания/замена/. См. также
раздел «РЕЖИМ И ОБОЛОЧКА» ниже.

--hxx-пролог текст
Вставить текст в начале файла заголовка.

--ixx-пролог текст
Вставить текст в начале встроенного файла.

--cxx-пролог текст
Вставить текст в начале исходного файла.

--fwd-пролог текст
Вставить текст в начале файла форвардной декларации.

- пролог текст
Вставить текст в начале каждого сгенерированного файла, для которого нет файла -
конкретный пролог.

--hxx-эпилог текст
Вставить текст в конце файла заголовка.

--ixx-эпилог текст
Вставить текст в конце встроенного файла.

--cxx-эпилог текст
Вставить текст в конце исходного файла.

--fwd-эпилог текст
Вставить текст в конце файла форвардной декларации.

--эпилог текст
Вставить текст в конце каждого сгенерированного файла, для которого нет файла, специфичного для файла
эпилог.

--hxx-пролог-файл файл
Вставьте содержимое файл в начале файла заголовка.

--ixx-пролог-файл файл
Вставьте содержимое файл в начале встроенного файла.

--cxx-пролог-файл файл
Вставьте содержимое файл в начале исходного файла.

--fwd-пролог-файл файл
Вставьте содержимое файл в начале файла форвардной декларации.

--prologue-файл файл
Вставьте содержимое файл в начале каждого сгенерированного файла, для которого
нет файла пролога для конкретного файла.

--hxx-файл-эпилог файл
Вставьте содержимое файл в конце файла заголовка.

--ixx-файл-эпилог файл
Вставьте содержимое файл в конце встроенного файла.

--cxx-файл-эпилог файл
Вставьте содержимое файл в конце исходного файла.

--fwd-файл-эпилог файл
Вставьте содержимое файл в конце файла форвардной декларации.

--epilogue-файл файл
Вставьте содержимое файл в конце каждого сгенерированного файла, для которого есть
нет файла эпилога для конкретного файла.

--export-символ символ
Вставить символ в местах, где операторы управления экспортом / импортом DLL
(__declspec (dllexport / dllimport)) необходимы.

--export-xml-схема
Типы экспорта / импорта в пространстве имен схемы XML с использованием предоставленного символа экспорта
с --export-символ вариант. XSD_NO_EXPORT макрос можно использовать, чтобы опустить это
код во время компиляции C ++, что может быть полезно, если вы хотите использовать тот же
сгенерированный код на нескольких платформах.

--экспорт-карты
Экспорт карт поддержки полиморфизма из Win32 DLL, в которую этот сгенерированный код
размещен. Это необходимо, когда ваша иерархия типов разделена на несколько DLL.
поскольку в противном случае каждая DLL будет иметь свой собственный набор карт. В этой ситуации
сгенерированный код для DLL, который содержит базовые типы и / или группу подстановок
головы должны быть скомпилированы с этой опцией, а сгенерированный код для всех остальных DLL
должен быть скомпилирован с --импорт-карты. Эта опция действительна только вместе с
- генерировать-полиморфный, XSD_NO_EXPORT макрос можно использовать, чтобы опустить этот код
во время компиляции C ++, что может быть полезно, если вы хотите использовать тот же
сгенерированный код на нескольких платформах.

--импорт-карты
Поддержка импорта полиморфизма сопоставляется с Win32 DLL или исполняемым файлом, в который это
сгенерированный код связан. Увидеть --экспорт-карты дополнительную информацию в документации по опциям.
Эта опция действительна только вместе с - генерировать-полиморфный, XSD_NO_EXPORT
можно использовать макрос, чтобы опустить этот код во время компиляции C ++, что может быть полезно, если
вы хотите использовать один и тот же сгенерированный код на нескольких платформах.

--генерировать-деп
Порождать сделать информация о зависимости. Эта опция запускает создание .d
файл, содержащий зависимости сгенерированных файлов от основного файла схемы как
а также все файлы схемы, которые он включает / импортирует, транзитивно. Этот
файл зависимостей обычно включается в основной Makefile для реализации
автоматическое отслеживание зависимостей.

Также обратите внимание, что автоматическая генерация зависимостей не поддерживается в файловой системе.
тип режим (- файл по типу). В этом случае производятся все сгенерированные файлы.
с одним вызовом компилятора и зависят от всех схем. В результате это
проще установить такую ​​зависимость вручную, возможно, с помощью
- список-файлов * настройки.

--генерировать-деп-только
Порождать сделать Только информация о зависимости.

--деп-фальшивый
Создание фальшивых целей для включенных / импортированных файлов схемы, в результате чего каждый из них будет зависеть
ни на чем. Такие фиктивные правила обходятся сделать ошибки, вызванные удалением
схемы, не обновляя также файл зависимостей для соответствия.

--dep-цель цель
Измените цель правила зависимости. По умолчанию он содержит все сгенерированные
Файлы C ++, а также сам файл зависимостей без каких-либо префиксов каталогов. Если
вам требуется несколько целей, тогда вы можете указать их как одну пробел
разделенный аргумент, или вы можете повторить эту опцию несколько раз.

--dep-суффикс суффикс
Используйте предоставленные суффикс вместо по умолчанию .d построить имя
файл зависимостей.

--dep-регулярное выражение регулярное выражение
Используйте предоставленное выражение для создания имени файла зависимости. регулярное выражение is
регулярное выражение, подобное Perl, в форме /описания/замена/, См. Также
Раздел REGEX И ЦИТАТЫ ОБОЛОЧКИ ниже.

--disable-предупреждение предупреждать
Отключить предупреждение о печати с идентификатором предупреждать. Если Найти указывается для идентификатора предупреждения, тогда
все предупреждения отключены.

--options-файл файл
Прочтите дополнительные параметры из файл. Каждый вариант должен отображаться в отдельной строке.
необязательно, за которым следует пробел и значение параметра. Пустые строки и начало строк
# игнорируются. Значения параметров можно заключать в двойные (") или одиночный (')
кавычки, чтобы сохранить начальные и конечные пробелы, а также указать пустые
ценности. Если само значение содержит конечные или ведущие кавычки, заключите его в
лишняя пара кавычек, например '"Икс"'. Не ведущие и не замыкающие котировки
интерпретируется как часть стоимости опциона.

Семантика предоставления параметров в файле эквивалентна предоставлению того же
набор параметров в том же порядке в командной строке в точке, где
--options-файл указана опция, за исключением того, что экранирование оболочки и цитирование
не требуется. Вы можете повторить эту опцию, чтобы указать более одного файла опций.

--show-sloc
Показать количество сгенерированных физических строк исходного кода (SLOC).

--sloc-лимит Num
Убедитесь, что количество сгенерированных физических строк исходного кода (SLOC) не соответствует
превышать Num.

--проприетарная лицензия
Укажите, что сгенерированный код находится под патентованной лицензией вместо
GPL.

--пользовательские литералы файл
Загрузить настраиваемую строку XML в литеральные сопоставления C ++ из файл. Этот механизм может быть
полезно, если вы используете настраиваемую кодировку символов и некоторые строки в вашем
схемы, например имена элементов / атрибутов или значения перечисления, не содержат
Символы ASCII. В этом случае вам нужно будет предоставить настраиваемое сопоставление с C ++.
литералы для таких строк. Формат этого файла указан в заказ
литералы.xsd Файл схемы XML, который можно найти в каталоге документации.

--preserve-анонимный
Сохраняйте анонимные типы. По умолчанию анонимные типы автоматически именуются с
имена, производные от включающих элементов / атрибутов. Поскольку сопоставления реализованы
этим компилятором требуется, чтобы все типы были названы, эта опция полезна только в том случае, если вы
хотите убедиться, что в ваших схемах нет анонимных типов.

--show-анонимный
Показать элементы и атрибуты анонимного типа. Эта опция только делает
смысл вместе с --preserve-анонимный опцию.

--анонимное регулярное выражение регулярное выражение
Добавить регулярное выражение в список регулярных выражений, используемых для получения имен для анонимных
типы из включающих атрибутов / элементов. регулярное выражение Perl-подобный регулярный
выражение в форме /описания/замена/. В качестве
разделитель вместо /. Экранирование символа-разделителя в описания or
замена не поддерживается.

Все регулярные выражения помещаются в стек с последним указанным
выражение считается первым. Используется первое успешное совпадение. Обычный
выражения применяются к строке в форме

имя файла Пространство имен XPath

Например:

привет.xsd http://example.com/hello элемент

привет.xsd http://example.com/hello тип / элемент

В качестве примера в следующем выражении все производные имена начинаются с
заглавные буквы. Это может быть полезно, когда ваше соглашение об именах требует типа
имена должны начинаться с заглавных букв:

%. * .* (. + /) * (. +)% \ u $ 2%

См. Также раздел REGEX AND SHELL QUOTING ниже.

--анонимное регулярное выражение-трассировка
Отслеживайте процесс применения регулярных выражений, указанных с помощью --анонимный-
регулярное выражение вариант. Используйте эту опцию, чтобы узнать, почему ваши регулярные выражения не работают
что вы от них ожидали.

--карта местности ol=nl
Сопоставьте исходное расположение схемы ol который указан в схеме XML, включает или
импортировать элементы в новое место схемы nl. Повторите эту опцию, чтобы сопоставить более одного
расположение схемы. Например, следующий параметр отображает
http://example.com/foo.xsd URL-адрес foo.xsd локальный файл.

--карта местности http://example.com/foo.xsd= foo.xsd

--location-regex регулярное выражение
Добавить регулярное выражение в список регулярных выражений, используемых для сопоставления местоположений схемы, которые
указанные в схеме XML включают или импортируют элементы. регулярное выражение похож на Perl
регулярное выражение в форме /описания/замена/. В качестве
разделитель вместо /. Экранирование символа-разделителя в описания or
замена не поддерживается. Все регулярные выражения помещаются в стек
последнее указанное выражение считается первым. Первый удачный матч
используется.

Например, следующее выражение отображает расположение URL-адресов в форме
http://example.com/foo/bar.xsd в локальные файлы в форме бар.xsd:

% http: //.+ / (. +)% $ 1%

См. Также раздел REGEX AND SHELL QUOTING ниже.

--location-regex-trace
Отслеживайте процесс применения регулярных выражений, указанных с помощью --место расположения-
регулярное выражение вариант. Используйте эту опцию, чтобы узнать, почему ваши регулярные выражения не работают
что вы от них ожидали.

- файл по типу
Создайте отдельный набор файлов C ++ для каждого типа, определенного в схеме XML. Примечание
что в этом режиме вам нужно только скомпилировать корневую схему (ы), и код будет
генерируется для всех включенных и импортированных схем. Этот режим компиляции в первую очередь
полезно, когда некоторые из ваших схем не могут быть скомпилированы отдельно или имеют циклический
зависимости, которые включают наследование типов. Другие параметры, относящиеся к этому режиму
составляют: --type-file-regex, --schema-file-regex, --fat-тип-файлкачества --список-файлов.

--type-file-regex регулярное выражение
Добавить регулярное выражение в список регулярных выражений, используемых для перевода имен типов в файл
имена, когда - файл по типу опция указана. регулярное выражение Perl-подобный регулярный
выражение в форме /описания/замена/. В качестве
разделитель вместо /. Экранирование символа-разделителя в описания or
замена не поддерживается. Все регулярные выражения помещаются в стек
последнее указанное выражение считается первым. Первый удачный матч
используется. Регулярные выражения применяются к строке в форме

Пространство имен имя типа

Например, следующее выражение отображает тип Foo что определено в
http://example.com/bar пространство имен для имени файла Бар-фу:

%http://example.com/(. +) (. +)% $ 1-2%

См. Также раздел REGEX AND SHELL QUOTING ниже.

--тип-файл-регулярное выражение-трассировка
Отслеживайте процесс применения регулярных выражений, указанных с помощью --тип-файл-
регулярное выражение вариант. Используйте эту опцию, чтобы узнать, почему ваши регулярные выражения не работают
что вы от них ожидали.

--schema-file-regex регулярное выражение
Добавить регулярное выражение в список регулярных выражений, используемых для перевода имен файлов схемы
когда окно - файл по типу опция указана. регулярное выражение Perl-подобный регулярный
выражение в форме /описания/замена/. В качестве
разделитель вместо /. Экранирование символа-разделителя в описания or
замена не поддерживается. Все регулярные выражения помещаются в стек
последнее указанное выражение считается первым. Первый удачный матч
используется. Регулярные выражения применяются к абсолютному пути файловой системы
файл схемы и результат, включая часть каталога, если таковая имеется, используется для получения
домен #включают пути к директивам, а также пути к сгенерированным файлам C ++. Этот вариант,
вместе с --type-file-regex в первую очередь полезны для размещения сгенерированных файлов в
подкаталоги или для разрешения конфликтов имен файлов.

Например, следующее выражение сопоставляет файлы схемы в foo / 1.0.0 /
подкаталог к ​​файлам в foo / подкаталог. В результате #включают
директивные пути для таких схем будут в foo / schema.hxx форма и
сгенерированные файлы C ++ будут помещены в foo / подкаталог:

%. * / foo / 1.0.0 /(.+)% foo / $ 1%

См. Также раздел REGEX AND SHELL QUOTING ниже.

--schema-file-regex-trace
Отслеживайте процесс применения регулярных выражений, указанных с помощью --схема-файл-
регулярное выражение вариант. Используйте эту опцию, чтобы узнать, почему ваши регулярные выражения не работают
что вы от них ожидали.

--fat-тип-файл
Генерировать код, соответствующий глобальным элементам, в файлы типов вместо схемы
файлы, когда --type-file-regex опция указана. Этот вариант в первую очередь
полезно при попытке минимизировать количество объектного кода, связанного с
исполняемый файл путем упаковки скомпилированного сгенерированного кода в статическую (архивную) библиотеку.

--список-файлов файл
Напишите список сгенерированных файлов C ++ в файл. Эта опция в первую очередь полезна в
режим компиляции файлов по типам (- файл по типу) для создания списка сгенерированных C ++
файлы, например, как фрагмент make-файла.

- список-файлов-пролог текст
Вставить текст в начале списка файлов. Для удобства все вхождения
домен \n последовательность символов в текст заменяются новыми строками. Эта опция может для
Например, может использоваться для присвоения сгенерированного списка файлов переменной makefile.

- список-файлов-эпилог текст
Вставить текст в конце списка файлов. Для удобства все вхождения
\n последовательность символов в текст заменяются новыми строками.

--file-list-разделитель текст
Разделяйте имена файлов, записанные в список файлов, с помощью текст вместо новых строк. Как
удобство, все вхождения \n последовательность символов в текст заменены на
новые строки.

cxx-дерево команду кредита
- генерировать-полиморфный
Сгенерируйте код, учитывающий полиморфизм. Укажите эту опцию, если вы используете замену
группы или xsi: type, Использовать --полиморфный тип or --полиморфный-тип-все вариант
укажите, какие иерархии типов являются полиморфными.

--полиморфный тип напишите
Показывают, что напишите является корнем иерархии полиморфных типов. Компилятор может
часто автоматически определяют, какие типы полиморфны на основе подстановки
групповые объявления. Однако вам может потребоваться использовать эту опцию, если вы не используете
группы замещения или если группы замещения определены в другой схеме. Ты
необходимо указать эту опцию при компиляции каждого файла схемы, который ссылается на напишите.
Ассоциация напишите Аргумент - это имя типа схемы XML, которое может быть дополнено
пространство имен в Пространство имен#имя форме.

--полиморфный-тип-все
Укажите, что все типы следует рассматривать как полиморфные.

--полиморфная пластина Num
Укажите пластину полиморфной карты, на которой должен регистрироваться сгенерированный код. Этот
функциональность в первую очередь полезна для разделения нескольких схем, которые определяют
такие же полиморфные типы.

- упорядоченный тип напишите
Укажите этот порядок элементов в напишите важно. Примером может быть сложный
тип с неограниченным выбором в качестве модели содержимого, где порядок элементов в XML имеет
специфическая для приложения семантика. Для упорядоченных типов компилятор генерирует специальный
элемент данных контейнера и соответствующий набор средств доступа и модификаторов, которые
используется для определения порядка элементов и, для смешанного содержания, текста.

Ассоциация напишите Аргумент - это имя типа схемы XML, которое может быть дополнено
пространство имен в Пространство имен#имя форма. Также обратите внимание, что вам нужно будет указать
эта опция при компиляции каждого файла схемы, который имеет другие упорядоченные типы, производные
из этого типа.

--ordered-type-производный
Автоматически обрабатывать типы, производные от упорядоченных баз, как также упорядоченные. Это
в первую очередь полезно, если вы хотите иметь возможность перебирать все содержимое
используя контейнер порядка содержимого.

- заказанный-тип-смешанный
Автоматически обрабатывать сложные типы со смешанным содержимым в соответствии с порядком.

--ordered-type-all
Укажите, что порядок элементов во всех типах имеет значение.

- заказ-контейнер напишите
Укажите шаблон настраиваемого класса, который следует использовать в качестве контейнера для содержимого.
порядок в упорядоченных типах вместо значения по умолчанию std :: vector. Посмотреть - упорядоченный тип для
больше информации о заказанном типе. Эта опция в первую очередь полезна, если вам нужно
выполнять более сложные поиски в контейнере порядка содержимого, например, по элементам
я бы. В этом случае может оказаться более удобным контейнер типа Boost multi-index. Примечание
что при использовании настраиваемого контейнера вам также, скорее всего, потребуется включить
соответствующие заголовки с использованием --hxx-пролог * настройки.

--генерировать-сериализация
Сгенерируйте функции сериализации. Функции сериализации преобразуют объектную модель
назад к XML.

--генерировать-ostream
Сгенерировать операторы вставки ostream (оператор <) для сгенерированных типов. Это позволяет
один, чтобы легко распечатать фрагмент или всю объектную модель для отладки или регистрации.

--генерировать-doxygen
Создание комментариев к документации, подходящих для извлечения Doxygen
система документации. Документация из аннотаций добавляется в комментарии, если
присутствует в схеме.

--generate-сравнение
Сгенерировать операторы сравнения (оператор == и оператор! =) для сложных типов.
Сравнение выполняется послойно.

--generate-default-ctor
Создавайте конструкторы по умолчанию даже для типов с обязательными членами. необходимые
члены экземпляра, построенного с использованием такого конструктора, не инициализируются и
доступ к ним приводит к неопределенному поведению.

--генерировать-из-базы-ctor
Сгенерируйте конструкторы, которые ожидают экземпляр базового типа, за которым следуют все
требуемые члены.

--подавление-присвоение
Подавить создание операторов присваивания копий для сложных типов. Если это
указана опция, объявлены операторы присваивания копий для таких типов
частные и оставленные нереализованными.

--генерировать-отсоединить
Сгенерируйте функции отсоединения для требуемых элементов и атрибутов. Отключить функции
для факультативных и последовательных мощностей предоставляются соответствующими контейнерами.
Эти функции, например, позволяют перемещать поддеревья в объектной модели.
либо внутри одного дерева, либо между разными деревьями.

--генерировать подстановочный знак
Создание средств доступа и модификаторов, а также кода синтаксического анализа и сериализации для XML.
Подстановочные знаки схемы (любой и любой атрибут). XML-контент, сопоставленный подстановочными знаками,
представлены в виде фрагментов DOM. Обратите внимание, что вам необходимо инициализировать среду выполнения Xerces-C ++.
если вы используете эту опцию.

--генерировать-любой-тип
Извлечь и сохранить содержимое XML-схемы любой тип тип как фрагмент DOM. Примечание
что вам нужно инициализировать среду выполнения Xerces-C ++, если вы используете эту опцию.

--generate-insert os
Сгенерируйте операторы вставки потока представления данных для os выходной поток
тип. Повторите этот параметр, чтобы указать более одного типа потока. Поток ACE CDR
(ACE_OutputCDR) и RPC XDR распознаются компилятором и необходимы
#включают директивы генерируются автоматически. Для настраиваемых типов потоков используйте
--hxx-пролог * варианты предоставления необходимых деклараций.

- добыча-генерация is
Сгенерируйте конструкторы извлечения потока представления данных для is входной поток
тип. Повторите этот параметр, чтобы указать более одного типа потока. Поток ACE CDR
(ACE_InputCDR) и RPC XDR распознаются компилятором и необходимы
#включают директивы генерируются автоматически. Для настраиваемых типов потоков используйте
--hxx-пролог * варианты предоставления необходимых деклараций.

--генерировать-вперед
Создайте отдельный файл заголовка с предварительными объявлениями для типов, которые
генерируется.

--подавление-разбор
Подавить создание функций синтаксического анализа и конструкторов. Используйте эту опцию
для уменьшения размера сгенерированного кода, когда синтаксический анализ из XML не требуется.

--генерировать тип-элемента
Создавайте типы вместо функций синтаксического анализа и сериализации для корневых элементов.
Это в первую очередь полезно для различения объектных моделей с одним и тем же корневым типом, но
с разными корневыми элементами.

--генерировать карту элементов
Сгенерируйте карту корневых элементов, которая обеспечивает единообразный синтаксический анализ и сериализацию
несколько корневых элементов. Эта опция действительна только вместе с --генерировать-элемент-
напишите.

--генерировать-интеллисенс
Создавайте обходные пути для ошибок IntelliSense в Visual Studio 2005 (8.0). Когда это
вариант, результирующий код будет немного более подробным. IntelliSense в
Для Visual Studio 2008 (9.0) и более поздних версий эти обходные пути не требуются. Поддержка для
IntelliSense в Visual Studio 2003 (7.1) улучшен с помощью этой опции, но по-прежнему
неполный.

--omit-default-атрибуты
Пропускайте атрибуты со значениями по умолчанию и фиксированными значениями из сериализованных XML-документов.

--type-naming стиль
Укажите соглашение об именах типов, которое следует использовать в сгенерированном коде. Действительный
стили кнр (По умолчанию), UCCкачества Ява. См. Раздел «ОБОЗНАЧЕНИЕ НАЗВАНИЙ» ниже.
чтобы получить больше информации.

- имя-функции стиль
Укажите соглашение об именах функций, которое следует использовать в сгенерированном коде.
Допустимые стили: кнр (По умолчанию), LCCкачества Ява. См. Раздел «ОБОЗНАЧЕНИЕ НАЗВАНИЙ».
ниже для получения дополнительной информации.

--type-regex регулярное выражение
Добавить регулярное выражение в список регулярных выражений, используемых для перевода типа схемы XML
имена в имена типов C ++. См. Раздел «ОБОЗНАЧЕНИЕ НАЗВАНИЙ» ниже для получения дополнительной информации.
Информация.

--accessor-regex регулярное выражение
Добавить регулярное выражение в список регулярных выражений, используемых для перевода имен XML-схемы
элементы / атрибуты для имен функций доступа C ++. См. КОНВЕНЦИЮ О НАЗВАНИИ
раздел ниже для получения дополнительной информации.

--один-аксессуар-регулярное выражение регулярное выражение
Добавить регулярное выражение в список регулярных выражений, используемых для перевода имен XML-схемы
элементы / атрибуты с числом элементов от одного до имен функций доступа C ++. Увидеть
Раздел «ОБОЗНАЧЕНИЕ НАЗВАНИЙ» ниже для получения дополнительной информации.

--opt-аксессуар-регулярное выражение регулярное выражение
Добавить регулярное выражение в список регулярных выражений, используемых для перевода имен XML-схемы
элементы / атрибуты с количеством элементов, необязательным для имен функций доступа C ++. Видеть
раздел «ОБОЗНАЧЕНИЕ НАЗВАНИЙ» ниже для получения дополнительной информации.

--seq-аксессуар-регулярное выражение регулярное выражение
Добавить регулярное выражение в список регулярных выражений, используемых для перевода имен XML-схемы
элементы / атрибуты с последовательностью мощности для имен функций доступа C ++. Видеть
раздел «ОБОЗНАЧЕНИЕ НАЗВАНИЙ» ниже для получения дополнительной информации.

--modifier-regex регулярное выражение
Добавить регулярное выражение в список регулярных выражений, используемых для перевода имен XML-схемы
элементы / атрибуты к именам функций-модификаторов C ++. См. КОНВЕНЦИЮ О НАЗВАНИИ
раздел ниже для получения дополнительной информации.

--один-модификатор-регулярное выражение регулярное выражение
Добавить регулярное выражение в список регулярных выражений, используемых для перевода имен XML-схемы
элементы / атрибуты с числом элементов от единицы до имен функций-модификаторов C ++. Увидеть
Раздел «ОБОЗНАЧЕНИЕ НАЗВАНИЙ» ниже для получения дополнительной информации.

--opt-модификатор-регулярное выражение регулярное выражение
Добавить регулярное выражение в список регулярных выражений, используемых для перевода имен XML-схемы
элементы / атрибуты с количеством элементов, необязательным для имен функций-модификаторов C ++. Видеть
раздел «ОБОЗНАЧЕНИЕ НАЗВАНИЙ» ниже для получения дополнительной информации.

--seq-модификатор-регулярное выражение регулярное выражение
Добавить регулярное выражение в список регулярных выражений, используемых для перевода имен XML-схемы
элементы / атрибуты с последовательностью мощности для имен функций модификатора C ++. Видеть
раздел «ОБОЗНАЧЕНИЕ НАЗВАНИЙ» ниже для получения дополнительной информации.

--parser-regex регулярное выражение
Добавить регулярное выражение в список регулярных выражений, используемых для перевода элемента схемы XML
имена в имена функций синтаксического анализа C ++. См. Раздел «ОБОЗНАЧЕНИЕ НАЗВАНИЙ» ниже.
больше информации.

--serializer-regex регулярное выражение
Добавить регулярное выражение в список регулярных выражений, используемых для перевода элемента схемы XML
имена в имена функций сериализации C ++. См. Раздел «ОБОЗНАЧЕНИЕ НАЗВАНИЙ» ниже.
чтобы получить больше информации.

--конст-регулярное выражение регулярное выражение
Добавить регулярное выражение в список регулярных выражений, используемых для перевода на основе XML-схемы
имена в имена констант C ++. См. Раздел «ОБОЗНАЧЕНИЕ НАЗВАНИЙ» ниже для получения дополнительной информации.
Информация.

--enumerator-regex регулярное выражение
Добавить регулярное выражение в список регулярных выражений, используемых для перевода XML-схемы
значения перечисления в имена перечислителей C ++. См. Раздел «ОБОЗНАЧЕНИЕ НАЗВАНИЙ» ниже.
чтобы получить больше информации.

--элемент-тип-регулярное выражение регулярное выражение
Добавить регулярное выражение в список регулярных выражений, используемых для перевода элемента схемы XML
имена в имена типов элементов C ++. См. Раздел «ОБОЗНАЧЕНИЕ НАЗВАНИЙ» ниже для получения дополнительной информации.
Информация.

- имя-регулярное выражение-трассировка
Отслеживайте процесс применения регулярных выражений, указанных в названии
варианты трансформации. Используйте эту опцию, чтобы узнать, почему ваши регулярные выражения
не делайте того, что вы от них ожидали.

--корневой-элемент-первый
Считайте корнем документа только первый глобальный элемент. По умолчанию все глобальные
элементы считаются корнями документа.

--корневой элемент-последний
Считайте корнем документа только последний глобальный элемент. По умолчанию все глобальные
элементы считаются корнями документа.

--корневой элемент-все
Считайте все глобальные элементы корнями документа. Это поведение по умолчанию. От
явно указав эту опцию, вы можете подавить предупреждение, которое выдается, если
определено более одного глобального элемента.

--корневой элемент-нет
Не относитесь к каким-либо глобальным элементам как к корням документа. По умолчанию все глобальные элементы
считаются корнями документов.

--корневой элемент элемент
Только лечить элемент как корень документа. Повторите этот параметр, чтобы указать более одного
корневой элемент.

- нестандартного типа карта
Используйте пользовательский тип C ++ вместо сгенерированного класса. В карта аргумент в
форма имя[=напишите[/Использование темпера с изогнутым основанием]], где имя это имя типа, как определено в схеме XML и
напишите - это имя типа C ++, которое следует использовать вместо него. Если напишите нет или
пусто, то предполагается, что настраиваемый тип имеет то же имя и определен в
то же пространство имен, что и у сгенерированного класса. Если Использование темпера с изогнутым основанием указывается тогда
сгенерированный класс все еще создается, но с этим именем.

--custom-type-regex - регулярное выражение произвольного типа регулярное выражение
Используйте пользовательские типы C ++ вместо сгенерированных классов. В регулярное выражение аргумент в
форма /похлопать по имени/[тип-переводник/[база-подлодка/]], где похлопать по имени это шаблон регулярного выражения, который будет
сопоставляться с именами типов, как определено в схеме XML и тип-переводник это тип C ++
замену имени, которое следует использовать вместо этого. Если тип-переводник нет или его
подстановка приводит к пустой строке, тогда предполагается, что пользовательский тип имеет
то же имя и быть определенным в том же пространстве имен, что и сгенерированный класс.
If база-подлодка присутствует, и его замена приводит к непустой строке, тогда
сгенерированный класс все еще генерируется, но с результатом этой замены в качестве его
название. Шаблон и подстановки находятся в формате регулярных выражений Perl. Видеть
также раздел REGEX AND SHELL QUOTING ниже.

--запчасти Num
Разделить сгенерированный исходный код на Num части. Это полезно при переводе больших,
монолитные схемы и компилятор C ++ не может скомпилировать полученный исходный код
код сразу (обычно из-за нехватки памяти).

--parts-суффикс суффикс
Используйте суффикс вместо значения по умолчанию '-'чтобы отделить имя файла от части
номер.

cxx-парсер команду кредита
--type-map файл карты
Прочтите XML-схему для информации о сопоставлении типов C ++ из файл карты. Повторите эту опцию, чтобы
указать несколько типов карт. Карты типов рассматриваются в порядке появления, а
используется первое совпадение. По умолчанию все пользовательские типы отображаются в аннулировать. Смотреть
Раздел ТИП КАРТЫ ниже для получения дополнительной информации.

--xml-парсер синтаксический анализатор
Используйте синтаксический анализатор как базовый синтаксический анализатор XML. Допустимые значения: Xerces для Xerces-C ++
(по умолчанию) и эмигрант для Expat.

--генерировать-валидация
Сгенерируйте код проверки. Код проверки («идеальный синтаксический анализатор») гарантирует, что
Экземплярные документы соответствуют схеме. Код проверки генерируется по умолчанию
когда выбранный базовый синтаксический анализатор XML не проверяет (эмигрант).

--suppress-валидация
Подавить генерацию кода проверки. По умолчанию проверка отключена.
когда выбранный базовый XML-синтаксический анализатор проверяет (Xerces).

- генерировать-полиморфный
Сгенерируйте код, учитывающий полиморфизм. Укажите эту опцию, если вы используете замену
группы или xsi: type.

--generate-noop-импл
Создайте образец реализации парсера, который ничего не делает (без операции). В
затем образец реализации можно заполнить кодом для конкретного приложения. Для
входной файл в форме имя.xsd эта опция запускает генерацию двух
дополнительные файлы C ++ в виде: имя-pimpl.hxx (заголовок реализации парсера
файл) и имя-pimpl.cxx (исходный файл реализации парсера).

--generate-print-impl
Создайте образец реализации синтаксического анализатора, который печатает данные XML в STDOUT. Для
входной файл в форме имя.xsd эта опция запускает генерацию двух
дополнительные файлы C ++ в виде: имя-pimpl.hxx (заголовок реализации парсера
файл) и имя-pimpl.cxx (исходный файл реализации парсера).

--генерировать-тест-драйвер
Сгенерируйте тестовый драйвер для примера реализации парсера. Для входного файла в
форма имя.xsd эта опция запускает создание дополнительного файла C ++ в
форма имя-driver.cxx.

--force-перезаписать
Принудительная перезапись существующих файлов реализации и тестового драйвера. Использовать это
вариант только в том случае, если вы не против потерять внесенные в образец изменения
файлы реализации или тестового драйвера.

--корневой-элемент-первый
Укажите, что первый глобальный элемент является корнем документа. Эта информация
используется для создания тестового драйвера для демонстрационной реализации.

--корневой элемент-последний
Укажите, что последний глобальный элемент является корнем документа. Эта информация
используется для создания тестового драйвера для демонстрационной реализации.

--корневой элемент элемент
Показывают, что элемент это корень документа. Эта информация используется для создания
тестовый драйвер для демонстрационной реализации.

суффикс типа скеля суффикс
Используйте предоставленные суффикс вместо по умолчанию _пскель построить имена
сгенерированные скелеты парсера.

--skel-файл-суффикс суффикс
Используйте предоставленные суффикс вместо по умолчанию -пскель построить имена
сгенерированные файлы скелетов парсера.

--impl-type-суффикс суффикс
Используйте предоставленные суффикс вместо по умолчанию _pimpl построить имена
реализации синтаксического анализатора для встроенных типов XML-схемы, а также образец синтаксического анализатора
Реализации.

--impl-файл-суффикс суффикс
Используйте предоставленные суффикс вместо по умолчанию -пимпл построить имена
сгенерированные образцы файлов реализации парсера.

НЕЙМИНГ КОНВЕНЦИЯ


Компилятор может быть проинструктирован использовать конкретное соглашение об именах в сгенерированном
код. Ряд широко используемых соглашений можно выбрать с помощью --type-naming и
- имя-функции опции. Пользовательское соглашение об именах может быть достигнуто с помощью --тип-
регулярное выражение, --accessor-regex, --один-аксессуар-регулярное выражение, --opt-аксессуар-регулярное выражение, --seq-аксессуар-регулярное выражение,
--modifier-regex, --один-модификатор-регулярное выражение, --opt-модификатор-регулярное выражение, --seq-модификатор-регулярное выражение,
--parser-regex, --serializer-regex, --конст-регулярное выражение, --enumerator-regexкачества - тип -элемент-
регулярное выражение настройки.

Ассоциация --type-naming опция указывает соглашение, которое следует использовать для именования C ++
типы. Возможные значения для этой опции: кнр (По умолчанию), UCCкачества Ява, кнр ценностное
(означает K&R) означает стандартное соглашение об именах в нижнем регистре с подчеркиванием
используется как разделитель слов, например: foo, foo_bar. В UCC (означает верхний верблюд-
случае) и Ява оценивает синонимы для того же соглашения об именах, где первая буква
каждое слово в имени пишется с большой буквы, например: Foo, FooBar.

Аналогичным образом, - имя-функции опция определяет соглашение, которое следует использовать для
именование функций C ++. Возможные значения для этой опции: кнр (По умолчанию), LCCкачества Ява.
Ассоциация кнр значение (обозначает K&R) означает стандартное соглашение об именах в нижнем регистре с
подчеркивание, используемое в качестве разделителя слов, например: foo (), foo_bar (). В LCC ценностное
(обозначает нижний регистр верблюда) означает соглашение об именах, где первая буква каждого
слово, кроме первого, пишется с большой буквы, например: foo (), fooBar (). В Ява именования
соглашение аналогично соглашению с нижним регистром, за исключением того, что функции доступа
с префиксом get, функции-модификаторы имеют префикс set, функции синтаксического анализа
с префиксом parse, а функции сериализации - с префиксом serialize, например:
getFoo (), setFooBar (), parseRoot (), serializeRoot ().

Обратите внимание, что соглашения об именах, указанные с --type-naming и - имя-функции
параметры выполняют только ограниченные преобразования имен, которые происходят из схемы в
форма имен типов, атрибутов и элементов. Другими словами, чтобы получить стабильные результаты,
ваши схемы должны соответствовать тому же соглашению об именах, что и та, которую вы хотели бы иметь
в сгенерированном коде. В качестве альтернативы вы можете использовать - * - регулярное выражение варианты (обсуждаются ниже)
для выполнения дальнейших преобразований имен, взятых из схемы.

Ассоциация --type-regex, --accessor-regex, --один-аксессуар-регулярное выражение, --opt-аксессуар-регулярное выражение, --seq-
аксессуар-регулярное выражение, --modifier-regex, --один-модификатор-регулярное выражение, --opt-модификатор-регулярное выражение, --seq-
модификатор-регулярное выражение, --parser-regex, --serializer-regex, --конст-регулярное выражение, --enumerator-regexкачества
--элемент-тип-регулярное выражение параметры позволяют указать дополнительные регулярные выражения для каждого имени
категории в дополнение к предопределенному набору, который добавляется в зависимости от --type-naming
и - имя-функции опции. Выражения, предоставленные - * - регулярное выражение кредита
оцениваются до любых предопределенных выражений. Это позволяет выборочно переопределить
некоторые или все предопределенные преобразования. При отладке собственных выражений это
часто полезно видеть, какие выражения соответствуют каким именам. В - имя-регулярное выражение-трассировка вариант
позволяет отслеживать процесс применения регулярных выражений к именам.

Значение для - * - регулярное выражение параметры должны быть регулярным выражением типа Perl в форме
/описания/замена/. В качестве разделителя можно использовать любой символ вместо /. Побег
символа-разделителя в описания or замена не поддерживается. Все обычные
выражения для каждой категории помещаются в стек для конкретной категории с последним
указанное выражение считается первым. Используется первое успешное совпадение. Для
--один-аксессуар-регулярное выражение (аксессоры с мощностью один), --opt-аксессуар-регулярное выражение (аксессуары
с количеством элементов необязательно), и --seq-аксессуар-регулярное выражение (аксессоры с последовательностью мощности)
категории --accessor-regex выражения используются как резерв. Для --один-
модификатор-регулярное выражение, --opt-модификатор-регулярное выражениекачества --seq-модификатор-регулярное выражение категории --модификатор-
регулярное выражение выражения используются как резерв. Для --элемент-тип-регулярное выражение категория
--type-regex выражения используются как резерв.

Выражения имени типа (--type-regex) оцениваются в строке имени, которая имеет
следующий формат:

[Пространство имен ]имя[,имя][,имя][,имя]

Выражения имени типа элемента (--элемент-тип-регулярное выражение), эффективный только тогда, когда
--генерировать тип-элемента указан, оцениваются в строке имени, которая имеет
следующий формат:

Пространство имен имя

В формате названия типа Пространство имен часть, за которой следует пробел, присутствует только для глобальных
имена типов. Для глобальных типов и элементов, определенных в схемах без целевого пространства имен,
домен Пространство имен часть пуста, но место все еще присутствует. В формате названия типа после
начальная имя компонент, до трех дополнительных имя компоненты могут присутствовать,
разделенных запятыми. Например:

http://example.com/hello напишите

Foo

foo, итератор

foo, const, итератор

Следующий набор предопределенных регулярных выражений используется для преобразования имен типов, когда
выбрано соглашение об именах в верхнем регистре:

/ (?: [^ ]* )? ([^,] +) / \ u $ 1 /

/ (?: [^ ]* )? ([^,] +), ([^,] +) / \ u $ 1 \ u $ 2 /

/ (?: [^ ]* )? ([^,] +), ([^,] +), ([^,] +) / \ u $ 1 \ u $ 2 \ u $ 3 /

/ (?: [^ ]* )? ([^,] +), ([^,] +), ([^,] +), ([^,] +) / \ u $ 1 \ u $ 2 \ u $ 3 \ u $ 4 /

Выражения аксессора и модификатора (- * аксессуар-регулярное выражение и - * модификатор-регулярное выражение) находятся
оценивается в строке имени, имеющей следующий формат:

имя[,имя][,имя]

После начального имя компонент, до двух дополнительных имя компоненты могут присутствовать,
разделенных запятыми. Например:

Foo

дом, документ

foo, по умолчанию, значение

Следующий набор предопределенных регулярных выражений используется для преобразования имен средств доступа.
когда окно Ява выбрано соглашение об именах:

/ ([^,] +) / получить \ u $ 1 /

/ ([^,] +), ([^,] +) / получить \ u $ 1 \ u $ 2 /

/ ([^,] +), ([^,] +), ([^,] +) / получить \ u $ 1 \ u $ 2 \ u $ 3 /

Для категорий парсера, сериализатора и перечислителя соответствующие обычные
выражения оцениваются по локальным именам элементов и по значениям перечисления,
соответственно. Например, следующее стандартное регулярное выражение используется для
преобразовать имена функций синтаксического анализа, когда Ява выбрано соглашение об именах:

/(.+)/разбор\u$1/

Категория const используется для создания имен констант C ++ для элемента / подстановочного знака / текста.
идентификаторы содержимого в упорядоченных типах.

См. Также раздел REGEX AND SHELL QUOTING ниже.

ТИП MAP


Файлы сопоставления типов используются в C ++ / Parser для определения сопоставления между XML-схемой и C ++.
типы. Компилятор использует эту информацию для определения возвращаемых типов Почта_*
функции в скелетах парсера, соответствующие типам XML-схемы, а также типам аргументов
для обратных вызовов, соответствующих элементам и атрибутам этих типов.

У компилятора есть набор предопределенных правил сопоставления, которые сопоставляют встроенные типы XML-схемы с
подходящие типы C ++ (обсуждаемые ниже) и все другие типы для аннулировать. Предоставляя собственные
карты типов, вы можете переопределить эти предопределенные правила. Формат файла карты типов:
представлены ниже:

Пространство имен пространство имен схемы [ cxx-пространство имен ]
{
( включают имя файла; )*
([ напишите ] тип схемы cxx-ret-тип [ cxx-arg-тип ]; )*
}

Оба формата пространство имен схемы и тип схемы шаблоны регулярных выражений, в то время как cxx-пространство имен, cxx-рет-
напишитекачества cxx-arg-тип являются заменой шаблонов регулярных выражений. Все имена могут быть опционально
заключить в "", например, чтобы включить пробелы.

пространство имен схемы определяет пространство имен схемы XML. По желанию cxx-пространство имен с префиксом
каждое имя типа C ++ в этом объявлении пространства имен. cxx-ret-тип это имя типа C ++, которое
используется как возвращаемый тип для Почта_* функции. По желанию cxx-arg-тип это аргумент
type для функций обратного вызова, соответствующих элементам и атрибутам этого типа. Если схх-
тип аргумента не указан, по умолчанию cxx-ret-тип if cxx-ret-тип заканчивается * or &
(то есть это указатель или ссылка) и Const cxx-ret-тип& в противном случае. имя файла is
имя файла в формате "" или <> и добавляется с #включают директивы
сгенерированный код.

Ассоциация # символ начинает комментарий, который заканчивается новой строкой или концом файла. Чтобы указать
имя, которое содержит # заключите его в "". Например:

Пространство имен http://www.example.com/xmlns/my my
{
включить "my.hxx";

# Передавать яблоки по значению.
#
яблочное яблоко;

# Передавать апельсины как указатели.
#
оранжевый orange_t *;
}

В приведенном выше примере для http://www.example.com/xmlns/my#оранжевый Тип XML-схемы,
мой :: orange_t * Тип C ++ будет использоваться и как возвращаемый, и как аргумент.

В одном файле можно указать несколько объявлений пространств имен. Пространство имен
объявление также может быть полностью опущено для отображения типов в схеме без пространства имен.
Например:

включить "my.hxx";
яблочное яблоко;

Пространство имен http://www.example.com/xmlns/my
{
оранжевый "const orange_t *";
}

В компиляторе есть несколько предопределенных правил сопоставления, которые могут быть представлены как
следующие файлы карт. Встроенные типы XML-схемы на основе строк сопоставляются либо
станд :: строка or std :: wstring в зависимости от типа символа, выбранного с помощью - тип диаграммы
вариант (колесница по умолчанию).

Пространство имен http://www.w3.org/2001/XMLSchema
{
логическое булево булево;

byte «подписанный символ» «подписанный символ»;
unsignedByte «символ без знака» «символ без знака»;

короткие короткие короткие;
unsignedShort «беззнаковое короткое» «беззнаковое короткое»;

инт инт инт;
unsignedInt «беззнаковое целое» «беззнаковое целое»;

long «длинный длинный» «длинный длинный»;
unsignedLong "беззнаковый длинный длинный" "беззнаковый длинный длинный";

целое число «долго долго» «долго долго»;

negativeInteger "длинный длинный" "длинный длинный";
nonPositiveInteger "длинный длинный" "длинный длинный";

PositiveInteger "беззнаковое длинное длинное" "беззнаковое длинное длинное";
nonNegativeInteger «длинный беззнаковый длинный» «беззнаковый длинный длинный»;

поплавок поплавок поплавок;
дабл дабл дабл;
десятичный двойной двойной;

строка std :: string;
normalizedString std :: string;
токен std :: string;
Имя std :: string;
NMTOKEN std :: string;
NCName std :: string;
ID std :: string;
IDREF std :: string;
язык std :: string;
anyURI std :: string;

NMTOKENS xml_schema :: string_sequence;
IDREFS xml_schema :: string_sequence;

QName xml_schema :: qname;

base64Binary std :: auto_ptr
std :: auto_ptr ;
шестнадцатеричный std :: auto_ptr
std :: auto_ptr ;

date xml_schema :: date;
dateTime xml_schema :: date_time;
duration xml_schema :: duration;
gDay xml_schema :: gday;
gMonth xml_schema :: gmonth;
gMonthDay xml_schema :: gmonth_day;
gYear xml_schema :: gyear;
gYearMonth xml_schema :: gyear_month;
время xml_schema :: time;
}

Последнее предопределенное правило сопоставляет все, что не было сопоставлено предыдущими правилами, с аннулировать:

пространство имен. *
{
. * void void;
}

Когда вы предоставляете свои собственные карты типов с --type-map вариант, они оцениваются в первую очередь.
Это позволяет выборочно отменять предопределенные правила.

РЕГЭКС И SHELL ЦИТАТА


При вводе аргумента регулярного выражения в командной строке оболочки часто встречается
необходимо использовать кавычки (заключая аргумент в "" или ''), чтобы предотвратить
оболочки от интерпретации определенных символов, например, пробелов как разделителей аргументов и
$ как расширения переменных.

К сожалению, этого трудно добиться переносом между оболочками POSIX,
такие как те, что можно найти в GNU / Linux и UNIX, а также в оболочке Windows. Например, если вы используете ""
для цитирования вы получите неправильный результат с оболочками POSIX, если ваше выражение содержит $.
Стандартный способ справиться с этим в системах POSIX - использовать вместо этого "".
К сожалению, оболочка Windows не удаляет '' из аргументов, когда они передаются в
Приложения. В результате вам, возможно, придется использовать "" для POSIX и "" для Windows ($ не
рассматривается как специальный символ в Windows).

Кроме того, вы можете сохранить параметры регулярного выражения в файл, по одному параметру на строку,
и используйте этот файл с --options-файл вариант. При таком подходе вам не нужно
беспокоиться о цитировании оболочки.

ДИАГНОСТИКИ


Если входной файл не является допустимым определением схемы W3C XML, хсдкхх выдаст диагностику
сообщения для СТДЕРР и выйти с ненулевым кодом выхода.

Используйте xsdcxx онлайн с помощью сервисов onworks.net


Бесплатные серверы и рабочие станции

Скачать приложения для Windows и Linux

Команды Linux

Ad