англійськафранцузькаіспанська

Ad


Значок OnWorks

xsdcxx - онлайн у хмарі

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

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

ПРОГРАМА:

ІМ'Я


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

СИНТАКСИС


xsdcxx команда [ опції ] файл [ файл ...]
xsdcxx допомога [ команда ]
xsdcxx версія

ОПИС


xsdcxx генерує специфічне для словника, статично типізоване відображення C++ зі схеми W3C XML
визначення. Конкретне відображення для створення вибирається за допомогою a команда. Кожне відображення має a
кількість специфічних для відображення опції яка має з’явитися, якщо є, після команда. Вхідні дані
файли мають бути визначеннями W3C XML Schema. Залежить точний набір згенерованих файлів
на вибраному відображенні та параметрах.

КОМАНДИ


cxx-дерево
Створіть відображення C++/дерева. Для кожного вхідного файлу у формі name.xsd
створюються такі файли C++: name.hxx (заголовний файл), name.ixx (вбудований файл,
створюється лише за умови --generate-inline вказана опція), name.cxx (Джерело
файл), і name-fwd.hxx (файл оголошення пересилання, згенерований лише якщо
--generate-forward вказана опція).

cxx-парсер
Згенеруйте відображення C++/Parser. Для кожного вхідного файлу у формі name.xsd
створюються такі файли C++: ім'я-pskel.hxx (заголовний файл скелета аналізатора),
name-pskel.ixx (вбудований файл скелета синтаксичного аналізатора, згенерований лише якщо --генерувати-
вбудований вказана опція), і ім'я-pskel.cxx (вихідний файл скелета аналізатора). Якщо
--generate-noop-impl or --generate-print-impl вказано опцію,
створюються такі додаткові файли прикладу реалізації: name-pimpl.hxx
(заголовний файл реалізації синтаксичного аналізатора) і name-pimpl.cxx (реалізація синтаксичного аналізатора
вихідний файл). Якщо --generate-test-driver вказана опція, доп
назва драйвера.cxx створюється файл тестового драйвера.

допомога Роздрукуйте інформацію про використання та вийдіть. Використовуйте

xsdcxx допомога команда

для специфічної командної допомоги.

версія
Роздрукувати версію та вийти.

ВАРІАНТИ


Специфічні для команди опції, якщо є, має з’явитися після відповідного команда.

загальний опції
--стандартний версія
Вкажіть стандарт C++, якому має відповідати згенерований код. Допустимі значення
він має c ++ 98 (за замовчуванням) і c ++ 11.

Стандарт C++ впливає на різні аспекти згенерованого коду, які обговорюються
більш детально в різноманітній документації, що стосується картографування. Загалом, коли C++11 є
вибрано, згенерований код покладається на семантику переміщення та використовує std::unique_ptr
замість застарілого std :: auto_ptr.

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

--char-тип тип
Згенеруйте код, використовуючи наданий символ тип замість за замовчуванням бак. Дійсний
значення є бак та wchar_t.

--символьне кодування на
Вкажіть кодування символів, яке має використовуватися в згенерованому коді. Дійсний
значення для бак тип символу є utf8 (За замовчуванням), iso8859-1, lcp (Xerces-C++
локальна кодова сторінка) та виготовлений на замовлення. Якщо пройдеш виготовлений на замовлення як значення, то вам знадобиться
щоб на початку включити заголовок реалізації транскодера для вашого кодування
згенерованих заголовних файлів (див --hxx-пролог варіант).

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

--вихідний каталог реж
Запишіть створені файли до реж замість поточного каталогу.

--generate-inline
Генерувати прості функції в рядку. Цей параметр запускає створення вбудованого файлу.

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

Файл схеми, наданий компілятору, не обов’язково існує і використовується лише для отримання
ім'я отриманого заголовного файлу. Використовувати --extern-xml-схема варіант до
включити цей файл у створені файли для інших схем.

--extern-xml-схема файл
Включіть заголовний файл, отриманий з файл замість створення XML-схеми
вбудоване відображення простору імен. Наданий файл не обов’язково існує і використовується лише для
отримати ім’я включеного заголовного файлу. Використовувати --generate-xml-схема варіант
щоб створити цей заголовний файл.

--карта простору імен xns=cns
Карта простору імен схеми XML xns до простору імен C++ cns. Повторіть цей параметр, щоб указати
зіставлення для більш ніж одного простору імен XML Schema. Наприклад, такий варіант:

--карта простору імен http://example.com/foo/bar=foo::bar

Зробить карту http://example.com/foo/bar Простір імен XML Schema до foo::bar C + +
простір імен.

--регулярний вираз простору імен regex
додавати regex до списку регулярних виразів, які використовуються для трансляції простору імен XML Schema
імена до імен простору імен C++. regex це регулярний вираз, подібний до Perl у формі
/модель/заміна/. Як роздільник замість символу можна використовувати будь-який символ /.
Екранування символу роздільника в модель or заміна не підтримується.

Усі регулярні вирази поміщаються в стек з останнім зазначеним
вираз, що розглядається першим. Використовується перший вдалий матч. Звичайний
вирази застосовуються до рядка у формі

ім'я файлу простору імен

Наприклад, якщо у вас є файл привіт.xsd з простором імен http://example.com/hello та
біжи xsd у цьому файлі, тоді відповідний рядок буде:

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

Для вбудованого простору імен XML Schema рядок:

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

Наступні три кроки виконуються для кожного регулярного виразу до збігу
знаходиться:

1. Вираз застосовується, і якщо результат порожній, то наступний вираз
розглянуто.

2 Все / замінюються на ::.

