расположение страницы : bookresearch.ru / Разработчику / Библиотека работы с ONIX XML /

Библиотека работы с ONIX XML

[ Андрей Чудин Андрей Чудин ]

Версия 2.0 от xx.05.2004

Библиотека onixxml Library предназначена для работы с файлами в формате ONIX XML, предоставляя удобный программный интерфейс к данным. С ее помощью возможна загрузка данных из файла ONIX XML, их изменеие (добавление, удаление), а также сохранение в файл.

Библиотека содержит в себе COM объект 'onixxml.TONIXXML', в который встроен парсер для десериализации данных ONIX XML. Таким образом, наличие дополнительных сторонних библиотек не требуется.

Изменения

  • версия 1.1 : добавлена секция коммерческих документов
  • версия 1.2 : снято ограничение single instance
  • версия 2.0 :при наличии в объекте коммерческих документов создается файл Bookcommerce XML, при отсутствии - ONIX XML. Добавлено множество полей, см. onixxml.idl в комплекте с библиотекой

Ограничения версии 1.1

  • Нет доступа к секции коммерческих документов (накладные, заказы etc). Появится в версии 1.1 в ближайшее время.
  • Число авторов (Contributor) у издания ограничено одним

Регистрация

  • Регистрация библиотеки выполняется командой regsvr32 "[путь к библиотеке\]onixxml.dll". Для регистрации необходимы права локального администратора.
  • При использовании в Delphi рекомендуется добавить исключение XMLSerializerException в список игнорируемых.

Степень поддержки стандарта. Элемент Product

В настоящей версии(1.2) степень поддержки стандарта ограничена, но поддерживает основные, необходимые на практике поля данных.

Схема стандарта представлена в документе Графическое представление ONIX DTD Список полей элемента Product:

   { ONIX Group PR1 Record reference number and type }
   RecordReferencestring
   NotificationTypeInteger
   RecordSourceTypeInteger
   RecordSourceIdentifierTypeInteger
   RecordSourceIdentifierstring
   { ONIX Group PR2 Product numbers }
   ISBN
   EAN13
   PublisherProductNostring
   { ONIX Group PR3 Product form }
   ProductForm
   { ONIX Group PR7 Title }
   DistinctiveTitle
   TranslationOfTitle
   { ONIX Group PR8 Authorship }
   Contributor
   { ONIX Group PR11 Language }
   LanguageOfText
   OriginalLanguage
   { ONIX Group PR12 Pagination and other content }
   NumberOfPages
   IllustrationsNote
   { ONIX Group PR19 Publisher }
   CityOfPublication
   ImprintName
   PublisherName
   { ONIX Group PR20 Publishing dates }
   PublicationDate
   { ONIX Group PR22 Dimensions }
   Thicknes
   Height
   Width
   Weight
   { ONIX Group PR15 Descriptions and other supporting text }
   MainDescription
   { ONIX Group PR16 Links to image/audio/video files }
   CoverImageLinkTypeCode
   CoverImageLink
   { ONIX Group PR24 Supplier, availability and prices }
   SupplyDetail
   { ONIX Group PR13 Subject }
   Subjects { not implemented yet }

Расширение стандарта. ONIX-Z section

Для расширения стандарта ONIX использована предназначенная для этого логическая секция Z. В ней расположены коммерческие документы - CommercialDocuments. Более подробная документация будет размещена на сайте позднее. Пока же все примеры в приводимых ниже исходниках.

Производительность

Загрузка XML документа в объект дает вполне приемлемую производительность. Тестирование дало следующие результаты (сопоставление с MS XML Parser).

Документ: формат ONIX XML размером 10 мб.
Системная конфигурация: Celeron 450 / 256 / Windows 2000prof
парсерприблизительное время загрузки
MS XML Parser 2.6 синхронная загрузка без проверки состоятельности~6 сек
MS XML Parser 2.6 синхронная загрузка с проверкой состоятельности ~11 сек
Парсер onixxml Library8,5 сек

Библиотека загружает данные в синхронном режиме. Она не использует DTD или схемы. При загрузке проводится проверка правильности (well-formed) и частично - состоятельности (valid). При нарушении правильности документа парсер выдаст соответствующее исключение и прекратит загрузку.

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

Пример клиентского кода

 Пример клиентского кода на Delphi

Сохраняет пустой документ в файл. Как можно понять, весть код по работе с компонентом тождественен функциональности, показанной в примере на Delphi. Перед использованием необходима регистрация компонента в системе

 Пример клиентского кода 1C

MIDL интерфейс библиотеки

Свойства Index у интерфейсов предназначены только для внутреннего использования.

 MIDL интерфейс библиотеки версии 1.2

Загрузить версию 1.2 от 16.09.2002 (260 кб)

Загрузить версию 2.0 от xx.05.2004 (340 кб)

Весь материал, размещенный на сайте www.bookresearch.ru, является собственностью авторов соответствующих материалов. Любая перепечатка и перенос материалов на другие сайты возможны только с разрешения авторов и администратора сайта. Любой может предложить свой материал для публикации у нас. Пишите администратору сайта.

www.bookresearch.ru
Home  : Издателю и книготорговцу : Библиографу : Разработчику : IT-менеджеру : О проекте : Форум : Software - программное обеспечение для книжной отрасли :

  дизайн —
  SiteBuilder.ru


Этот сайт создан при помощи программы Globus SiteBuilder
Этот сайт создан при помощи программы Globus SiteBuilder