CodeSynthesis C ++ Tree ‘time’ в пространстве имен ‘::’ не называет тип

Я пытаюсь использовать CodeSynthesis C ++ / Tree для перевода xsd в классы C ++.
В XSD у меня есть элемент с именем время выглядит так:

<xs:element name="time">
<xs:complexType>
<xs:attribute name="seconds" use="required" type="xs:double"/>
... other attributes
</xs:complexType>

В преобразованном заголовке C ++ это определяется как:

typedef ::time time_type;

и при компиляции выдает сообщение об ошибке

'time' in namespace '::' does not name a type

Однако, если я изменю имя элемента на «times» или что-то еще, он скомпилируется нормально. Что может быть причиной такого поведения?
Большое спасибо!

1

Решение

Это потому что ::time такой же как std::time.

0

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

Хорошо, теперь я прочитал немного больше о документации, там написано

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

Таким образом, решение заключается в добавлении следующего при преобразовании файлов xsd в C ++

--namespace-map =cs
0