OberonCore
https://forum.oberoncore.ru/

Xmlcore - реализация DOM и XML для BlackBox
https://forum.oberoncore.ru/viewtopic.php?f=90&t=1006
Страница 1 из 4

Автор:  Пётр Кушнир [ Вторник, 27 Май, 2008 23:05 ]
Заголовок сообщения:  Xmlcore - реализация DOM и XML для BlackBox

Приветствую!
Где то с год назад был разговор на форуме про создание подсистемы по работе с XML. Спор разгорелся на концептуальном уровне... и затих.
Совсем недавно производственная необходимость заставила вернуться к теме XML. Были изучены стандарты организации w3c http://www.w3c.org Document Object Model http://www.w3.org/DOM/ и eXtensible Markup Language http://www.w3.org/XML/.

DOM представляет собой интерфейсное описание структуры для хранения данных документа (изначально HTML). В основе лежит класс Узел дерева, который посредством расширения приобретает ту или иную функциональность для описания различных по содержанию и назначению фрагментов документа. Был реализован только начальный, самый первый уровень спецификации DOM, т.н. Level 1. Сейчас существует уже Level 3 со значительно расширенными возможностями.

XML представляет собой указания по разметке текста документа тегами, группы которых могут интерпретироваться специальными программами-процессорами(XML Processor) особым образом. Была реализована (не полностью) версия 1.0 редакция 4 данного стандарта. Из-за того, что название подсистемы "Xml" уже значится в списке занятых на сайте Ominc., подсистема была названа Xmlcore.(здесь была бы уместна идея пространства имён подсистем, например Ominc.Xml, Yaroslavl.Xml и т.д. - мысли вслух :-) ). В качестве основы для XML парсера(обработчика текста xml-документа) был взят парсер, включёный в состав WinAOS. Нереализованными остались обработка Нотаций(Notation), Деклараций разметки(Markup declaration), Сущностей(Entities) и Ссылок на сущности(Entity reference)(обратитесь к описанию XML для подробной информации).

Итог работы: Dom level 1 реализован. Xml 1.0 частично реализован. Формат выходного и входного файлов: текст с кодировкой UTF-8. Используется подсистема Basics для работы с динамическими строками. Есть демонстрационные программы для обеих подсистем. Документации пока нет.

Предлагаю сообществу включится в разработку такого, без сомнения, нужного и полезного инструмента как XML и довести функциональные фозможности компонент до современного уровня.

(модератор) 09.12.2010 размещено в коллекции: http://oberoncore.ru/bbcc/subs/xmlcore/

Автор:  Иван Левашев [ Воскресенье, 01 Июнь, 2008 09:39 ]
Заголовок сообщения:  Re: Реализация Document Object Model(DOM) и XML для BlackBox

XML — это не только DOM, но ещё и SAX.

Автор:  Иван Кузьмицкий [ Воскресенье, 01 Июнь, 2008 10:04 ]
Заголовок сообщения:  Re: Реализация Document Object Model(DOM) и XML для BlackBox

SAX, DOM - это всего лишь "углы взгляда" на документ в формате XML. Программные интерфейсы (API).
Цитата:
Эти интерфейсы дают разработчикам целостный интерфейс для работы с XML-документами. Существует много доступных API; ... наиболее популярные и наиболее часто используемые: Объектная Модель Документа (Document Object Model - DOM), Простой API для XML (Simple API for XML - SAX), JDOM и Java API для Разбора XML (Java API for XML Parsing - JAXP).

http://www.ibm.com/developerworks/ru/ed ... tion5.html

