问题标签 [xsd2code]

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 回答
1355 浏览

c# - 在 Visual Studio 中,我可以让一个文件运行另一个文件的自定义工具吗?(在这种情况下使用 Xsd2Code)

我正在尝试确定在 Visual Studio 中使用自定义工具时是否有可能更改一个文件的内容,触发另一个文件的自定义工具。

我的情况是这样的:

在 Visual Studio C# 项目中,我有一个“master.xsd”xml 架构,其中包括其他几个 xsd 文件。我正在使用Xsd2Code Visual Studio 自定义工具从架构生成 .cs。当 master.xsd 本身发生更改时,这可以正常工作,但是我希望自定义工具在其他 xsds 之一更改时在文件 master.xsd 上运行。

有没有办法让一个文件触发另一个文件的自定义工具?

[编辑-有关我为什么要为此使用自定义工具的更多详细信息]

目前我们有一个 GenerateFiles.bat 文件,它从命令行调用 Xsd2Code 以从模式生成代码文件(如下面的 MattDavey 建议)。这行得通,就是太慢了。

问题是,Xsd2Code 在每次构建时都会运行,但由于许多其他项目依赖于这个项目的模式,即使可能没有任何改变,它们也会重新编译。实际的结果是,即使是对单元测试的微小更改也会涉及到一半的项目重新编译。这就是为什么我们一直在研究仅在架构更改时才生成代码文件的自定义工具方法。

0 投票
1 回答
9406 浏览

.net - 将 XSD2CODE 与多个模式文件一起使用

我正在使用XSD2CODEVisual Studio 2010。我知道我可以右键单击架构 ( XSD) 文件并从中生成 c# 类。

我想知道的是,当我有一个 XML 文件的两个模式文件时,如何生成 C# 类?

更多信息:

也许我在最初的问题中没有提供足够的细节。

参考问题XSD.EXE 为什么会创建两个 .XSD 文件,以及如何使用它们?,我基本上问的是同样的问题,XSD2CODE而不是XSD.

对于 XSD,我将使用以下命令:

D:\>xsd response.xsd response_app1.xsd /classes

XSD2CODE在 VS 2010 GUI 和/或命令行中,我如何做到这一点?

0 投票
1 回答
1542 浏览

c# - 访问使用 XSD 生成的类

我对访问我生成的类的属性有疑问。

这是我的xml:

这是我生成的 xsd(三个之一):

最后这是我从 xsd2code 生成的类:

我对反序列化没有问题,它创建了正确的类,但我不知道如何访问属性。 我正在尝试这样的事情:

但这是错误的。

错误 33 'object' 不包含 'MessageID' 的定义,并且找不到接受“object”类型的第一个参数的扩展方法 'MessageID'(您是否缺少 using 指令或程序集引用?)

我包括图片链接,以便更好地理解班级结构。我将不胜感激任何建议,谢谢。

0 投票
1 回答
628 浏览

c# - 在生成 C# 代码时在 xsd2code 的 xsd 定义中使用非默认类型

在我们的项目中,我们使用 Xsd2Code 来生成 c# 代码。

我尝试调整的 XSD 如下所示:

在我们的项目中,我们现在定义了一个抽象类 Version。是否可以使用我们自己的类版本而不是字符串作为 Xsd 中元素版本的类型?

我们希望使用 Xsd2Code 生成尽可能多的类。这就是为什么我想避免也必须手动创建 File 类。

提前感谢您的帮助。

0 投票
1 回答
430 浏览

c# - 修改从 XSD 架构生成的代码

我有大约 5 个 XML 调用要在 C# 中实现。我使用 Xsd2Code 自动生成代码,我对结果非常满意。但是,我的问题是所有 XML 调用都具有相同的请求响应 TypeName,如下所示:

XML 调用 - 1:

XML 调用 - 2:

因此,所有 5 个 XML 调用都生成了 10 个类 - 5 个名为“Request”,5 个名为“Response”。现在,我知道我总是可以将 XmlType 中的 TypeName 指定为 Request,并重命名类。我已经这样做了。我的问题是更改自动生成的代码是否好。它只是重命名类。我不需要更改任何其他内容。我想到的另一个解决方案是为每个请求-响应对提供不同的 C# 命名空间。但我对此有一种不好的感觉,似乎更像是一种解决方法。

在您看来,理想的解决方案是什么?

另一个疑问是我对内部 XML 节点有同样的问题。在每个 XML 调用中,它们具有相同的名称,但功能不同,因此结构也不同。例如,

XML 调用 - 1

