Классы, созданные с помощью XML Generator Tool, не содержатся в указанном пространстве имен - PullRequest
1 голос
/ 02 августа 2011

У меня та же проблема, что описана в этой проблеме подключения

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

"XSD-файл с использованием инструмента XML Data Generator Tool в проекте C ++ / CLI создаст набор классов, которые НЕ находятся в пространстве имен. Классы должны находиться в пространстве имен, указанном свойством Namespace инструмента XML Data Generator Tool . Это было обнаружено при обновлении проекта 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 ]

1 голос
/ 04 января 2012

для xsd.exe параметр /n: используется для указания пространства имен.Не ставьте пробел между параметром и значением.

Пример:

xsd myschema.xsd /c /n:MyNamespace

0 голосов
/ 29 августа 2013

Visual Studio использует MSBuild для построения целей, указанных в решении. Кажется, они отказываются от C ++ в пользу VB и C #. VS 2010 использует настройки в

C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets`

файл. В разделе XSD отсутствует запись, а именно «Пространство имен». Я установил мой на

Namespace ="%(Xsd.Namespace)"

и скомпилированные xsd и классы теперь находятся в пространстве имен, которое я указал на страницах свойств проектов.

...