假设您有一个 XML 文件:
<experiment
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="experiment.xsd">
<something />
<experiment>
你有 xsd 文件:
...
<xs:attribute name="hello" type="xs:boolean" use="optional" default="false" />
...
假设属性“hello”是“something”元素的可选属性,默认值设置为“false”。
使用 XML LINQ 的 XDocument 时,缺少该属性,导致程序在尝试读取时失败:
XDocument xml = XDocument.Load("file.xml");
bool b = bool.Parse(xml.Descendants("something").First().Attribute("hello").Value); // FAIL
LINQ 是自动加载 XML 模式(来自根元素“experiment”的“xsi:noNamespaceSchemaLocation”属性)还是我必须手动强制加载?
如何强制 LINQ 读取可选属性及其默认值?