Skip to content

altmind/com_xmlparse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

5) Изучение расширяемого программирования на языке C++. В библиотеке расширяемого программирования Grom существует класс PropertyTree, который позволяет загружать настройки и другие данные из XML-файлов. В этом классе существуют 4 главных свойства: name, text, items, children. Следующий пример поясняет сказанное:

<name item1="..." item2="..." ... itemN="...">
    <child1 .../>
    <child2 .../>
    ...
    <childN .../>
    text
</name>

За счет того, что child-элемент - это объект класса PropertyTree, можно строить в памяти и загружать из XML-файлов любые иерархии. Однако класс PropertyTree не вполне адекватно представляет XML-файл в памяти. Дело в том, что text в XML-файлах может быть "размазан" среди множества child-элементов. Например:

<name item1="..." item2="..." ... itemN="...">
    text1
    <child1 .../>
    text2
    <child2 .../>
    text3
    ...
    <childN .../>
    textN
</name>

Если следовать формальному определению XML, то text - это такой же узел, как и child. Кроме того, даже атрибут - item - это child-узел. Т.е. XML должен быть построен следующим образом. Существует базовый класс - XMLNode. Он представляет собой любой узел XML-дерева. В нем есть список дочерних узлов. Дочерние узлы представляются производными классами: XMLAttribute - item, XMLText - text, XMLElement - child, XMLComment - коментарий, XMLCData - любые данные в формате ASCII, XMLInstruction - указание кодировки/схемы. Необходимо изучить класс PropertyTree в библиотеке Grom, а также интерфейсы библиотеки MSXML от Microsoft и создать в библиотеке Grom классы, реализующие полную поддержку XML. Написать тестовую программу, которая загружает XML в память, редактирует его и сохраняет на диск. Проверить правильность работы собственных классов с помощью классов MSXML. Таким образом, студенты ознакомятся с концепциями библиотеки Grom и одновременно изучат формат XML.

6) Построение программных компонентов. Переработать классы задания 5 так, чтобы их можно было использовать из программ, написанных на других языках программирования. Для этого воспользоваться понятием интерфейса. Допускается применение языка C++/CLI (это позволит воспользоваться классами на платформе .NET).

Ссылка на библотеку Grom: http://sourceforge.net/projects/grom/

About

OSIS Lab 6: export XML parser interface through COM

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published