Стандарт SAX (http://www.saxproject.org) не является стандартом W3C. С помощью SAX можно только прочитать данные из XML-документа. Создавать и изменять XML-документы с его помощью невозможно.

DOM – стандарт W3C. Позволяет производить любые операции с XML-данными в достаточно удобной форме – представляя XML-документ как дерево объектов. Главный недостаток DOM - необходимо построить дерево документа сразу, загрузив документ в память целиком. На больших файлах начнутся тормоза и съедание памяти.

Автор:  Пётр Кушнир [ Воскресенье, 01 Июнь, 2008 12:57 ]
Заголовок сообщения:  Re: Реализация Document Object Model(DOM) и XML для BlackBox

OCTAGRAM писал(а):
XML — это не только DOM, но ещё и SAX.


XML - это XML. SAX это отдельная песня. Хотя если есть желание - реализуйте, лишним не будет...

Автор:  Пётр Кушнир [ Воскресенье, 01 Июнь, 2008 13:06 ]
Заголовок сообщения:  Re: Реализация Document Object Model(DOM) и XML для BlackBox

Иван Кузьмицкий писал(а):
Главный недостаток DOM - необходимо построить дерево документа сразу, загрузив документ в память целиком. На больших файлах начнутся тормоза и съедание памяти.


Его можно преодолеть, реализовав модуль загрузки файла по частям, для этого можно использовать особый тип интерфейса DOM - DocumentFragment.

Автор:  Иван Кузьмицкий [ Воскресенье, 01 Июнь, 2008 13:15 ]
Заголовок сообщения:  Re: Реализация Document Object Model(DOM) и XML для BlackBox

По идее, фрагментирование DOM должно быть абсолютно прозрачно. Я работаю чисто с DOM, а как конкретная реализация подгружает части XML-документа, знать не должен.

Автор:  Пётр Кушнир [ Воскресенье, 01 Июнь, 2008 13:32 ]
Заголовок сообщения:  Re: Реализация Document Object Model(DOM) и XML для BlackBox

Сейчас, Dom не связан с Xmlcore. Он сам по себе. Xmlcore импортирует Dom и производит с ним различные операции. Если потребуется обеспечить обратную связь, то придётся вводить некий управляющий слой, с которым вы будете работать, и который будет обеспечивать подгрузку данных из файла и изменение основной Dom-струкутры, с которой вы уже НЕ будете работать напрямую. Тогда самый удобный вариант для вас - получать по запросу фрагменты документа и обрабатывать их, затем отправлять обратно(если потребуется)

Автор:  Илья Ермаков [ Воскресенье, 01 Июнь, 2008 18:03 ]
Заголовок сообщения:  Re: Реализация Document Object Model(DOM) и XML для BlackBox

Интересно, а как оно там в XML СУБД делается... Типа "Седны" ИСП РАН-овской... Какие там интерфейсы...

Автор:  Иван Кузьмицкий [ Воскресенье, 01 Июнь, 2008 19:48 ]
Заголовок сообщения:  Re: Реализация Document Object Model(DOM) и XML для BlackBox

Почитал про Седну, очень интересно. Как я понял, у них полностью свой движок. Такая XML-СУБД может работать прослойкой между интерфейсом DOM и XML-документом.

http://www.citforum.ru/database/article ... va06.shtml
Цитата:
Во многих приложениях XML -документы обрабатываются в модели DOM или преобразуются с использованием процессоров XSLT . В обоих случаях, как правило, требуется присутствие в прямо адресуемой памяти всего обрабатываемого элемента. Поскольку для хранения документа, например, в модели DOM требуется примерно в десять раз больше памяти, чем для исходного XML -документа, большие документы обрабатывать оказывается невозможно. Здесь может помочь прирожденная XML -СУБД, в базе данных которой DOM или XSLT будут хранить узлы документа, извлекая их по мере потребности.

Автор:  Борис Рюмшин [ Вторник, 03 Июнь, 2008 15:54 ]
Заголовок сообщения:  Re: Реализация Document Object Model(DOM) и XML для BlackBox

Petryxa писал(а):
Предлагаю сообществу включится в разработку такого, без сомнения, нужного и полезного инструмента как XML и довести функциональные фозможности компонент до современного уровня.

Хм... от XML не далеко до реализации SVG...

Автор:  Иван Горячев [ Вторник, 03 Июнь, 2008 16:02 ]
Заголовок сообщения:  Re: Реализация Document Object Model(DOM) и XML для BlackBox

Борис Рюмшин писал(а):
Хм... от XML не далеко до реализации SVG...


А это насущный вопрос? SVG - тот ещё формат. Я недавно в википедии рылся, картинка в jpeg занимает 400 кб, та же самая картинка в svg - 1,5 мб и вешает Оперу :)

Автор:  Борис Рюмшин [ Вторник, 03 Июнь, 2008 16:03 ]
Заголовок сообщения:  Re: Реализация Document Object Model(DOM) и XML для BlackBox