3. Результат перевіряється як дійсне ім'я області C++ (наприклад, foo::bar). Якщо це
тест пройшов успішно, результат використовується як ім’я простору імен C++.

Як приклад, наступний вираз відображає простори імен XML Schema у формі
http://example.com/foo/bar до просторів імен C++ у формі foo::bar:

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

Дивіться також розділ REGEX ТА SHELL ЦИТАТИ нижче.

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

--reserved-name n[=r]
Додати ім’я n до списку імен, які не слід використовувати як ідентифікатори. Ім'я
за бажанням може супроводжуватися = і назву заміни r що слід використовувати
замість цього. Усі ключові слова C++ вже є в цьому списку.

--include-with-дужках
Використовуйте кутові дужки (<>) замість лапок ("") у створеному #включати директиви.

--include-префікс префікс
додавати префікс до згенерованого #включати директивні шляхи.

Наприклад, якщо у вашій схемі є такий елемент імпорту

<імпорт простір імен="..." schemaLocation="base.xsd"/>

і зібрав цей фрагмент з --include-префікс схеми/, потім включити
Директива в згенерованому коді буде:

#включати "schemas/base.hxx"

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

Усі регулярні вирази поміщаються в стек з останнім зазначеним
вираз, що розглядається першим. Використовується перший вдалий матч.

Як приклад, наступний вираз перетворює шляхи у формі
schemas/foo/bar до шляхів у формі згенеровано/foo/bar:

%схем/(.+)%генеровано/$1%

Дивіться також розділ REGEX ТА SHELL ЦИТАТИ нижче.

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

--охоронний префікс префікс
додавати префікс до згенерованого захисту включення заголовка. Префікс перетворюється на верхній
регістр і символи, які є незаконними в назві макросу препроцесора, замінюються на
підкреслення. Якщо ця опція не вказана, то частина введення каталога
файл схеми використовується як префікс.

--hxx-суфікс Суфікс
Використовуйте надане Суфікс замість за замовчуванням .hxx побудувати назву
заголовний файл. Зауважте, що цей суфікс також використовується для створення імен заголовних файлів
відповідний включеним/імпортованим схемам.

--ixx-суфікс Суфікс
Використовуйте надане Суфікс замість за замовчуванням .ixx побудувати назву
вбудований файл.

--cxx-суфікс Суфікс
Використовуйте надане Суфікс замість за замовчуванням .cxx побудувати назву
вихідний файл.

--fwd-суфікс Суфікс
Використовуйте надане Суфікс замість за замовчуванням -fwd.hxx побудувати назву
файл прямої декларації.

--hxx-регулярний вираз regex
Використовуйте наданий вираз для створення імені заголовкового файлу. regex це
Perl-подібний регулярний вираз у формі /модель/заміна/. Зауважте, що це
вираз також використовується для побудови імен заголовних файлів, що відповідають
включені/імпортовані схеми. Дивіться також розділ REGEX ТА SHELL ЦИТАТИ нижче.

--ixx-регулярний вираз regex
Використовуйте наданий вираз для створення імені вбудованого файлу. regex це
Perl-подібний регулярний вираз у формі /модель/заміна/. Дивіться також REGEX
ТА ЦИТАННЯ ОБОЛОЧКИ розділ нижче.

--cxx-регулярний вираз regex
Використовуйте наданий вираз для створення імені вихідного файлу. regex це
Perl-подібний регулярний вираз у формі /модель/заміна/. Дивіться також REGEX
ТА ЦИТАННЯ ОБОЛОЧКИ розділ нижче.

--fwd-регулярний вираз regex
Використовуйте наданий вираз, щоб створити ім’я файлу пересилання оголошення.
regex це регулярний вираз, подібний до Perl у формі /модель/заміна/, Див. Також
розділ REGEX ТА SHELL нижче.

--hxx-пролог текст
Insert текст на початку заголовного файлу.

--ixx-пролог текст
Insert текст на початку вбудованого файлу.

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

--fwd-пролог текст
Insert текст на початку файлу прямої декларації.

--пролог текст
Insert текст на початку кожного згенерованого файлу, для якого немає файлу-
конкретний пролог.

--hxx-епілог текст
Insert текст в кінці заголовного файлу.

--ixx-епілог текст
Insert текст в кінці вбудованого файлу.

--cxx-епілог текст
Insert текст в кінці вихідного файлу.

--fwd-епілог текст
Insert текст в кінці файлу пересилання.

--епілог текст
Insert текст в кінці кожного згенерованого файлу, для якого не існує певного файлу
епілог.

--hxx-prologue-file файл
Вставте вміст файл на початку заголовного файлу.

--ixx-prologue-file файл
Вставте вміст файл на початку вбудованого файлу.

--cxx-prologue-file файл
Вставте вміст файл на початку вихідного файлу.

--fwd-prologue-file файл
Вставте вміст файл на початку файлу прямої декларації.

--пролог-файл файл
Вставте вміст файл на початку кожного створеного файлу, для якого
немає окремого файлу прологу.

--hxx-епілог-файл файл
Вставте вміст файл в кінці заголовного файлу.

--ixx-епілог-файл файл
Вставте вміст файл в кінці вбудованого файлу.

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

--fwd-епілог-файл файл
Вставте вміст файл в кінці файлу пересилання.

--епілог-файл файл
Вставте вміст файл в кінці кожного згенерованого файлу, для якого є
немає окремого файлу епілогу.

--експортний символ символ
Insert символ у місцях, де використовуються оператори контролю експорту/імпорту DLL
(__declspec(dllexport/dllimport)) необхідні.

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

