使用linq从XML列中检索使用XSD填充树视图

时间:2011-01-14 00:00:09

标签: wpf xml linq xaml xsd

我有一个xml列,其中包含已加载的xsd文件的内容。我正在使用linq来检索文件

var xsd = from r in RegulatoryAuthoritySchema
    where r.XsdTypeID == 2
    where r.MajorSchemaVersion == 1
    where r.MinorSchemaVersion ==0
    where r.XsdStatusID == 2
    select r.XsdData;

我的第一个问题是我可以将xsd作为字符串返回,但不能作为格式良好的xml对象返回。

例如,如果我尝试将其解析为XElement或XMLDocument,我会得到 '根级别的数据无效。第1行,第1行。' 我假设这是因为它来自xsd而不是xml源。因此XMLDocument需要声明中的BOM。

我的第二个问题是使用返回的xsd作为WPF树视图的动态源。我已经看到XSD的静态示例通过在XAML中的xmldataprovider资源的XData中定义它们而显示在WPF树视图中。 XMLDataprovider有一个source属性,但这需要URI,或者如果我可以对第一个问题进行排序,那么将有一个文档属性需要XMLDocument。

我的应用程序是WPF4并使用MVVM,因此理想情况下,xsd将表示为ViewModel的属性,然后树视图被绑定,但那是另一个帖子。

0 个答案:

没有答案