Иван Горячев писал(а):
Борис Рюмшин писал(а):
Хм... от XML не далеко до реализации SVG...


А это насущный вопрос? SVG - тот ещё формат. Я недавно в википедии рылся, картинка в jpeg занимает 400 кб, та же самая картинка в svg - 1,5 мб и вешает Оперу :)

Это полезный формат... это векторный формат, к тому же стандартный.

Автор:  Борис Рюмшин [ Вторник, 03 Июнь, 2008 16:05 ]
Заголовок сообщения:  Re: Реализация Document Object Model(DOM) и XML для BlackBox

Борис Рюмшин писал(а):
Это полезный формат... это векторный формат, к тому же стандартный.

Тем более с учётом уже упоминавшегося здесь где-то AGG (http://antigrain.com/).

Автор:  Иван Кузьмицкий [ Вторник, 03 Июнь, 2008 16:36 ]
Заголовок сообщения:  Re: Реализация Document Object Model(DOM) и XML для BlackBox

Более того, векторная рисовалка InkScape, коей лично я пользуюсь заместо Корела - как раз хранит картинки в формате SVG.
И этот формат, он не только стандартный, а ещё и открытый.

Автор:  Trurl [ Вторник, 03 Июнь, 2008 21:22 ]
Заголовок сообщения:  Re: Реализация Document Object Model(DOM) и XML для BlackBox

Да будь он трижды стандартный и одиннадцатижды открытый, формат - говно.

Автор:  Иван Кузьмицкий [ Вторник, 03 Июнь, 2008 21:30 ]
Заголовок сообщения:  Re: Реализация Document Object Model(DOM) и XML для BlackBox

Trurl писал(а):
Да будь он трижды стандартный и одиннадцатижды открытый, формат - говно.
Личностное неприятие? :)

Автор:  Пётр Кушнир [ Вторник, 03 Июнь, 2008 23:06 ]
Заголовок сообщения:  Re: Реализация Document Object Model(DOM) и XML для BlackBox

Вести с полей :)

Сделал DOM Level 2 и прикрутил к Xmlcore поддержку XML Namespaces http://www.w3.org/TR/2006/REC-xml-names-20060816.
Ещё приделал трансляцию символов разметки в коды(как в HTML: & = "&amp;" ну и т.д.). Судя по всему, это и зовётся Entities. Для XML стандартные только: $ > < " ' остальные нужно описывать в Document Type Declaration. С ним ещё есть непонятки, если кто разбирается, подскажите, где всё это добро должно храниться, у DOM.DocumentType есть только два списка, entities и notations, не пойму, как в них уложить всё, что в спецификации по DTD?
Подсистемы прикрепил, но там немного всё сумбурно, демки дикие :)

Trurl писал(а):
Да будь он трижды стандартный и одиннадцатижды открытый, формат - говно.

Нууу, у меня Опера нормально показала тестовую картинку из Википедии. Значит, получается: формат - НЕ говно.

Автор:  Борис Рюмшин [ Вторник, 03 Июнь, 2008 23:34 ]
Заголовок сообщения:  Re: Реализация Document Object Model(DOM) и XML для BlackBox

Petryxa писал(а):
Вести с полей :)

Как на счёт того, чтобы поставить этот проект под управление SVN?

Автор:  Пётр Кушнир [ Среда, 04 Июнь, 2008 09:51 ]
Заголовок сообщения:  Re: Реализация Document Object Model(DOM) и XML для BlackBox

Ммм. Было бы неплохо. Ну тогда сообщите пожалуйста параметры SVN репозитория.

Автор:  Ярослав Романченко [ Среда, 04 Июнь, 2008 10:40 ]
Заголовок сообщения:  Re: Реализация Document Object Model(DOM) и XML для BlackBox

Иван Горячев писал(а):
... та же самая картинка в svg - 1,5 мб и вешает Оперу :)

Оперу запросто мог повесить Flash баннер на какой-то из закладок. То-ли баннеры кривые попадаются, то-ли плагин глючный. Вообще за Flash баннеры вбывав-бы :twisted:
Trurl писал(а):
Да будь он трижды стандартный и одиннадцатижды открытый, формат - говно.

Flash - говно похлеще ИМХО.

Страница 1 из 4 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/