Сохранение пробелов при сериализации
В этом разделе описывается управление пробелами при сериализации XML-дерева.
Типичный сценарий состоит в чтении XML с отступами, создании XML-дерева в памяти без текстовых узлов с пробелами (то есть без сохранения пробелов), выполнении определенных операций над XML и сохранении XML с отступами. При сериализации XML с форматированием сохраняются только значимые пробелы XML-дерева. Это поведение LINQ to XML по умолчанию.
Другой типичный сценарий заключается в чтении и изменении XML с уже существующими преднамеренными отступами. Эти отступы ни в коем случае изменять нельзя. Для этого в LINQ to XML можно сохранить пробелы при загрузке или синтаксическом анализе XML и отключить форматирование при сериализации XML.
Управление пробелами в методах сериализации XML-деревьев
Следующие методы классов XElement и XDocument позволяют сериализовать XML-дерево. Можно сериализовать XML-дерево в файл, объект TextReader или объект XmlReader. Метод ToString позволяет сериализовать в строку.
Если метод не берет объект SaveOptions в качестве аргумента, то этот метод отформатирует (расставит отступы) сериализованный XML. В этом случае все незначащие пробелы в XML-дереве удаляются.
Если метод берет объект SaveOptions в качестве аргумента, то можно указать, что этот метод не должен форматировать (расставлять отступы) сериализованный XML. В этом случае все незначащие пробелы в XML-дереве сохраняются.