XML 调用 - 2

现在,我决定不尝试去掉通用类来减少代码冗余。我更喜欢将 XSD 模式与自动生成的类进行映射,并且只是重命名了类以避免任何冲突。例如,上述示例的类似 Room 类将是:

XML 调用 - 1

XML 调用 - 2

我做错了吗?

0 投票
1 回答
812 浏览

c# - "System.InvalidOperationException" - xsd XSD2Code Stylesheet XML C# Visual Studio

I created an .xsd from an xml file using XSD.Exe from the Visual Studio Tools (now Win 7 SDK Tools). My .xsd file:

(cutted sicne it's too long) I then used XSD2Code (an add-in for VS) to create an .Designer.cs file:

(cutted sicne it's too long)

Now I want to create a "Scene"(the root xml tag) in my C# code:

All up to this point is Working, but when i want to save or Serialize (or Deserialize) like this:

And now when executing I get an Error at the Line (in SceneFiles.designer.cs)

And my Error goes like this:

//

Eine nicht behandelte Ausnahme des Typs "System.InvalidOperationException" ist in System.Xml.dll aufgetreten.

Zusätzliche Informationen: Fehler beim Reflektieren des Typs 'VNEngine.Scene'.

//

My rough english translation:

A not handled Exception: System.InvalidOperationException appeared in System.Xml.dll Additional Information: Error at Reflecting the type 'VNEngine.Scene'

//

Does anyone know what I made wrong?

The same thing worked with an smaller not as complex and not with xsd.exe generatet .xsd stylesheet.

0 投票
1 回答
1339 浏览

c# - 使用 xsd2Code 和 c# 创建一个数组

我正在使用这样的 .xsd 架构

这是由 Visual Studios xsd.exe 自动生成的。然后我使用 xsd2code 使其成为 .designer.cs 文件。我设置了 xsd2code,以便它创建序列化程序并为数组创建复杂的类型结构。

xsd2codeWindow

现在我反序列化一个 xml 并创建我的场景文件,我的子对象(如 playername)都是正确的,即使它们有子对象,只要它们设置为 maxoccurence=1 和 minoccurence=0。除了上例中的 Button 之类的数组,我想我会得到一个像这样的数组:scene.Button[i].Buttontext。嗯,我不明白。我只是得到我不知道这就是为什么我在这里有一个截图。

失败部分

他抛出一个 IndoexoutofRange 错误。那么我做错了什么?

顺便说一句,我的 example.xml

0 投票
1 回答
464 浏览

xsd - XSD 中的导入及其实现

我有 2 个具有一些共同属性的独立 XSD。我想创建另一个 XSD 并将我所有的公共属性放在单独的 XSD 中,然后将它们导入我已经拥有的 2 个 XSD 中,而不是在两个 XSD 中重复或复制它们。

这种实现有什么参考吗?

0 投票
1 回答
1028 浏览

c# - 使用 Xsd2Code 将 PMML XML 架构 (xsd) 转换为 C# 对象时出错

我尝试使用 Xsd2Code ( Xsd2Code ) 从 PMML 3.0 Schema ( PMML 3.0 Schema ) 创建 C# 对象,但我得到的只是以下错误:

错误:元素“http://www.dmg.org/PMML-3_0:Array”的多重定义导致内容模型变得不明确。必须形成一个内容模型,使得在元素信息项序列的验证过程中,直接、间接或隐含包含在其中的粒子可以唯一地确定,用它来尝试依次验证序列中的每个项目,而无需检查其内容或属性。该项目,并且没有关于序列其余部分中的项目的任何信息。

我很确定这个规范是正确的。我也尝试了 VS 中的 xsd.exe,但没有成功。

有没有其他方法可以进行这种转换?

谢谢你的帮助!

0 投票
2 回答
2075 浏览

xsd - XSD.EXE 在文件具有交叉引用时生成多个元素时出错

我有 orbitz(全球酒店分销系统)xsd 架构,并希望从这些 xsd 文件生成 c#.Net 类。

当我使用 Xsd.Exe 或 XSD2Code 或其他东西时,生成的类会将复杂类型从导入的文件复制到内部,因此多个文件具有相同的类。

我很困惑,该怎么办?

您可以从以下链接下载 xsd 架构文件。我需要在“hotel”文件夹中使用 xsd 文件的 c# 类。

生成 xsd 文件后,请将这些 .cs 文件添加到项目中并查看错误。

谢谢

XSD 文件 =>http://rapidshare.com/files/1062702005/orbitz-pws-schemas-1.42.zip