【发布时间】: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 中获取默认值?
【问题讨论】:
-
检查一下它解释了为什么属性不是 DTD 模式的一部分:msdn.microsoft.com/en-us/magazine/cc302158.aspx
标签: c#