gpt4 book ai didi

c# - 如何验证 XmlSerializer 的输出?

转载 作者:太空狗 更新时间:2023-10-29 21:47:46 27 4
gpt4 key购买 nike

在 C#/.NET 2.0 中,当我 serialize使用 XmlSerializer 的对象,根据 XML 模式验证输出的最简单方法是什么?

问题是使用 XmlSerializer 编写无效的 XML 太容易了,而且我找不到一种方法来验证看起来不麻烦的 XML。理想情况下,我希望在 XmlSerializer 中设置架构或拥有一个可验证的 XmlWriter。

最佳答案

使用验证阅读器再次读取它怎么样

这是一个快速的尝试

Stream stream = new MemoryStream(Encoding.UTF8.GetBytes("<YourXml />"));
var input = mappingAssembly.GetManifestResourceStream(
"MySchema.xsd"
); //This could be whatever resource your schema is
var schemas = new XmlSchemaSet();
schemas.Add(
"urn:YourSchemaUrn",
XmlReader.Create(
input
)
);

var settings = new XmlReaderSettings
{
ValidationType = ValidationType.Schema,
Schemas = schemas
};

settings.ValidationEventHandler += MakeAHandlerToHandleAnyErrors;

var reader = XmlReader.Create(stream, settings);
while (reader.Read()) {} //Makes it read to the end, therefore validates

当出现错误时,您需要一些处理程序来执行某些操作。

关于c# - 如何验证 XmlSerializer 的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2407944/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com