问题标签 [xsd.exe]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
993 浏览

c# - XML complexType 元素以“XmlElement”结尾

在我的 XSD 中,我有类似的东西:

因此,使用 XSD 到 C# 工具(xsd.exe 或 Xsd2Code),这会生成 2 个类(commandType 和 loginType)。但是,如果我想 dto 提交注销命令,XML 需要如下所示:

但是,我没有 -任何相当于- logoutType。在生成的类中,如果我想使用注销,那么 commandType 需要一个“XmlElement”。

假设 XSD 到 C# 工具不能为我生成这个类,你如何编写一个基本上归结为只是序列化并且是 XmlElement 类型的类,以便它适合 commandType?

(注意:我无法控制 XSD,否则我会更改它以包含新的 complexType)

0 投票
5 回答
20103 浏览

c# - svcutil.exe 是 xsd.exe 的替代品吗?

我正在使用 xsd.exe 从 .xsd 文件生成一些 c# 类。我在此处和其他站点上遇到了相同的问题,其中 xsd.exe 为 .xsd 文件中的类型生成 Type[] 数组而不是通用 List 集合。有人建议,如果您将 /dataContractOnly 参数传递给 svcutil.exe,则可以使用 svcutil.exe 作为 xsd.exe 的替代品。但是,这些人似乎误会了,因为 svcutil.exe 实际上生成 System.Xml.XmlNode[] 数组属性,而不是基于 .xsd 文件中的架构创建类型。

例如,给定这个简单的 .xsd 架构:

'xsd.exe /classes Example.xsd' 生成:

'svcutil.exe /target:code /dataContractOnly /serializer:XmlSerializer /importXmlTypes /collectionType:System.Collections.Generic.List`1 Example.xsd' 生成:

  1. svcutil.exe 真的应该是 xsd.exe 的替代品吗?生成的输出似乎完全不同。

  2. 在这一点上,看起来我将不得不使用 xsd.exe 从我的 .xsd 文件创建类,然后手动调整代码以得到我想要的形式。我意识到使用纯粹生成的代码是理想的,但我想知道其他人是否使用 xsd.exe 作为起点然后从那里开始工作,或者我是否需要完全考虑另一种方法?

  3. Visual Studio 2010 中的 xsd.exe 是否有任何更新?

0 投票
3 回答
90 浏览

c# - 获取所需目录的说明

在我的基于 Windows 的项目集中,XML 文件位于“c:\TestProj\XmlSource”。

我的任务是以编程方式为这些 xml 文件创建模式文件。

我正在执行代码如下:

字符串目录名 = @"c:\TestProj\XmlSource";

代码工作正常并且生成了 XSD。问题是,XSD 是在 Debug 文件夹中生成的。我想在 XSD 文件夹(c:\TestProj\XmlSource\XSD)中创建这些 XSD。如何强制 XSD.exe 将输出生成到所需的文件夹。我对处理outputDir开关有点困惑。

0 投票
3 回答
4228 浏览

c# - XSD.exe /dataset 没有从我的 xsd 文件创建枚举

我创建了一个 XSD 并在该 .xsd 文件之上运行 XSD.exe。似乎我的仅限于枚举值的简单类型没有在输出的 .cs 文件中生成为枚举。

例如,我的 xsd 如下所示:

当我运行 XSD.exe 时,输出的 .cs 文件不应该对我的每个简单类型都有一个 xml 枚举属性吗? 这个链接说它应该。也许我做错了什么?在我的 .cs 文件中没有看到枚举。

如果您需要更多信息,请告诉我我能提供什么。

谢谢。

更新:

似乎我正在使用 XSD.exe 创建数据集(/d 开关),而我应该创建一个类(/c 开关)。在我设置它生成一个类后,它工作正常。

0 投票
4 回答
6188 浏览

c# - xsd.exe 在 OFX2 架构上运行时生成重复的属性

使用命令行:

生成的 C# 源文件无法构建并出现以下错误:

一个类似的 XSD 模式,我从 OFX2 模式复制然后修剪成我想要的有用位,生成一个 C# 文件,它构建得很好,但具有与完整模式的 C# 表示形式相同的所有属性。

知道为什么吗?OFX 架构是否损坏?xsd.exe 坏了吗?C#坏了吗?我坏了吗?

0 投票
4 回答
15289 浏览

c# - XmlSerialization 和 xsi:SchemaLocation (xsd.exe)

我使用 xsd.exe 生成用于读取/写入 GPX 文件的 C# 类。如何让生成的 XML 文件包含 xsi:schemaLocation 属性,例如。

我想要以下但 xsi:schemaLocation 总是丢失

0 投票
4 回答
10016 浏览

c# - 将 XML 反序列化为 XSD 生成的类的问题

我有一个相当详细的 xml 文件。下面是顶级节点(我已经包括了椭圆,因为较低级别的节点都格式良好并正确填充了数据):

我使用 Visual Studio 2008 命令提示符创建了一个 xsd 文件:

这会生成 xsd 文件就好了。然后我使用以下命令从 xsd 自动生成类:

为了将 xml 文件反序列化为类对象,我在帮助程序类中使用了 read 函数:

尝试反序列化时:

我收到一个错误,我推断是因为反序列化器正在寻找“模型”节点,但相应的类名是作为根节点和“模型”节点 (configModels) 的组合生成的。为什么类名会这样生成?

我尝试使用以下方法从顶部节点反序列化:

不幸的是,这会导致一系列错误,如下所示:

有人可以引导我解决我的 xsd 自动生成可能做错的事情吗?

0 投票
3 回答
11271 浏览

c# - xsd.exe 生成的类的可为空值

我一直在使用 xsd.exe 生成一个用于将 XML 反序列化为的类。我在源 xsd 中有不需要的十进制值:

xsd 生成的类生成以下代码:

我注意到这是不可为空的。

如何改为将字段生成为可为空,如下所示:

0 投票
1 回答
695 浏览

c# - 一个 xsd 通用树结构,用 xsd.exe 编译成对象模型

假设我希望我的 xml 包含任意数量的 CONTAINER 标签,其中每一个标签都再次包含任意数量的容器标签,依此类推。xsd 会是什么样子?

ps

我希望将此 xsd 编译为类。

非常感谢你。

0 投票
2 回答
1367 浏览

c# - 保留选择序列中的顺序 (LINQ To XSD)

给定以下 XML 示例,我们可以想象一个将 Root 定义为包含 Type1 和 Type2 之间的无限制选择序列的模式。

我正在测试从 XSD.exe 工具迁移,尽管它增加了类型安全,但有很多小烦恼。在这种情况下,XSD 工具只是在 Root 中创建一个 System.Object 类型的数组,您必须弄清楚其中的对象类型(Type1 或 Type2)。它并不完全优雅,但至少你保持秩序。

问题是当 LINQ to XSD 创建对象时,它将 Root 定义为具有两个独立的 Type1 和 Type2 列表。这很好,因为它是类型安全的,但我现在似乎失去了元素的顺序。我从 codeplex 上的源代码构建了 LINQ to XSD。

使用 LINQ to XSD,如何保留这些元素的顺序?