问题标签 [linq-to-xsd]

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

asp.net-mvc-2 - 如何从 XML 文件中获取数据到业务对象中?

我需要在我的 MVC 2 应用程序中构建一个允许用户上传 XML 文件的视图。XML 文件将符合 XSD。我需要解析 XML 并提取数据以填充 C# 对象,然后将这些对象发送到 Web 服务。

我的问题是......因为我知道 XML 文件的确切“格式”,因为 XSD,是否有一些更简单的方法可以将 XML 文件中的数据“移动”到我的业务对象中?

我读到了一些 Linq-to-XSD 项目,但它似乎已被放弃。Linq-to-XML 看起来不是很有帮助,因为我仍然必须“遍历”整个 XML 文档以获取所有数据。

当然有更简单的方法吗?

0 投票
2 回答
283 浏览

c# - 使用 linq 查询 xml

我正在尝试使用 linq 从 xml 查询一些信息,但我收到这样的错误 - 是的,我已经定义了 - 使用 System.Linq 你能告诉我,哪里有问题吗?谢谢

错误 1 ​​找不到源类型“urn.P.IEEE.Item1671.Item2.Item2008.Item02.InstrumentDescription.InstrumentDescription”的查询模式的实现。未找到“选择”。D:\Documents and Settings\e539951\我的文档\visual studio 2010\Projects\WindowsFormsApplication1\WindowsFormsApplication1\Form1.cs 28 36 WindowsFormsApplication1

0 投票
0 回答
482 浏览

c# - 跨多个命名空间和部分类复制代码

我正在使用 LinqToXSD 根据客户的 XSD 生成文档模型(代码)。由于每次生成文档模型时这些 XSD 共享通用结构,因此某些对象会重复。为了防止编译问题,我将每个文档模型放在自己的命名空间中。这效果很好。

但现在我想对这些公共部分类的对象进行一些自定义验证。所以我IValidate用一个Validate()方法定义了一个接口。现在我在多个对象模型中生成了一些低级对象,但每个对象模型都在不同的命名空间中。

现在我想编写一个单独的部分类文件来在我的所有 foo 类中添加IValidate接口和方法。Validate()但是,这当然行不通,因为它们实际上是不同的对象。由于生成的代码和用于生成代码的 XSD 库,我有很多这些。

如果我可以隐藏内部结构(阅读上面的'......'),这将起作用。我在不同的命名空间中有很多 foo(我有 foo1 到 foo100,每个都有相同的问题)。我需要复制代码,我知道这是不行的,我不想这样做。但是,如果我这样做了,我至少不想维护这么多相同代码的副本。

我相当有信心这可以通过动态来完成,但我宁愿不必去那里。

谁能建议一些其他方法来编写这些验证方法而不必手动复制到每个 namespace.class 的部分类?

0 投票
0 回答
1853 浏览

c# - 使用自定义 WSDL 和引用模式,为什么我的 SOAP 方法的返回 Xml 不能从对象正确序列化?

看完这篇文章后:

使用 XML 消息设计提高 Web 服务互操作性

我决定尝试将我们现有的消息设计模式导入新的 SOAP 服务的 WSDL。

这都是在 VS2008 和 .NET 3.5 中,Altova XMLSpy 2009 用于模式和 wsdl 设计。

所以我做了以下事情:

  1. 编写自定义 WSDL,导入我们的 XSD 接口规范。
  2. 使用 WSDL.EXE 生成服务器存根代码
  3. 在 Web 服务项目中包含 XSD
  4. 使用Linq To Xsd生成我们使用的强类型 XDocument 包装器
  5. 手动编辑生成的存根代码以删除多余的自动生成的包装类
  6. 手动编辑存根代码以将 WSDL 中的类型映射到 Linq2Xsd 生成的包装器
  7. 禁用 WSDL 生成并使用WebServiceBindingAttribute
  8. 使用常规 Web 参考创建 win forms 测试平台

好的,问题来了:

SOAP 请求工作完美,参数的序列化和反序列化工作。问题中的 SOAP 响应,序列化创建了格式不正确的 Xml,而客户端反序列化只是无法工作。

这是 SOAP 响应:

