2
我用下面的代码读取一些XML用的XmlReader:XMLReader不能读取默认属性
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架构的一部分:http://msdn.microsoft.com/en-us/magazine/cc302158.aspx – MethodMan 2011-12-15 22:09:03