如何防止xsd生成的类被命名为“NewDataSet”?

时间:2012-09-13 07:05:47

标签: xml c#-4.0 ado.net dataset

我正在创建一个类库,其中包含从客户端xml文件生成的多个数据集。

我将示例xml文件拖到VStudio中并创建.xsd文件,将它们添加到项目中并将工具设置为MSDataSetGenerator然后(在获得第一个构建错误之后)发现所有生成的类都被称为NewDataSet。我通过在xsd文件的属性对话框中设置工具命名空间来避免构建错误。但是,消耗多个数据集的应用程序代码变得很难看,因为如果没有“NewDataSet”变得模糊,就不能使用“using”。此外,类名“NewDataSet”并没有什么用处。

有没有办法覆盖/影响生成的类的命名?

3 个答案:

答案 0 :(得分:7)

我已经看到了这个,并解决了这个问题:

将此添加到您的架构标记...“xmlns:msdata="urn:schemas-microsoft-com:xml-msdata

例如,xsd的前两行可能如下所示:

<?xml version="1.0" encoding="utf-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">

你的xsd可能会将所有内容包装在一个元素中,其名称就是你想要的类名...所以这样做:

<xs:element name="YOUR_CLASSNAME" msdata:IsDataSet="true">

这大致是我为使其发挥作用而做的。

答案 1 :(得分:3)

您可以通过设置id元素的schema属性来更改生成类的名称。

enter image description here

答案 2 :(得分:1)

VS 2019

更安全的变体是通过VS更改生成的类名称。打开对应的XSD文件,并更改方案的属性Name(默认为NewDataSet)。 另外,您可以通过通用文本编辑器进行更改,但是必须在文件中找到所有条目“ NewDataSet”(一个以上)。