问题标签 [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 回答
1077 浏览

c# - CityGML 反序列化问题

我目前正在研究 CityGML (de)serializer - 我需要某些相应对象的 C# 类 - 我在 System.Xml.Serialization.XmlSerializer 实例所需的根类方面遇到了一些问题。不知道大家对CityGML有多熟悉,这里先说一下情况。我还描述了我是如何创建我的类的,如果你想跳过这个,你可以从/ /* 标记开始阅读:

CityGML 由多个 .xsd 文件组成,每个文件都是描述某种类型元素(appearance.xsd、transports.xsd、building.xsd、vegetation.xsd 等)的模块,还有一个根文件 CityGML.xsd。如您所料,每个模块都需要此根文件中的元素。还有一个事实是 CityGML 实际上从 GML 继承了很多,所以从 GML .xsd 文件导入也是必要的。

到目前为止,在 C# 类生成方面,我尝试了两种方法,都使用经典的 xsd.exe: - 创建一个 .cs 文件,其中将包含我需要的所有 CityGML 类 - 一个命令行:

对于每个命令,最后一个 .xsd 是所需的模块,而其他的则是必要的导入。

不幸的是,尽管 xsd.exe 处理来自其他 .xsd 文件的导入,并且它会创建所需文件以及导入文件的类,但它非常“直接”地执行此操作,将所有这些类堆叠在一个 .cs 文件中。显然,无法将所需的类与不同 .cs 文件中的导入类分开。因此,我的第一个问题是是否有任何(反)序列化工具,类似于 XSD.EXE,可以处理导入的 .XSD 文件并创建特定的 .CS 文件层次结构?这将避免重复,例如,上述所有模块 .cs 文件中的 feature.xsd 类。

/ /*

继续前进,实际上给我带来麻烦的问题与 XmlSerializer 实例有关,该实例无法创建,因为基本的 CityGML 对象类型 CityModelType(也是整个层次结构中的根类)并不完全有效:

这个赋值首先产生了一个关于使用 XmlTextAttribute 定义 string[] 的错误,这使得 CityModelType 的“反射”变得不可能。我用 XmlAttributeAttribute 替换了 XmlTextAttribute 并且我无法追踪其来源的当前消息是这些(是的,我正在用法语工作):

首先, LineStringSegmentType 的唯一出现与曲线有关,我没有在我的 .gml 文件中使用。它们的定义如下:

...在这里使用它们:

...来自这个 gml:geometryPrimitives.xsd 片段:

我看不出问题出在哪里,这很奇怪。希望早日收到你的消息。谢谢。

干杯,维克多

0 投票
1 回答
4761 浏览

xml - XSD - 缺少数据类型

我有两个 xml 模式文件 (xsd)。一个定义了一个名为“Error”的数据类型,第二个引用它。

以下是模式:

CreateFolderResult.xsd

错误.xsd:

这些模式文件来自此 PDF:MS-DWSS

当我尝试从它们生成 C# 类时,我收到一条错误消息,提示“缺少数据类型‘http://schemas.microsoft.com/sharepoint/soap/dws/:Error’。

我用谷歌搜索了它,并尝试了几种正确使用 xsd.exe 的方法,但仍然出现相同的错误。

我使用的命令是“xsd.exe /c CreateFolderResult.xsd Error.xsd”。

我还创建了这个“安装程序”:

并尝试运行:“xsd.exe /p:Installer.xsd /c”但也没有工作。我相信我在定义命名空间时做错了什么。

我究竟做错了什么?任何帮助将不胜感激。

0 投票
1 回答
1055 浏览

c# - 我应该对大文件使用 XML 序列化吗

我有一组带有 XSD 的非常大的 XML 数据。一个 xml 可能高达 300MB。

我需要将数据从 XML 移动到 SQL Server。

我发现微软有序列化库来将 xml 映射到对象 http://msdn.microsoft.com/en-us/library/182eeyhh.aspx

我担心的问题是,当它将xml映射到对象时,它会将所有数据加载到内存中吗?如果是这样,我似乎无法使用它。

XmlTextReader 也是我的案例的最佳方式,例如逐行读取并将数据存储到数据库中。

0 投票
1 回答
340 浏览

c# - XSD 生成代码的数组语法

我已经从 XSD 生成了一个类。以下

不允许我使用语法

我从编译器收到错误“;预期”。

做事没有问题

整数 [] 整数 = { };

为什么?这不是两个数组吗?

0 投票
0 回答
134 浏览

c# - Microsoft SGEN 工具仅在评论中更改工具版本

我在使用 SGEN 工具时遇到了一些奇怪的行为,该工具用于从 SGEN 生成类。

在该工具生成的类文件中,文件顶部有一条注释,说明该文件是使用version 2.0.50727.xxxx. 查看文件以前的历史记录,xxxx每次有人重新构建文件时,这个数字都会改变。尽管此注释更改了源中指定工具版本的属性,但实际使用的工具 ( 2.0.50727.42) 保持一致。此号码从未与评论中的号码匹配。

直到今天,建造者和那个数字之间还是 1:1 的相关性。然而,今天,建筑商让它插入了一个与他过去收到的不同的数字。不过,他使用的是同一台机器,并且设置和以前一样。我无法确定为什么这个数字会改变以及导致这种行为的原因。

有没有其他人观察到 SGEN 的类似行为或知道是什么原因造成的?

生成该评论的代码是否存在错误,或者这里是否存在问题的可能性?

0 投票
1 回答
1312 浏览

c# - XSD 无法基于继承的类从 XML 创建类

基于通过序列化另一个 C# 类生成的 XML 创建 *.cs (C# 类) 时遇到问题。XSD.exe 抛出以下错误:

我的过程如下所示:

  1. 编写一些 C# 代码(下面的示例)
  2. 序列化为 XML 使用 XSD.EXE
  3. 创建 *.cs 反序列化为新的 *.cs
  4. (用于运输)等

序列化为 XML 的类(在第 1 点中)如下所示:

任何人都可以建议解决方法吗?!这显然是由继承的条件属性引起的

0 投票
1 回答
679 浏览

c# - 使用 JSON 语法实例化一个锯齿状数组

我有一个 XSD.exe 生成的类。我正在使用粗略的控制反转。我的测试对象一直有效,直到我添加了这个花哨的 XML 片段:

现在,GeneratedByXsdClass 对象的创建被破坏了。

编译器错误:

如果这让生活更轻松,我愿意修改 xsd.exe 生成的类。我真的只想<item>重复N次。

0 投票
2 回答
2721 浏览

c# - XmlSerializer InvalidOperationExc - 转换类型的已知问题

我正在对 XSD.EXE 生成的类使用 XmlSerializer。

呕吐

InvalidOperationException无法生成临时类(结果=1)。错误 CS0030:无法将类型“itemOrderItemsItem[]”转换为“itemOrderItemsItem”错误 CS0029:无法将类型“itemOrderItemsItem”隐式转换为“itemOrderItemsItem[]”

修复(在下面标记<!--fix...-->)说要在我的架构中添加一些愚蠢的元素,但这不起作用。此修复程序已有五年历史。有没有解决办法?

0 投票
1 回答
490 浏览

c# - xsd2code 使用 xsd.exe 还是使用自己的代码生成算法?

xsd2code 是使用 xsd.exe 还是使用自己的代码生成对数?

  • xsd2code 可以在这里找到
  • xsd.exe 是 Microsoft 的 xsd 生成器工具
0 投票
1 回答
669 浏览

c# - 可选地在反序列化时从 xml 中省略命名空间?

我希望选择从 xml 内容中省略 xmlns:xsi、xmlns:xsd 和 xmlns 属性。这样做时反序列化失败。

这是 xsd 定义:

xsd.exe 代码生成器给出了这个:

这是成功反序列化的 xml 内容示例:

为了简单起见并更容易手写 xml,我希望能够成功反序列化以下内容:

我正在使用此扩展方法进行反序列化:

使用 Visual Studio 2008,我有哪些选择,最好的选择是什么?