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