--експорт-карти
Експортуйте карти підтримки поліморфізму з DLL Win32, до якої знаходиться цей згенерований код
розміщено. Це необхідно, коли ваша ієрархія типів розділена на кілька DLL
оскільки в іншому випадку кожна DLL матиме власний набір карт. У цій ситуації
згенерований код для DLL, який містить базові типи та/або групу підстановки
заголовки повинні бути скомпільовані з цією опцією та згенерованим кодом для всіх інших DLL
слід компілювати з --import-maps. Ця опція дійсна тільки разом з
--генерувати-поліморфний, XSD_NO_EXPORT макрос можна використовувати, щоб пропустити цей код
під час компіляції C++, що може бути корисно, якщо ви хочете використовувати те саме
згенерований код на кількох платформах.

--import-maps
Імпортувати карти підтримки поліморфізму в DLL Win32 або виконуваний файл, до якого це
згенерований код пов’язаний. Див --експорт-карти опціонна документація для деталей.
Ця опція дійсна тільки разом з --генерувати-поліморфний, XSD_NO_EXPORT
макрос можна використовувати, щоб пропустити цей код під час компіляції C++, що може бути корисно, якщо
ви хочете використовувати той самий згенерований код на кількох платформах.

--generate-dep
Генерувати зробити інформація про залежність. Ця опція запускає створення .d
файл, що містить залежності згенерованих файлів від основного файлу схеми як
а також усі файли схеми, які він включає/імпортує, транзитивно. Це
файл залежностей потім зазвичай включається в основний makefile для реалізації
автоматичне відстеження залежностей.

Зауважте також, що автоматичне генерування залежностей не підтримується у файлі-за-
режим типу (--файл за типом). У цьому випадку створюються всі згенеровані файли
з одним викликом компілятора і залежить від усіх схем. В результаті це є
легше встановити таку залежність вручну, можливо, за допомогою
--список-файлів* Варіанти.

--generate-dep-only
Генерувати зробити лише інформація про залежність.

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

--dep-target мета
Змініть ціль правила залежності. За замовчуванням він містить усі згенеровані
C++ файли, а також сам файл залежностей без будь-яких префіксів каталогів. Якщо
вам потрібно кілька цілей, то ви можете вказати їх як одну пробілу
розділений аргумент або ви можете повторити цю опцію кілька разів.

--деп-суфікс Суфікс
Використовуйте надане Суфікс замість за замовчуванням .d побудувати назву
файл залежностей.

--dep-регулярний вираз regex
Використовуйте наданий вираз для створення імені файлу залежностей. regex is
регулярний вираз, подібний до Perl у формі /модель/заміна/. Див. Також
Розділ регулярних виразів і цитування оболонки нижче.

--disable-попередження попереджати
Вимкнути друк попередження з ідентифікатором попереджати. Якщо всі тоді вказується для ідентифікатора попередження
всі попередження вимкнено.

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

Семантика надання параметрів у файлі еквівалентна надання такої ж
набір параметрів у тому самому порядку в командному рядку в точці, де
--файл параметрів вказано опцію, за винятком того, що екранування оболонки та введення в лапки є
не вимагається. Ви можете повторити цю опцію, щоб вказати більше одного файлу параметрів.

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

--sloc-ліміт Num
Перевірте, чи не відповідає кількість згенерованих фізичних вихідних рядків коду (SLOC).
перевищувати Num.

--проприетарна ліцензія
Вкажіть, що згенерований код ліцензований за власною ліцензією замість
GPL.

--користувацькі літерали файл
Завантажте користувацький рядок XML у відображення літералів C++ файл. Цей механізм може бути
корисно, якщо ви використовуєте спеціальне кодування символів і деякі рядки у вашому
схеми, наприклад назви елементів/атрибутів або значення перерахування, містять не-
Символи ASCII. У цьому випадку вам потрібно буде надати спеціальне відображення на C++
літералів для таких рядків. Формат цього файлу вказано в замовлення
literals.xsd Файл XML-схеми, який можна знайти в каталозі документації.

--reserve-anonymous
Збережіть анонімні типи. За замовчуванням анонімним типам автоматично присвоюються імена
назви, отримані від вкладених елементів/атрибутів. Тому що відображення реалізовано
за допомогою цього компілятора вимагають, щоб усі типи були названі, ця опція корисна, лише якщо ви
хочете переконатися, що ваші схеми не мають анонімних типів.

--показати-анонімно
Показати елементи та атрибути анонімних типів. Цей варіант тільки робить
сенс разом з --reserve-anonymous варіант.

--анонімний-регулярний вираз regex
додавати regex до списку регулярних виразів, які використовуються для отримання імен для анонімних
типи із вкладених атрибутів/елементів. regex є звичайним Perl-подібним
вираз у формі /модель/заміна/. Будь-який символ можна використовувати як a
роздільник замість /. Екранування символу роздільника в модель or
заміна не підтримується.

Усі регулярні вирази поміщаються в стек з останнім зазначеним
вираз, що розглядається першим. Використовується перший вдалий матч. Звичайний
вирази застосовуються до рядка у формі

ім'я файлу простору імен xpath

Наприклад:

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

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

Наприклад, наступний вираз означає, що всі похідні імена починаються з
заголовні букви. Це може бути корисно, коли для вашої конвенції щодо імен вимагається тип
назви, які починаються з великої літери:

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

Дивіться також розділ REGEX ТА SHELL ЦИТАТИ нижче.

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

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

--карта розташування http://example.com/foo.xsd=foo.xsd

