gpt4 book ai didi

c# - XmlReader 不读取默认属性

转载 作者:太空宇宙 更新时间:2023-11-03 11:28:44 25 4
gpt4 key购买 nike

我正在使用以下代码使用 XmlReader 读取一些 XML:

XmlReaderSettings settings = new XmlReaderSettings();
settings.ValidationType = ValidationType.Schema;
settings.ValidationFlags |= XmlSchemaValidationFlags.ReportValidationWarnings;
settings.Schemas.Add(xmlSchemaSet);

using (var reader = XmlReader.Create(new StringReader(formatXml), settings))
{
while (reader.Read())
{
...
}
}

对于每个元素,我都这样读取所有属性:

while (reader.MoveToNextAttribute())
{
...
}

但是,此代码不会选取具有在 XSD 架构中指定的默认值的属性,如下所示:

<xs:attribute name="new" type="xs:string" default="error" />

它只选取那些在 XML 中明确设置的属性。如何让它也自动从 XSD 获取默认值?

最佳答案

原来一切都按预期的方式工作,并且读取了默认属性。但是,我忽略了一些验证错误,导致未设置属性。

所以答案是:确保您的 XML 在默认属性起作用之前通过验证。

关于c# - XmlReader 不读取默认属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8527208/

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