Я создаю большой XML-файл с помощью XmlWriter и знаю, что с помощью
using (XmlWriter writer = XmlWriter.Create("file.xml", settings))
{
writer.WriteStartElement("Research", "http://www.rixml.org/2013/2/RIXML");
writer.WriteAttributeString("xmlns", "rixmldt", null, "http://www.rixml.org/2013/2/RIXML-datatypes");
writer.WriteAttributeString("xsi", "schemaLocation", null, "http://www.rixml.org/2013/2/RIXML");
//dropdown selection for reseach id?
writer.WriteAttributeString("researchID", "BOGUS ID");
writer.WriteAttributeString("language", "eng");
//fix date time
writer.WriteAttributeString("createdDateTime", System.DateTime.Now.Date.ToString());
writer.WriteAttributeString("xmlns", "xsi", null, "http://www.w3.org/2001/XMLSchema-instance");
writer.WriteStartElement("Product");
//dropdown selection for prioduct id?
writer.WriteAttributeString("productID", "asdf");
//status info
writer.WriteStartElement("StatusInfo");
writer.WriteAttributeString("currentStatusIndicatior", "Yes");
writer.WriteAttributeString("statusDateTime", System.DateTime.Now.Date.ToString());
writer.WriteAttributeString("statusType", "Published");
writer.WriteEndElement();
writer.WriteStartElement("Source");
writer.WriteStartElement("Organization");
//organization info
writer.WriteAttributeString("type", "SellSideFirm");
writer.WriteAttributeString("primaryIndicatior", "Yes");
//organization1
writer.WriteStartElement("OrganizationID");
writer.WriteAttributeString("idType", "Bloomberg");
writer.WriteString("1234");
writer.WriteEndElement();
//org 2
writer.WriteStartElement("OrganizationID");
writer.WriteAttributeString("idType", "FactSet");
writer.WriteString("rep_example");
writer.WriteEndElement();
....
writer.WriteEndElement();
writer.Flush();
}
Считается самым быстрым способом создания большого файла, но я не могу найти, чтобы кто-нибудь говорил (или в документах XmlWriter) о разделении всего этого на методы, которые генерируют фрагменты xml. Мой метод составляет около 150 строк, и я хотел бы сохранить его как можно более модульным, поскольку все заполняемые данные будут в основном извлечены из формы. Это означает, что метод, в котором находится этот оператор, также будет иметь массу аргументов.
Возможно ли что-то подобное без использования файлового потока или локального сохранения данных ради модульности / организации? Или это просто замедлит его?