--розташування-регулярний вираз regex
додавати regex до списку регулярних виразів, які використовуються для відображення розташування схеми
зазначені в схемі XML, включають або імпортують елементи. regex є Perl-подібним
регулярний вираз у формі /модель/заміна/. Будь-який символ можна використовувати як
замість роздільника /. Екранування символу роздільника в модель or
заміна не підтримується. Усі регулярні вирази поміщаються в стек
з останнім вказаним виразом, що розглядається першим. Перший матч, який вдався
використовується.

Наприклад, наступний вираз відображає розташування URL-адрес у формі
http://example.com/foo/bar.xsd до локальних файлів у формі bar.xsd:

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

Дивіться також розділ REGEX ТА SHELL ЦИТАТИ нижче.

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

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

--тип-файл-регулярний вираз regex
додавати regex до списку регулярних виразів, які використовуються для перекладу імен типів у файл
імена, коли --файл за типом опція вказана. regex є звичайним Perl-подібним
вираз у формі /модель/заміна/. Будь-який символ можна використовувати як a
роздільник замість /. Екранування символу роздільника в модель or
заміна не підтримується. Усі регулярні вирази поміщаються в стек
з останнім вказаним виразом, що розглядається першим. Перший матч, який вдався
використовується. Регулярні вирази застосовуються до рядка у формі

простору імен ім'я типу

Наприклад, такий тип карти виразів Foo що визначено в
http://example.com/bar простір імен до імені файлу бар-фу:

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

Дивіться також розділ REGEX ТА SHELL ЦИТАТИ нижче.

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

--schema-file-regex regex
додавати regex до списку регулярних виразів, які використовуються для перекладу імен файлів схеми
коли --файл за типом опція вказана. regex є звичайним Perl-подібним
вираз у формі /модель/заміна/. Будь-який символ можна використовувати як a
роздільник замість /. Екранування символу роздільника в модель or
заміна не підтримується. Усі регулярні вирази поміщаються в стек
з останнім вказаним виразом, що розглядається першим. Перший матч, який вдався
використовується. Регулярні вирази застосовуються до абсолютного шляху файлової системи a
файл схеми, а результат, включаючи частину каталогу, якщо є, використовується для отримання
#включати шляхи директив, а також згенеровані шляхи файлів C++. Цей варіант,
разом з --тип-файл-регулярний вираз в першу чергу корисні для розміщення згенерованих файлів
підкаталогів або для вирішення конфліктів імен файлів.

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

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

Дивіться також розділ REGEX ТА SHELL ЦИТАТИ нижче.

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

--fat-type-file
Згенеруйте код, що відповідає глобальним елементам, у файли типу замість схеми
файли, коли --тип-файл-регулярний вираз вказана опція. Цей варіант в першу чергу
корисно під час спроби мінімізувати кількість об’єктного коду, пов’язаного з файлом
виконуваний шляхом упаковки скомпільованого згенерованого коду в статичну (архівну) бібліотеку.

--список файлів файл
Напишіть список згенерованих файлів C++ до файл. Ця опція в першу чергу корисна в
режим компіляції файл за типом (--файл за типом), щоб створити список згенерованих C++
файли, наприклад, як фрагмент makefile.

--файл-список-пролог текст
Insert текст на початку списку файлів. Для зручності всі випадки
\n послідовність символів у текст замінюються новими рядками. Цей варіант може, для
Наприклад, використовуватиметься для призначення згенерованого списку файлів змінній makefile.

--файл-список-епілог текст
Insert текст в кінці списку файлів. Для зручності всі випадки
\n послідовність символів у текст замінюються новими рядками.

--file-list-delim текст
Розмежуйте імена файлів, записані до списку файлів за допомогою текст замість нових рядків. Як
зручність, всі випадки \n послідовність символів у текст замінюються на
нові рядки.

cxx-дерево команда опції
--генерувати-поліморфний
Створення коду з урахуванням поліморфізму. Вкажіть цей параметр, якщо ви використовуєте заміну
групи або xsi: тип. Використовувати --поліморфного типу or --поліморфний-тип-все варіант до
вкажіть, які ієрархії типів є поліморфними.

--поліморфного типу тип
Вкажіть це тип є коренем ієрархії поліморфних типів. Компілятор може
часто автоматично визначають, які типи є поліморфними на основі заміни
групові декларації. Однак вам може знадобитися використовувати цю опцію, якщо ви не використовуєте її
групи заміщення або якщо групи заміщення визначені в іншій схемі. ти
потрібно вказати цей параметр під час компіляції кожного файлу схеми, на який посилається тип.
Команда тип Аргумент — це ім'я типу XML-схеми, яке можна додатково уточнити
простір імен у простору імен#ім'я формі.

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

--поліморфна пластина Num
Вкажіть поліморфну ​​карту, на якій має зареєструватися згенерований код. Це
функціональність в першу чергу корисна для відокремлення кількох схем, які визначають
однакові поліморфні типи.

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

Команда тип Аргумент — це ім'я типу XML-схеми, яке можна додатково уточнити
простір імен у простору імен#ім'я форму. Зверніть увагу також, що вам потрібно буде вказати
цей параметр під час компіляції кожного файлу схеми, який має інші впорядковані типи
з цього типу.

--упорядкований-тип-похідний
Автоматично обробляти типи, похідні від впорядкованих основ, як також упорядковані. Це
в першу чергу корисно, якщо ви хочете мати можливість перебирати весь вміст
за допомогою контейнера замовлення вмісту.

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

--ordered-type-all
Вкажіть, що порядок елементів у всіх типах є значущим.

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

--generate-serialization
Створення функцій серіалізації. Функції серіалізації перетворюють об'єктну модель
повернутися до XML.

