Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Существуют различные типы XML-приложений:
- Некоторые приложения принимают исходные XML-документы и создают новые XML-документы, которые находятся в другой форме, чем исходные документы.
- Некоторые приложения принимают исходные XML-документы и создают результаты документов в совершенно другой форме, например HTML или CSV-файлы.
- Некоторые приложения принимают исходные XML-документы и вставляют записи в базу данных.
- Некоторые приложения принимают данные из другого источника, например базы данных, и создают XML-документы из него.
Это не все типы XML-приложений, но это репрезентативный набор типов функций, которые должен реализовать программист XML.
При использовании всех этих типов приложений существует два контрастных подхода, которые разработчик может принять:
- Функциональное построение с помощью декларативного подхода.
- Изменение дерева XML в памяти с помощью процедурного кода.
LINQ to XML поддерживает оба подхода.
При использовании функционального подхода вы записываете преобразования, которые принимают исходные документы и создают совершенно новые документы результатов с требуемой фигурой.
При изменении дерева XML на месте, необходимо написать код, который перебирает и обходит узлы в находящемся в памяти дереве XML, вставляя, удаляя и изменяя узлы по мере необходимости.
С помощью LINQ to XML можно использовать любой подход. Вы используете одни и те же классы, а в некоторых случаях и те же методы. Однако структура и цели двух подходов отличаются. Например, в разных ситуациях один или другой подход часто будет иметь лучшую производительность и использовать больше или меньше памяти. Кроме того, один из подходов будет проще писать и приведет к более поддерживаемому коду.
Чтобы увидеть контрастность двух подходов, см . изменение дерева XML в памяти и функциональное построение.
Руководство по написанию функциональных преобразований см. в статье "Общие сведения о чистых функциональных преобразованиях".