XmlDataSource

XmlDataSource class

提供对报告中使用的 XML 文件或流的数据的访问。

要了解更多信息,请访问LINQ 报告引擎文档文章。

public class XmlDataSource

构造函数

姓名描述
XmlDataSource(Stream)使用 XML 数据加载的默认选项,通过 XML 流中的数据创建新的数据源。
XmlDataSource(string)使用 XML 数据加载的默认选项,从 XML 文件创建新的数据源。
XmlDataSource(Stream, Stream)使用 XML Schema Definition 流创建一个包含 XML 流数据的新数据源。默认选项 用于加载 XML 数据。
XmlDataSource(Stream, XmlDataLoadOptions)使用指定的 XML 数据加载选项,从 XML 流中创建新的数据源。
XmlDataSource(string, string)使用 XML Schema Definition 文件创建一个包含 XML 文件中数据的新数据源。默认选项 用于加载 XML 数据。
XmlDataSource(string, XmlDataLoadOptions)使用指定的 XML 数据加载选项,从 XML 文件创建新的数据源。
XmlDataSource(Stream, Stream, XmlDataLoadOptions)使用 XML Schema Definition 流创建一个包含 XML 流数据的新数据源。指定的 选项用于加载 XML 数据。
XmlDataSource(string, string, XmlDataLoadOptions)使用 XML 架构定义文件,使用 XML 文件中的数据创建新的数据源。指定的 选项用于加载 XML 数据。

评论

要在生成报告时访问相应文件或流的数据,请将此类的实例作为 数据源传递给以下之一ReportingEngine.BuildReport 重载.

在模板文档中,如果顶级 XML 元素仅包含相同类型的元素列表,则 XmlDataSource实例应该以与 相同的方式处理DataTable 实例。否则,XmlDataSource实例应该以与 相同的方式处理DataRow 实例。有关更多信息,请参阅模板语法参考 (https://docs.aspose.com/display/wordsnet/Template+Syntax)。

当 XML Schema Definition 传递给此类的构造函数时,简单 XML 元素 和属性的值的数据类型将根据该 Schema 确定。因此,在模板文档中,您可以使用类型化的值 ,而不仅仅是字符串。

如果未将 XML 模式定义传递给此类的构造函数,则简单 XML 元素 和属性的值的数据类型将根据其字符串表示形式自动确定。因此,在模板文档中,在这种情况下,您也可以使用 来处理类型化的值。引擎能够自动识别以下类型的值:

  • Nullable
  • Nullable
  • Nullable
  • Nullable
  • String

请注意,为了使数据类型自动识别能够正常工作,简单 XML 元素 和属性的值的字符串表示形式应使用不变的文化设置形成。

要覆盖 XML 数据加载的默认行为,请初始化并传递XmlDataLoadOptions 实例到此类的构造函数。

例子

展示如何使用 XML 作为数据源(字符串)。

Document doc = new Document(MyDir + "Reporting engine template - XML data destination.docx");

XmlDataSource dataSource = new XmlDataSource(MyDir + "List of people.xml");
BuildReport(doc, dataSource, "persons");

doc.Save(ArtifactsDir + "ReportingEngine.XmlDataString.docx");

展示如何使用 XML 作为数据源(流)。

Document doc = new Document(MyDir + "Reporting engine template - XML data destination.docx");

using (FileStream stream = File.OpenRead(MyDir + "List of people.xml"))
{
    XmlDataSource dataSource = new XmlDataSource(stream);
    BuildReport(doc, dataSource, "persons");
}

doc.Save(ArtifactsDir + "ReportingEngine.XmlDataStream.docx");

也可以看看