private SsrsDataSet ReadDataSet(XDocument xml, string itemName, SsrsObjectPath containerPath) { var dataSourceReference = new DataSetXmlSchema().GetDataSourceReference(xml); return(new SsrsDataSet { Name = itemName, Path = containerPath + itemName, DataSourceReference = dataSourceReference.StartsWith("/") ? new SsrsObjectPath(dataSourceReference) : containerPath + dataSourceReference, Definition = new XmlObjectDefinition(xml) }); }
public SsrsObject ReadXml(XDocument xml, string itemName, SsrsObjectPath containerPath) { try { if (xml.Root.Name == "RptDataSource") { return(ReadDataSource(xml, itemName, containerPath)); } if (xml.Root.Name.LocalName == "Report" && ReportXmlSchema.IsReportNamespace(xml.Root.Name.Namespace, out _, out _)) { return(ReadReport(xml, itemName, containerPath)); } if (xml.Root.Name.LocalName == "SharedDataSet" && DataSetXmlSchema.IsDataSetNamespace(xml.Root.Name.Namespace, out _, out _)) { return(ReadDataSet(xml, itemName, containerPath)); } return(null); } catch (Exception ex) { throw new SsrsObjectParseException(containerPath + itemName, ex); } }