--generate-ostream
Згенерувати оператори вставки ostream (оператор<) для згенерованих типів. Це дозволяє
один для легкого друку фрагмента або всієї об'єктної моделі для налагодження або реєстрації.

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

--генерувати-порівняння
Створити оператори порівняння (оператор == та оператор!=) для складних типів.
Порівняння виконується за членами.

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

--generate-from-base-ctor
Створіть конструктори, які очікують екземпляра базового типу, за яким слідують усі
необхідні члени.

--suppress-присвоєння
Придушити генерацію операторів присвоєння копій для складних типів. Якщо це
якщо вказано параметр, оголошуються оператори присвоєння копій для таких типів
приватні та залишені нереалізованими.

--створити-від’єднати
Створення функцій від’єднання для необхідних елементів і атрибутів. Від’єднати функції
для необов'язкових і послідовних можливостей надаються відповідними контейнерами.
Ці функції, наприклад, дозволяють переміщати піддерева в об’єктній моделі
або в межах одного дерева, або між різними деревами.

--generate-wildcard
Створення засобів доступу та модифікаторів, а також синтаксичний аналіз і код серіалізації для XML
Підстановкові знаки схеми (будь-який та anyAttribute). Вміст XML, який відповідає символам підстановки
представлені у вигляді фрагментів DOM. Зауважте, що вам потрібно ініціалізувати середовище виконання Xerces-C++
якщо ви використовуєте цю опцію.

--generate-any-type
Витяг і збереження вмісту XML-схеми будь-який тип введіть як фрагмент DOM. Примітка
що вам потрібно ініціалізувати середовище виконання Xerces-C++, якщо ви використовуєте цю опцію.

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

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

--generate-forward
Створіть окремий файл заголовка з оголошеннями пересилання для наявних типів
генерується.

--suppress-parsing
Придушити генерацію функцій і конструкторів аналізу. Використовуйте цю опцію
щоб зменшити розмір генерованого коду, коли аналіз XML не потрібен.

--generate-element-type
Генеруйте типи замість функцій розбору та серіалізації для кореневих елементів.
Це в першу чергу корисно, щоб розрізняти об’єктні моделі з тим самим кореневим типом, але
з різними кореневими елементами.

--generate-element-map
Створіть карту кореневого елемента, яка дозволяє рівномірно аналізувати та серіалізувати
кілька кореневих елементів. Ця опція дійсна тільки разом з --generate-element-
тип.

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

--omit-default-attributes
Опустіть атрибути зі значеннями за замовчуванням і фіксованими значеннями з серійних XML-документів.

--тип-найменування стиль
Укажіть конвенцію щодо найменування типів, яку слід використовувати у згенерованому коді. Дійсний
стилі є knr (За замовчуванням), ucc та Ява. Дивіться розділ УМОВИ НАЙМЕНУВАННЯ нижче
для отримання додаткової інформації.

--іменування функцій стиль
Вкажіть умову найменування функцій, яку слід використовувати у згенерованому коді.
Допустимі стилі є knr (За замовчуванням), lcc та Ява. Дивіться розділ УМОВИ НАЙМЕНУВАННЯ
нижче для отримання додаткової інформації.

--тип-регулярний вираз regex
додавати regex до списку регулярних виразів, які використовуються для перекладу типу XML Schema
імена до імен типів C++. Додаткову інформацію дивіться у розділі «УГОДНЯ ПРО НАЙМЕНУВАННЯ» нижче
інформація.

--accessor-regex regex
додавати regex до списку регулярних виразів, які використовуються для перекладу назв XML-схем
елементів/атрибутів імен функцій доступу C++. Дивіться УМОВНІСТЬ НАЙМЕНУВАННЯ
розділ нижче для отримання додаткової інформації.

--регулярний вираз з одним доступом regex
додавати regex до списку регулярних виразів, які використовуються для перекладу назв XML-схем
елементи/атрибути з потужністю один до імен функцій доступу C++. Див
Додаткову інформацію наведено в розділі «УМОВНІ НАЙМЕНИ».

--opt-accessor-regex regex
додавати regex до списку регулярних виразів, які використовуються для перекладу назв XML-схем
елементи/атрибути з потужністю, необов’язковою для імен функцій доступу C++. Побачити
додаткову інформацію можна знайти в розділі УМОВИ НАЙМЕНУВАННЯ нижче.

--seq-accessor-regex regex
додавати regex до списку регулярних виразів, які використовуються для перекладу назв XML-схем
елементи/атрибути з послідовністю потужності до імен функцій доступу C++. Побачити
додаткову інформацію можна знайти в розділі УМОВИ НАЙМЕНУВАННЯ нижче.

--модифікатор-регулярний вираз regex
додавати regex до списку регулярних виразів, які використовуються для перекладу назв XML-схем
елементи/атрибути імен функцій-модифікаторів C++. Дивіться УМОВНІСТЬ НАЙМЕНУВАННЯ
розділ нижче для отримання додаткової інформації.

--one-modifier-regex regex
додавати regex до списку регулярних виразів, які використовуються для перекладу назв XML-схем
елементи/атрибути з потужністю один до імен функцій модифікатора C++. Див
Додаткову інформацію наведено в розділі «УМОВНІ НАЙМЕНИ».

--opt-modifier-regex regex
додавати regex до списку регулярних виразів, які використовуються для перекладу назв XML-схем
елементи/атрибути з потужністю, необов’язковою для імен функцій модифікатора C++. Побачити
додаткову інформацію можна знайти в розділі УМОВИ НАЙМЕНУВАННЯ нижче.

