private void CreateDataset(XmlReader reader, bool setColumnTypes, DataTable inTable, Dictionary <string, bool> columnsToConvertTimeFor) { if (inTable != null) { RowsetFormatter.DataTableCreator @object = new RowsetFormatter.DataTableCreator(inTable, setColumnTypes, columnsToConvertTimeFor); FormattersHelpers.LoadSchema(reader, new FormattersHelpers.ColumnDefinitionDelegate(@object.ConstructDataTableColumnDelegate)); return; } RowsetFormatter.DataSetCreator dataSetCreator = new RowsetFormatter.DataSetCreator(this.rowsetDataset, setColumnTypes, columnsToConvertTimeFor); FormattersHelpers.LoadSchema(reader, new FormattersHelpers.ColumnDefinitionDelegate(dataSetCreator.ConstructDataSetColumnDelegate)); this.rowsetDataset = dataSetCreator.DataSet; }
static NamespacesMgr() { NamespacesMgr.AdomdVersionTimeStamp = new DateTime(2003, 11, 1, CultureInfo.InvariantCulture.Calendar); NamespacesMgr.NamespaceCompatibilityXmlSchema = null; NamespacesMgr.compatibilityDataSet = null; NamespacesMgr.known = new string[] { "http://schemas.xmlsoap.org/soap/envelope/", "urn:schemas-microsoft-com:xml-analysis", "http://schemas.microsoft.com/analysisservices/2003/engine", "http://schemas.microsoft.com/analysisservices/2003/engine/2", "http://schemas.microsoft.com/analysisservices/2003/engine/2/2", "http://schemas.microsoft.com/analysisservices/2008/engine/100", "http://schemas.microsoft.com/analysisservices/2008/engine/100/100", "http://schemas.microsoft.com/analysisservices/2010/engine/200", "http://schemas.microsoft.com/analysisservices/2010/engine/200/200", "http://schemas.microsoft.com/analysisservices/2011/engine/300", "http://schemas.microsoft.com/analysisservices/2011/engine/300/300", "http://schemas.microsoft.com/analysisservices/2012/engine/400", "http://schemas.microsoft.com/analysisservices/2012/engine/400/400", "http://schemas.microsoft.com/analysisservices/2012/engine/410", "http://schemas.microsoft.com/analysisservices/2012/engine/410/410", "http://schemas.microsoft.com/analysisservices/2013/engine/500", "http://schemas.microsoft.com/analysisservices/2013/engine/500/500", "urn:schemas-microsoft-com:xml-analysis:rowset", "urn:schemas-microsoft-com:xml-analysis:mddataset", "urn:schemas-microsoft-com:xml-analysis:exception", "http://www.w3.org/2001/XMLSchema", "http://www.w3.org/2001/XMLSchema-instance", "urn:schemas-microsoft-com:xml-analysis:empty", "http://schemas.microsoft.com/analysisservices/2003/xmla", "http://schemas.microsoft.com/analysisservices/2003/ext", "http://schemas.microsoft.com/analysisservices/2003/xmla-multipleresults", "urn:schemas-microsoft-com:xml-analysis:fault", "", "urn:schemas-microsoft-com:xml-analysis:xmlDocumentDataset", "urn:schemas-microsoft-com:xml-sql" }; NamespacesMgr.NamespaceCompatibilityXmlSchema = string.Format(CultureInfo.InvariantCulture, "<xsd:schema targetNamespace=\"{0}\" xmlns = \"{1}\" xmlns:sql=\"{2}\" xmlns:xsd=\"{3}\" elementFormDefault=\"qualified\">\r\n\t\t\t\t<xsd:element name=\"{4}\">\r\n\t\t\t\t\t<xsd:complexType>\r\n\t\t\t\t\t\t<xsd:sequence minOccurs=\"0\" maxOccurs=\"unbounded\">\r\n\t\t\t\t\t\t\t<xsd:element name=\"{5}\" type=\"{5}\"/>\r\n\t\t\t\t\t\t</xsd:sequence>\r\n\t\t\t\t\t</xsd:complexType>\r\n\t\t\t\t</xsd:element>\r\n\t\t\t\t<xsd:complexType name=\"{5}\">\r\n\t\t\t\t\t<xsd:sequence>\r\n\t\t\t\t\t\t<xsd:element sql:field=\"{6}\" name=\"{6}\" type=\"xsd:string\"/>\r\n\t\t\t\t\t\t<xsd:element sql:field=\"{7}\" name=\"{7}\" minOccurs=\"0\" maxOccurs=\"unbounded\">\r\n\t\t\t\t\t\t\t<xsd:complexType>\r\n\t\t\t\t\t\t\t\t<xsd:sequence>\r\n\t\t\t\t\t\t\t\t\t<xsd:element sql:field=\"{8}\" name=\"{8}\" type=\"xsd:string\" minOccurs=\"0\"/>\r\n\t\t\t\t\t\t\t\t\t<xsd:element sql:field=\"{9}\" name=\"{9}\" type=\"xsd:dateTime\" minOccurs=\"0\"/>\r\n\t\t\t\t\t\t\t\t</xsd:sequence>\r\n\t\t\t\t\t\t\t</xsd:complexType>\r\n\t\t\t\t\t\t</xsd:element>\r\n\t\t\t\t\t</xsd:sequence>\r\n\t\t\t\t</xsd:complexType>\r\n\t\t\t</xsd:schema>", new object[] { "urn:schemas-microsoft-com:xml-analysis:rowset", "urn:schemas-microsoft-com:xml-analysis:rowset", "urn:schemas-microsoft-com:xml-sql", "http://www.w3.org/2001/XMLSchema", "root", "row", "Namespace", "Compatibility", "ProductBranch", "VersionTimeStamp" }); XmlReader xmlReader = null; try { xmlReader = XmlReader.Create(new StringReader(NamespacesMgr.NamespaceCompatibilityXmlSchema)); RowsetFormatter.DataSetCreator dataSetCreator = new RowsetFormatter.DataSetCreator(null, false, null); FormattersHelpers.LoadSchema(xmlReader, new FormattersHelpers.ColumnDefinitionDelegate(dataSetCreator.ConstructDataSetColumnDelegate)); NamespacesMgr.compatibilityDataSet = dataSetCreator.DataSet; } finally { if (xmlReader != null) { xmlReader.Close(); } } }