/// <summary> /// parses <see cref="InsertBatchQuery"/> from <paramref name="tableDataXmlNode"/>. /// </summary> /// <param name="tableDataXmlNode"></param> /// <returns> /// <see cref="InsertBatchQuery"/> parsed from <paramref name="tableDataXmlNode"/> /// </returns> /// <exception cref="InsertBatchQueryParseException"> /// thrown if <see cref="InsertBatchQuery"/> parse failed /// </exception> public static InsertBatchQuery Parse(XmlNode tableDataXmlNode) { try { InsertBatchQuery insertBatchQuery; // get table name string tableName = tableDataXmlNode.GetAttributeValue("name"); // parse InsertQueries from row data XmlNodeList XmlNodeList rowDataXmlNodeList = tableDataXmlNode.GetNodes("row"); InsertQuery[] insertQueries = new InsertQuery[rowDataXmlNodeList.Count]; for (int i = 0; i < rowDataXmlNodeList.Count; i++) { XmlNode rowDataXmlNode = rowDataXmlNodeList[i]; insertQueries[i] = InsertQuery.Parse(rowDataXmlNode, tableName); } insertBatchQuery = new InsertBatchQuery(tableName, insertQueries); return(insertBatchQuery); } catch (Exception exception) { // exception while trying to parse InsertBatch if ( exception is XmlNodeMissingNodeException || exception is XmlNodeMissingAttributeException || exception is InsertQueryParseException) { throw new InsertBatchQueryParseException(null, exception); } else // unhandled exception { throw exception; } } }