--seq-modifier-regex regex
додавати regex до списку регулярних виразів, які використовуються для перекладу назв XML-схем
елементи/атрибути з послідовністю потужності до імен функцій модифікатора C++. Побачити
додаткову інформацію можна знайти в розділі УМОВИ НАЙМЕНУВАННЯ нижче.

--парсер-регулярний вираз regex
додавати regex до списку регулярних виразів, які використовуються для перекладу елемента XML Schema
імена для розбору імен функцій C++. Перегляньте розділ УМОВИ НАЙМЕНУВАННЯ нижче
більше інформації.

--серіалізатор-регулярний вираз regex
додавати regex до списку регулярних виразів, які використовуються для перекладу елемента XML Schema
імена до імен функцій серіалізації C++. Дивіться розділ УМОВИ НАЙМЕНУВАННЯ нижче
для отримання додаткової інформації.

--const-регулярний вираз regex
додавати regex до списку регулярних виразів, які використовуються для перекладу XML-схеми
імена до імен констант C++. Додаткову інформацію дивіться у розділі «УГОДНЯ ПРО НАЙМЕНУВАННЯ» нижче
інформація.

--перелічувач-регулярний вираз regex
додавати regex до списку регулярних виразів, які використовуються для перекладу XML-схеми
значення перерахування до імен перерахувачів C++. Дивіться розділ УМОВИ НАЙМЕНУВАННЯ нижче
для отримання додаткової інформації.

--тип-тип-регулярний вираз regex
додавати regex до списку регулярних виразів, які використовуються для перекладу елемента XML Schema
імена до імен типів елементів C++. Додаткову інформацію дивіться у розділі УМОВИ НАЙМЕНУВАННЯ нижче
інформація.

--trace-регулярний вираз
Простежте процес застосування регулярних виразів, зазначених у імені
варіанти трансформації. Використовуйте цей параметр, щоб дізнатися, чому потрібні регулярні вирази
не робіть того, чого очікував від них.

--корінь-елемент-перший
Розглядайте лише перший глобальний елемент як корінь документа. За замовчуванням все глобально
елементи вважаються коренями документа.

--корінь-елемент-останній
Розглядайте лише останній глобальний елемент як корінь документа. За замовчуванням все глобально
елементи вважаються коренями документа.

--корінь-елемент-все
Розглядайте всі глобальні елементи як корені документа. Це поведінка за замовчуванням. За
явно вказавши цю опцію, ви можете придушити попередження, яке видається, якщо
визначено більше одного глобального елемента.

--корінь-елемент-немає
Не розглядайте будь-які глобальні елементи як корені документа. За замовчуванням усі глобальні елементи
вважаються коренями документа.

--корінь-елемент елемент
Тільки лікувати елемент як корінь документа. Повторіть цей параметр, щоб указати більше одного
кореневий елемент.

--користувацького типу карта
Використовуйте користувацький тип C++ замість згенерованого класу. The карта аргумент знаходиться в
форма ім'я[=тип[/база]], Де ім'я є ім’ям типу, як визначено в XML Schema and
тип це ім'я типу C++, яке слід використовувати замість нього. Якщо тип немає або
порожній, тоді передбачається, що настроюваний тип має те саме ім'я і буде визначено в
той самий простір імен, що й створений клас. Якщо база тоді вказується
згенерований клас все ще створюється, але з такою назвою.

--користувацький-тип-регулярний вираз regex
Використовуйте власні типи C++ замість згенерованих класів. The regex аргумент знаходиться в
форма /ім'я-пат/[тип-під/[база-під/]], Де ім'я-пат є шаблоном регулярного виразу, який буде
відповідати іменам типів, як визначено в схемі XML і тип-під є типом C++
заміна імені, яку слід використовувати замість неї. Якщо тип-під немає або його
Підстановка призводить до порожнього рядка, тоді вважається, що користувацький тип має
те саме ім’я і буде визначено в тому самому просторі імен, що й створений клас.
If база-під присутній, і його заміна призводить до непорожнього рядка, а потім
згенерований клас все ще генерується, але з результатом цієї заміни як його
ім'я. Шаблон і заміни у форматі регулярного виразу Perl. Побачити
також розділ REGEX ТА SHELL ЦИТАТИ нижче.

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

--частини-суфікс Суфікс
Скористайтесь Суфікс замість стандартного '-', щоб відокремити назву файлу від частини
номер.

cxx-парсер команда опції
--тип-карта файл карти
Читайте інформацію про відображення типу XML-схеми в C++ файл карти. Повторіть цю опцію до
вкажіть кілька типів карт. Типи карт розглядаються в порядку появи та порядку
використовується перший збіг. За замовчуванням відображаються всі визначені користувачем типи анулювати. Дивіться
Розділ TYPE MAP нижче для отримання додаткової інформації.

--xml-парсер аналізатор
Скористайтесь аналізатор як базовий синтаксичний аналізатор XML. Допустимі значення є xerces для Xerces-C++
(за замовчуванням) і емігрант для експат.

--generate-validation
Згенеруйте код перевірки. Код перевірки ("ідеальний аналізатор") гарантує це
документи екземпляра відповідають схемі. Код перевірки генерується за замовчуванням
коли вибраний базовий синтаксичний аналізатор XML не перевіряється (емігрант).

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

--генерувати-поліморфний
Створення коду з урахуванням поліморфізму. Вкажіть цей параметр, якщо ви використовуєте заміну
групи або xsi: тип.

