1

我正在尝试使用 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' 或其他任何名称,它会编译得很好。这种行为背后的原因可能是什么?非常感谢!

4

2 回答 2

0

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

“没有命名空间的词汇表被映射到全局范围。这也可以通过使用 XML 命名空间的空名称来使用上述选项进行更改:”

所以解决办法就是在xsd转C++文件的时候加上以下

--namespace-map =cs
于 2014-09-12T00:48:52.323 回答
0

这是因为::time与 相同std::time

于 2014-08-25T08:15:51.313 回答