XmlDataSource
XmlDataSource class
Provides access to data of an XML file or stream to be used within a report.
To learn more, visit the LINQ Reporting Engine documentation article.
public class XmlDataSource
Constructors
Name | Description |
---|---|
XmlDataSource(Stream) | Creates a new data source with data from an XML stream using default options for XML data loading. |
XmlDataSource(string) | Creates a new data source with data from an XML file using default options for XML data loading. |
XmlDataSource(Stream, Stream) | Creates a new data source with data from an XML stream using an XML Schema Definition stream. Default options are used for XML data loading. |
XmlDataSource(Stream, XmlDataLoadOptions) | Creates a new data source with data from an XML stream using the specified options for XML data loading. |
XmlDataSource(string, string) | Creates a new data source with data from an XML file using an XML Schema Definition file. Default options are used for XML data loading. |
XmlDataSource(string, XmlDataLoadOptions) | Creates a new data source with data from an XML file using the specified options for XML data loading. |
XmlDataSource(Stream, Stream, XmlDataLoadOptions) | Creates a new data source with data from an XML stream using an XML Schema Definition stream. The specified options are used for XML data loading. |
XmlDataSource(string, string, XmlDataLoadOptions) | Creates a new data source with data from an XML file using an XML Schema Definition file. The specified options are used for XML data loading. |
Remarks
To access data of the corresponding file or stream while generating a report, pass an instance of this class as a data source to one of ReportingEngine
.BuildReport overloads.
In template documents, if a top-level XML element contains only a list of elements of the same type, an XmlDataSource
instance should be treated in the same way as if it was a DataTable instance. Otherwise, an XmlDataSource
instance should be treated in the same way as if it was a DataRow instance. For more information, see template syntax reference (https://docs.aspose.com/display/wordsnet/Template+Syntax).
When XML Schema Definition is passed to a constructor of this class, data types of values of simple XML elements and attributes are determined according to the schema. So in template documents, you can work with typed values rather than just strings.
When XML Schema Definition is not passed to a constructor of this class, data types of values of simple XML elements and attributes are determined automatically upon their string representations. So in template documents, you can work with typed values in this case as well. The engine is capable to automatically recognize values of the following types:
- Nullable
- Nullable
- Nullable
- Nullable
- String
Note that for automatic recognition of data types to work, string representations of values of simple XML elements and attributes should be formed using invariant culture settings.
To override default behavior of XML data loading, initialize and pass a XmlDataLoadOptions
instance to a constructor of this class.
Examples
Show how to use XML as a data source (string).
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");
Show how to use XML as a data source (stream).
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");
See Also
- namespace Aspose.Words.Reporting
- assembly Aspose.Words