问题标签 [xml-serialization]

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

.net-3.5 - 当通过命名空间进行版本控制时,将 xml 序列化为适当对象的最佳方法是什么?

我的问题如下。

我有由命名空间版本控制的 xml。我想将此接收到的 xml 序列化为适当的对象,但我知道这样做的唯一方法意味着我必须处理 xml 两次。首先发现命名空间,然后根据发现的命名空间序列化为适当类型的对象。这对我来说似乎非常低效,并且必须有某种方法使用泛型或其他方法来获取适当类型的对象,而无需“if namespace == x then serialze to that”检查。

以下是我知道的唯一方法示例。有没有更好或更有效的方法?

谢谢

0 投票
3 回答
14808 浏览

c# - 如何在 C# Web 服务对象属性中强制设置最大字符串长度?

例如,在这个类中,我想强制限制名字/姓氏可以允许的字符。

有没有办法强制对名字或姓氏进行字符串限制限制,所以当客户端在将其发送给我之前对其进行序列化时,如果它违反了长度限制,它会在他们这边抛出一个错误?

更新:这需要在 WSDL 本身中识别和强制,而不是在我收到无效数据之后。

0 投票
2 回答
916 浏览

c# - 如何在不修改类的情况下添加 XML 序列化指令

有没有一种巧妙的方法可以在不修改序列化类的情况下添加 XML 序列化指令?

我不喜欢默认的序列化,也不能修改类。我正在考虑继承该类,并使用 Shadows (VB.NET) 重新实现属性(使用序列化指令),但这会导致大量重复代码并且看起来很糟糕。

我正在寻找的理想解决方案基本上是将所有序列化指令保存在单独文件中的方法。

0 投票
3 回答
14853 浏览

xml - 如何在 VB.NET 中编写对象以便轻松进行 XML 序列化?

我正在 VB.NET 中编写一个小型应用程序,我希望某些类能够将自己写到 XML 中以用作“保存”功能。我见过用于生成 VB 类的 XSD 文件,这些类可以很容易地将自己序列化进出 XML。如果我确实有任何预先存在的 XML 格式需要遵守,因为我只是自己创建类,我该怎么做?

0 投票
13 回答
51028 浏览

java - 哪个是 Java 序列化的最佳替代方案?

我目前正在开发一个项目,该项目需要保留任何类型的对象(我们无法控制其实现),以便之后可以恢复这些对象。

我们无法实现 ORM,因为我们无法在开发时限制库的用户。

我们的第一个替代方案是使用 Java 默认序列化对其进行序列化,但是当用户开始传递同一对象的不同版本(属性更改类型、名称等)时,我们在恢复对象时遇到了很多麻烦。

我们尝试过使用 XMLEncoder 类(将对象转换为 XML),但我们发现缺少功能(例如不支持 Enums)。

最后,我们还尝试了 JAXB,但这迫使我们的用户注释他们的类。

有什么好的选择吗?

0 投票
3 回答
6273 浏览

c# - XmlSerializer 序列化空变量以使用两个标签?

我希望能够将序列化的 xml 类加载到 Soap Envelope。我开始了,所以我没有填充内脏,所以它看起来像:

我希望它看起来像:


我写的课是这样的:

我以这个为例,因为其他人可能想要它在一个单独的元素中。我确信这一定很简单,但遗憾的是我不知道正确的关键字。

一如既往地感谢您的帮助。

[编辑] 当我尝试使用此指令时出现错误

它给了我错误“找不到根元素”。

[编辑]我修复了错误,问题是在我序列化对象后我没有设置memOut.Position = 0。我仍然希望这个问题可以帮助其他可能想要这样做的人。

0 投票
6 回答
114196 浏览

.net - 如何在不获取 xmlns="..." 的情况下将对象序列化为 XML?

有没有办法让我在 .NET 中序列化对象,而 XML 命名空间也不会自动序列化?似乎默认情况下 .NET 认为应该包含 XSI 和 XSD 命名空间,但我不希望它们在那里。

0 投票
3 回答
13584 浏览

c# - 如果找不到元素,我能否在 C# 中使用 XmlSerializer 反序列化失败?

我正在使用 XmlSerializer 在 C# 中将对象写入和读取到 xml。我目前使用属性XmlElementXmlIgnore操作对象的序列化。

如果我的 xml 文件缺少我需要的 xml 元素,我的对象仍然可以反序列化(xml -> 对象)。我如何指示(最好通过属性)某个字段是“必需的”?

这是我目前使用的示例方法:

我理想的解决方案是添加类似XmlRequired属性的东西。

此外,对于哪些属性可用于操纵 XmlSerializer 的行为,是否有很好的参考?

0 投票
4 回答
130912 浏览

c# - 为什么 XML-Serializable 类需要无参数构造函数

我正在编写代码来进行 Xml 序列化。具有以下功能。

如果参数是没有无参数构造函数的类的实例,则会抛出异常。

未处理的异常:System.InvalidOperationException:CSharpConsole.Foo 无法序列化,因为它没有无参数构造函数。在 System.Xml.Serialization.TypeDesc.CheckSupported() 在 System.Xml.Serialization.TypeScope.GetTypeDesc(Type type, MemberInfo source, Boolean directReference, Boolean throwOnError) 在 System.Xml.Serialization.ModelScope.GetTypeModel(Type type,布尔直接引用)在 System.Xml.Serialization.XmlSerializer..ctor(Type type, String defaultName space) 在 System.Xml.Serialization 的 System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping(Type type , XmlRootAttribute root, String defaultNamespace)。 XmlSerializer..ctor(类型类型)

为什么必须有一个无参数的构造函数才能让 xml 序列化成功?

编辑:感谢 cfeduke 的回答。无参数构造函数可以是私有的或内部的。

0 投票
4 回答
10510 浏览

apache-flex - Flex - 嵌套对象结构的 XML 序列化和反序列化

我们的 Flex 应用程序希望将请求和响应作为对象图(没有什么不寻常的)来处理,例如响应成为某些视图的模型,并且将是具有多层嵌套的结构。

** 现在,理想情况下,我们希望对不同的消息格式(例如 XML 和 AMF)使用相同的客户端(和服务器)端对象,并具有可插入的序列化/反序列化层(!)

AMF 使用 [RemoteClass(alias="samples.contact.Contact")] 对客户端到服务器进行序列化和匹配,但似乎没有 XML 的等价物。

我(有点乐观)正在寻找一种将对象图序列化为 XML 的简洁方法,以便通过客户端的 HTTPService 发送。

对于响应,默认的“对象”和“E4X”提供了一些反序列化。这很方便,但是我们当然没有像使用 AMF 那样将 XML 解包回特定的 AS 类的技巧。

有什么建议么?(确实有一个关于将对象包装/转换为 XML 或 XMLList 的想法——但这似乎不起作用)

更新:

这两个库看起来都很有用,我很可能会在某个时候使用它们。

现在,我真的需要简单地重新使用我们在任何情况下都使用的 AMF3 序列化的元数据集([RemoteClass],[Transient])

.. 所以目前最好的选择是 AMFX - 使用 Flex 数据服务使用 XML 进行 AMF 传输 - mx.messaging.channels.amfx 包中的类 - 目前唯一的缺点是任何 Externalizable 类都转换为十六进制字节流 -并且 ArrayCollection 是可外部化的!(希望通过序列化子类中的内部数组来解决..)

希望这对某人有用..