CodeSynthesis C ++命名空间'::'中的树'时间'没有命名类型

时间:2014-08-25 08:12:01

标签: c++ xml xsd codesynthesis

我正在尝试使用CodeSynthesis C ++ / Tree将xsd转换为C ++类。 在xsd中,我有一个名为time的元素如下所示:

<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”或其他任何内容,它将编译正常。这种行为背后可能是什么原因? 非常感谢!

2 个答案:

答案 0 :(得分:0)

这是因为::timestd::time相同。

答案 1 :(得分:0)

好的,现在我在文档上阅读了更多内容,它说

&#34;没有命名空间的词汇表被映射到全局范围。通过使用XML命名空间的空名称,可以使用上述选项更改此选项:&#34;

因此解决方案是在将xsd转换为C ++文件时添加以下内容

--namespace-map =cs