【问题标题】:XmlReader doesn't read default attributesXmlReader 不读取默认属性
【发布时间】:2011-12-15 21:59:44
【问题描述】:

我正在使用以下代码通过 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 中获取默认值?

【问题讨论】:

标签: c#


【解决方案1】:

结果一切正常,并且读取了默认属性。但是,我忽略了一些验证错误,导致属性未设置。

所以答案是:确保您的 XML 在默认属性生效之前验证。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-21
    • 2011-08-23
    • 2015-06-29
    • 2017-05-30
    • 2016-10-18
    • 1970-01-01
    • 2023-01-10
    • 2013-07-11
    相关资源
    最近更新 更多