XML - статьи


Достоинства и ограничения подхода


Главное достоинство предлагаемого способа заключается в чрезвычайной простоте работы с XML-документом. В качестве примера приведем элементарный пример работы со следующим исходным текстом: <?xml version="1.0" encoding="windows-1251"?> <ED EDNo="805253" EDDate="2005-03-01" EDAuthor="4552000000"/>

Фрагмент программного кода, показывающего работу с атрибутами документа:

// объект CED ed;

// 1. чтение документа (инициализация реквизитов объекта) ed.readDocument(fileName);

// 2. изменение реквизитов ed.EDNo = "1"; ed.EDDate = "2010-03-22"; ed.EDAuthor = "4552000001";

// 3. запись измененного XML-документа ed.writeDocument(fileName);

Выходной документ: <?xml version="1.0" encoding="windows-1251"?> <ED EDNo="1" EDDate="2010-03-22" EDAuthor="4552000001"/>

Этот пример хорошо иллюстрирует цепочку преобразований «XML –> объект –> XML», обеспечивающую последовательное чтение, изменение и запись XML-документа. Объект в середине этой цепочки является представлением документа в виде, удобном для использования в прикладных программах.

Естественно, за любое удобство надо платить. В данном случае платой является то, что с помощью таких объектов можно работать только с документами заранее известной структуры. При изменении структуры документов необходимо, кроме участков кода, где используются реквизиты объекта, менять и само объявление класса, описывающего представление документа.

Здесь мы намеренно не касаемся вопросов эффективного использования оперативной памяти – это отдельная задача, которая должна решаться для каждого конкретного случая. Во всяком случае, автору представляется, что предложенное решение в этом отношении ничуть не хуже, чем использование DOM, но обладает большей гибкостью и удобством использования.



Содержание раздела