--generate-noop-impl
Згенеруйте зразок реалізації синтаксичного аналізатора, який нічого не робить (без операції). The
зразок реалізації може бути заповнений спеціальним кодом програми. Для
введіть файл у форму name.xsd цей параметр запускає створення двох
додаткові файли C++ у формі: name-pimpl.hxx (заголовок реалізації синтаксичного аналізатора
файл) і name-pimpl.cxx (джерельний файл реалізації синтаксичного аналізатора).

--generate-print-impl
Згенеруйте зразок реалізації синтаксичного аналізатора, який друкує дані XML у STDOUT. Для
введіть файл у форму name.xsd цей параметр запускає створення двох
додаткові файли C++ у формі: name-pimpl.hxx (заголовок реалізації синтаксичного аналізатора
файл) і name-pimpl.cxx (джерельний файл реалізації синтаксичного аналізатора).

--generate-test-driver
Створіть тестовий драйвер для реалізації зразка синтаксичного аналізатора. Для вхідного файлу в
форма name.xsd цей параметр запускає створення додаткового файлу C++
форма назва драйвера.cxx.

--примусово перезаписати
Примусове перезапис існуючих файлів реалізації та тестового драйвера. Використовуй це
опцію, лише якщо ви не проти втратити зміни, внесені в вибірку
файли реалізації або тестового драйвера.

--корінь-елемент-перший
Вкажіть, що першим глобальним елементом є корінь документа. Ця інформація є
використовується для створення тестового драйвера для зразка реалізації.

--корінь-елемент-останній
Вкажіть, що останнім глобальним елементом є корінь документа. Ця інформація є
використовується для створення тестового драйвера для зразка реалізації.

--корінь-елемент елемент
Вкажіть це елемент є корінь документа. Ця інформація використовується для створення
тестовий драйвер для зразка реалізації.

--суфікс типу скеля Суфікс
Використовуйте надане Суфікс замість за замовчуванням _pskel побудувати назви
згенеровані скелети парсера.

--skel-file-суфікс Суфікс
Використовуйте надане Суфікс замість за замовчуванням -пскель побудувати назви
згенеровані скелетні файли аналізатора.

--impl-type-suffix Суфікс
Використовуйте надане Суфікс замість за замовчуванням _pimpl побудувати назви
Реалізації аналізатора для вбудованих типів схем XML, а також зразків аналізатора
реалізації.

--impl-файл-суфікс Суфікс
Використовуйте надане Суфікс замість за замовчуванням -прищ побудувати назви
згенеровані зразки файлів реалізації аналізатора.

НАЙМЕНУВАННЯ КОНВЕНЦІЯ


Компілятору можна доручити використовувати певну конвенцію щодо імен у згенерованому файлі
код. За допомогою --тип-найменування та
--іменування функцій варіанти. Користувацька конвенція щодо імен може бути досягнута за допомогою --тип-
regex, --accessor-regex, --регулярний вираз з одним доступом, --opt-accessor-regex, --seq-accessor-regex,
--модифікатор-регулярний вираз, --one-modifier-regex, --opt-modifier-regex, --seq-modifier-regex,
--парсер-регулярний вираз, --серіалізатор-регулярний вираз, --const-регулярний вираз, --перелічувач-регулярний вираз та --тип-елемента-
regex Варіанти.

Команда --тип-найменування Параметр визначає конвенцію, яку слід використовувати для іменування C++
типи. Можливі значення для цієї опції knr (За замовчуванням), ucc та Ява, knr значення
(означає K&R) означає стандартну угоду про найменування в нижньому регістрі з підкресленням
використовується як роздільник слів, наприклад: foo, foo_bar. The ucc (означає верхній верблюд-
випадок) і Ява цінує синоніми для того самого договору про іменування, де перша літера
кожне слово в назві пишеться з великої літери, наприклад: Foo, FooBar.

Аналогічним чином, --іменування функцій Параметр визначає конвенцію, для якої слід використовувати
іменування функцій C++. Можливі значення для цієї опції knr (За замовчуванням), lcc та Ява.
Команда knr value (розшифровується як K&R) означає стандартну конвенцію про найменування в нижньому регістрі
символ підкреслення, що використовується як роздільник слів, наприклад: foo(), foo_bar(). The lcc значення
(означає нижній регістр верблюда) означає умову найменування, де перша літера кожного
слово, крім першого, пишеться з великої літери, наприклад: foo(), fooBar(). The Ява іменування
Конвенція подібна до нижнього регістру, за винятком функцій доступу
з префіксом get, функції модифікатора з префіксом set, функції розбору
з префіксом розбору, а функції серіалізації мають префікс серіалізації, наприклад:
getFoo(), setFooBar(), parseRoot(), serializeRoot().

Зауважте, що правила імен, зазначені в --тип-найменування та --іменування функцій
Параметри виконують лише обмежені перетворення імен, які походять зі схеми в
форма назв типу, атрибута та елемента. Іншими словами, щоб отримати стабільні результати,
ваші схеми повинні відповідати тому, що ви хотіли б мати
у згенерованому коді. Як варіант, ви можете використовувати --*-регулярний вираз варіанти (обговорюються нижче)
щоб виконати подальші перетворення імен, які походять із схеми.

Команда --тип-регулярний вираз, --accessor-regex, --регулярний вираз з одним доступом, --opt-accessor-regex, --seq-
регулярний вираз доступу, --модифікатор-регулярний вираз, --one-modifier-regex, --opt-modifier-regex, --seq-
модифікатор-регулярний вираз, --парсер-регулярний вираз, --серіалізатор-регулярний вираз, --const-регулярний вираз, --перелічувач-регулярний вираз та
--тип-тип-регулярний вираз Параметри дозволяють вказати додаткові регулярні вирази для кожного імені
категорію на додаток до попередньо визначеного набору, який додається залежно від --тип-найменування
та --іменування функцій варіанти. Вирази, які подаються разом із --*-регулярний вираз опції
оцінюються перед будь-якими попередньо визначеними виразами. Це дозволяє вибірково перевизначати
деякі або всі попередньо визначені перетворення. Під час налагодження власних виразів це так
часто корисно побачити, які вирази відповідають іменам. The --trace-регулярний вираз варіант
дозволяє простежити процес застосування регулярних виразів до імен.