注意嵌套GetCameraLocationsTableResponse元素,这是错误的。我已经确认我们的 XDocument 包装器创建了内部GetCameraLocationsTableResponse,并且在 SOAP 消息生成器的内部工作中添加了外部GetCameraLocationsTableResponse 它应该是:

所以我很难过,客户端代理代码正确序列化但服务器代理代码没有。当然,这是我搞砸的服务器代码!

名称已更改为Blah保护无辜者。

作为参考,这是我编辑的服务器端代理代码:

这是我为将上述内容实现为 Web 服务而编写的代码:

从这里使用 system.diagnostics 开关,我设法提取了自动生成的序列化代码:

这是自定义 WSDL

谢谢阅读,

詹姆士。

0 投票
1 回答
905 浏览

asp.net-mvc-3 - 如何在 C#.Net 中使用 XSD 文件构建 XML

嗨,我有一个 XSD 文件,解释了我必须使用的必填字段。

使用该 XSD 模式,我必须构建和 XML 请求并路由到第三方服务提供商,一旦我的 XML 请求得到验证,系统(第三方)将返回一个响应,我必须再次阅读该 XML 响应并休息的逻辑实现。

我不知道从哪里开始使用这个 XSD 构建 XML

任何人都可以将我指向正确的地方或提供一些我可以用来使用 XSD 构建 XML 的示例吗

这是我的 XSD 的一部分

使用<xs:element name="RxHistoryRequest"> 我必须构建 XML 和

使用<xs:element name="RxHistoryResponse"> 我必须阅读回复

感谢您抽出宝贵时间帮助我。

0 投票
4 回答
249 浏览

c# - 如何在没有强制转换的情况下从 Xml 中保存和获取值?

我真正讨厌的是从 Xml 文件中转换每个元素或属性值。

此刻,我正在数百个模块中创建一个方法,其中指定如何将对象转换为 XmlFile。相信,这很累。所以我正在考虑另一种选择。

我正在调查 XSD,我不确定这是否会成为我的救赎。我正在使用 Linq to Xml 来保存和获取值。我的意思是,我的对象是这样组成的:

如您所见,它们有许多节点。还有另一种选择吗?我的意思是,强类型。

0 投票
2 回答
74963 浏览

c# - 如何从类创建 XSD 架构?

我很难处理 XSD 文件。

我正在尝试从一个类创建一个 XSD 文件:

请注意,我在 Configuration 中有一个抽象类。使用该功能,是否可以创建 XSD,如果可以,如何创建?

这个想法是将类 Configuration 传递给 XSD。

0 投票
1 回答
361 浏览

c# - 使用 LinqToXSD,如何在不强制转换的情况下获取 xml 中的对象?

我正在使用这项技术将我的 XML 文件作为数据库进行管理。当我这样做时,通常我在库中创建类并使用 XSD.exe 我可以获得我的 XSD。

然后,使用 LinqToXSD 和生成的新 XSD,我可以访问数据。这是我的第一堂课,应该在我的课程中。

并访问我使用这个命名空间的数据

我意识到,它们是两个不同的类,我的意思是我需要将这个类(来自 XSD 的 urn.foo)转换为真正的 Foo(第一个)。所以,我有两个不同的课程,我只想上一个!

0 投票
1 回答
1534 浏览

c# - 如何让 LinqToXSD 正确输出命名空间前缀声明?

我正在尝试使用LinqToXSD和包含许多导入模式的 XML 模式创建 XML 数据绑定类。所有模式都位于此处。

为此,我使用了以下根模式文档:

我使用 Linq to XSD 创建了类。然后我写了以下测试:

我期望的输出看起来像这样:

相反,我得到的是:

有没有办法让 LinqToXSD 产生预期的输出?

0 投票
3 回答
741 浏览

c# - 无需更改代码即可处理 XML Schema 更改

目前我们有一个 XML 模式,代码读取 xml 文件,验证模式并保存到数据库。将来会有架构更改,代码如何处理它们而不需要为新架构重写代码。

谢谢,

让我举个例子吧

XPath 映射配置

现在 C# 代码读取 id、name 和 desc 并根据 Mapping 配置生成插入语句

如果架构发生变化并且添加了新元素说价格,我们会将该价格添加到映射中,因此生成的新插入语句包括价格。

这行得通吗?