XML Data Generator Tool生成的类不包含在指定的命名空间中

时间:2011-08-02 18:12:28

标签: namespaces xsd c++-cli xsd.exe

我遇到与此连接问题

中描述的问题相同的问题

http://connect.microsoft.com/VisualStudio/feedback/details/577382/classes-generated-by-xml-data-generator-tool-are-not-contained-within-the-specified-namespace

“在C ++ / CLI项目中使用XML数据生成器工具的XSD文件将创建一组不在命名空间内的类。这些类应该在XML数据生成器工具的Namespace属性指定的命名空间内这是在将VS2008项目升级到VS2010时检测到的。“

我看到/ namespace选项位于XML Data Generator工具的命令行上,但仍然没有写入命名空间。

在VS 2008中

// This source code was auto-generated by xsd, Version=2.0.50727.3038.
// 
namespace IOLib {
    using namespace System;
    ref class CPDS;

在VS 2010中

// This source code was auto-generated by xsd, Version=4.0.30319.1.
// 
using namespace System;
ref class CPDS;

是否有办法强制xsd工具也可以编写命名空间。

2 个答案:

答案 0 :(得分:1)

对于xsd.exe,参数/n:用于指定命名空间。不要在参数和值之间放置空格。

示例:

xsd myschema.xsd /c /n:MyNamespace

答案 1 :(得分:0)

Visual Studio使用MSBuild构建解决方案中指定的目标。他们似乎放弃了C ++,转而支持VB和C#。 VS 2010使用

中的设置
C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets`

文件。 XSD部分缺少一个条目,即“命名空间”。我把我设置为

Namespace ="%(Xsd.Namespace)"

并编译了xsd,这些类现在位于我在projects属性页中指定的命名空间中。