Значення для --*-регулярний вираз options має бути регулярним виразом, подібним до perl у формі
/модель/заміна/. Як роздільник замість символу можна використовувати будь-який символ /. Втеча
символу роздільника в модель or заміна не підтримується. Все звичайне
вирази для кожної категорії поміщаються в специфічний для категорії стек разом з останньою
зазначений вираз, що розглядається першим. Використовується перший вдалий матч. Для
--регулярний вираз з одним доступом (аксесури з потужністю один), --opt-accessor-regex (аксесуари
з необов'язковим числом), і --seq-accessor-regex (аксесури з послідовністю кількості)
категорії --accessor-regex вирази використовуються як запасний варіант. Для --один-
модифікатор-регулярний вираз, --opt-modifier-regex та --seq-modifier-regex категорії --модифікатор-
regex вирази використовуються як запасний варіант. Для --тип-тип-регулярний вираз категорія
--тип-регулярний вираз вирази використовуються як запасний варіант.

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

[простору імен ]ім'я[,ім'я][,ім'я][,ім'я]

Вирази імені типу елемента (--тип-тип-регулярний вираз), ефективний лише тоді, коли
--generate-element-type вказано параметр, оцінюються за рядком імені, який має
такий формат:

простору імен ім'я

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

http://example.com/hello тип

Foo

foo,ітератор

foo, const, iterator

Наступний набір попередньо визначених регулярних виразів використовується для перетворення імен типів, коли
вибрано угоду про найменування у верхньому регістрі:

/(?:[^ ]* )?([^,]+)/\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/

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

/(.+)/parse\u$1/

Категорія const використовується для створення імен констант C++ для елемента/підстановки/тексту
ідентифікатори вмісту в упорядкованих типах.

Дивіться також розділ REGEX ТА SHELL ЦИТАТИ нижче.

TYPE MAP


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

Компілятор має набір попередньо визначених правил зіставлення, які відображають вбудовані типи схем XML до
відповідні типи C++ (обговорюються нижче) та всі інші типи анулювати. Надавши власні
карти типів, ви можете замінити ці попередньо визначені правила. Формат файлу карти типу
представлені нижче:

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

обидві простір імен схеми та типу схеми є шаблонами регулярних виразів while cxx-простір імен, cxx-ret-
тип та cxx-arg-type є замінами шаблону регулярного виразу. Усі імена можуть бути необов’язковими
укладені в " ", наприклад, щоб включити пробіли.

простір імен схеми визначає простір імен XML Schema. За бажанням cxx-простір імен має префікс до
кожне ім'я типу C++ в цій декларації простору імен. тип cxx-ret це назва типу C++, яка
використовується як тип повернення для пост_* функції. За бажанням cxx-arg-type є аргументом
тип для функцій зворотного виклику, що відповідають елементам і атрибутам цього типу. Якщо cxx-
arg-тип не вказано, за замовчуванням тип cxx-ret if тип cxx-ret закінчується на * or &
(тобто це вказівник або посилання) і сопзЬ тип 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 Schema на основі рядків відображаються на будь-який
std :: рядок or std::wstring залежно від типу символу, вибраного за допомогою --char-тип
опція (бак за замовчуванням).

простору імен http://www.w3.org/2001/XMLSchema
{
логічне значення bool bool;

байт "signed char" "signed char";
unsignedByte "unsigned char" "unsigned char";

короткий короткий короткий;
unsignedShort "непідписаний короткий" "непідписаний короткий";

int int int;
unsignedInt "unsigned int" "unsigned int";

довгий «довгий довгий» «довгий довгий»;
unsignedLong "unsigned long long" "unsigned long long";

integer "long long" "long long";

negativeInteger "long long" "long long";
nonPositiveInteger "long long" "long long";

positiveInteger "unsigned long long" "unsigned long long";
nonNegativeInteger "unsigned long long" "unsigned long long";

поплавок поплавок поплавок;
подвійний подвійний подвійний;
десятковий подвійний подвійний;

рядок 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 ;
hexBinary std::auto_ptr
std::auto_ptr ;

дата xml_schema::date;
dateTime xml_schema::date_time;
тривалість 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;
}

Останнє попередньо визначене правило відображає все, що не було відображено попередніми правилами анулювати:

простір імен .*
{
.* порожнеча порожнеча;
}

Коли ви надаєте власні карти типів із --тип-карта варіант, вони оцінюються першими.
Це дозволяє вибірково замінювати попередньо визначені правила.

REGEX І SHELL ЦИТАТИ


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

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

Крім того, ви можете зберегти параметри регулярного виразу у файл, по одному параметру на рядок,
і використовуйте цей файл із файлом --файл параметрів варіант. З таким підходом вам не потрібно
турбуватися про цитування оболонки.

ДІАГНОСТИКА


Якщо вхідний файл не є дійсним визначенням XML-схеми W3C, xsdcxx видасть діагностику
повідомлення до STDERR і вийти з ненульовим кодом виходу.

Використовуйте xsdcxx онлайн за допомогою служб onworks.net


Безкоштовні сервери та робочі станції

Завантажте програми для Windows і Linux

Команди Linux

Ad