protected override void DoRead(IDataQueue queue) { using (XmlReader xr = XmlReader.Create(GetWorkingFileName(), new XmlReaderSettings { CheckCharacters = false })) { m_loadedData = XmlDataTool.ReadXmlToQueue(xr, queue, "DataRow"); } FinalizeBulkCopy(); }
private void DoReadTable(NameWithSchema table, IDataQueue queue) { try { string fnbase = XmlTool.NormalizeIdentifier(table.ToString()); ZipEntry xmlEntry; try { xmlEntry = m_zip[fnbase + ".xml"]; } catch { xmlEntry = null; } ZipEntry drsEntry; try { drsEntry = m_zip[fnbase + ".drs"]; } catch { drsEntry = null; } if (drsEntry == null && xmlEntry == null) { var dbs = GetStructure(); if (dbs.Tables.GetIndex(table) < 0) { throw new InternalError("DAE-00019 Table not found in data archive:" + table.ToString()); } // table is empty, only has no drs nor xml file queue.PutEof(); return; } using (Stream fr = (drsEntry ?? xmlEntry).OpenReader()) { if (drsEntry != null) { BedTool.LoadQueue(fr, queue); } else if (xmlEntry != null) { using (XmlReader reader = XmlReader.Create(fr, new XmlReaderSettings { CheckCharacters = false })) { XmlDataTool.ReadXmlToQueue(reader, queue, "DataRow"); } } } } finally { queue.CloseWriting(); } }