|
|||||||||
Рассмотрим принципы построения XML-документов и представления в них описаний объектов бизнес-приложений по технологии Dynamic XML:
Общие правила оформленияXML-документы формируются по правилам разметки, определенным в языке XML v.1.0
(Second Edition). Согласно эти правилам первой строкой любого XML-документа должна
быть следующая: Здесь windows-1251 означает, что все буквы в тегах XML-документа будут либо латинскими, либо русскими в кодировке ANSI. Далее могут быть еще несколько управляющих инструкций, в частности, задающих систему и конфигурацию, из \ или для которой сформирован XML-документ. А затем следует один корневой тег с набором вложенных тегов, составляющих собственно содержание документа. Объектный подходВсе данные в XML-документах оформляются в виде объектов прикладных классов. В XML-документе объект представляется в виде последовательности из открывающего тега - имени класса объектов, последовательности тегов - данных объекта и закрывающего тега. Для повышения визуальной читаемости XML-документа часть данных объекта может быть представлена в виде атрибутов в открывающем теге. Пространство имен объектов - тегов в XML-документе определяется в словаре метаданных Хранилища системы "Контур Корпорация". Интерфейс между представлением объекта в XML-документе и Хранилищем данных обеспечивается библиотекой прикладных классов. Пример: В приведенном примере <Счет> - название класса прикладных объектов, <Номер> и <Балансовый счет> - данные объекта. Причем, для того чтобы сразу было понятно, какой именно счет передается, "Номер" оформлен как атрибут открывающего тега. Сложные данныеДля обеспечения возможности передачи сложных конструкций, когда данными одного объекта может быть другой объект, классы прикладных объектов разделяются на две группы - прикладные объекты и списки таких объектов. Для повышения визуальной читаемости каждый объект-список в XML-документе должен иметь как минимум один атрибут открывающего тега - <Количество>, который показывает сколько прикладных объектов входит в этот список. При формировании XML-документа должен соблюдаться принцип чередования объектов этих групп. Т.е. данными объекта-списка кроме простых данных, могут быть только прикладные объекты, но не объекты-списки. И наоборот данными прикладного объекта могут быть только объекты-списки. Пример: В примере приведен банковский документ, содержащий две проводки. В этом случае одним из данных прикладного объект класса <Документ> является объект-список класса <Проводки>. Данными этого объекта, в свою очередь, являются прикладные объекты класса <Проводка>. Бинарные данныеНекоторые объекты могут содержать бинарные данные. Примерами могут служить графические образцы подписей клиентов, ключи электронных подписей, документы в формате MS Word и т.п. Эти данные не выводятся непосредственно в XML-документ. Они формируются как отдельные файлы в специально отведенном каталоге, а в XML-документ помещаются ссылки на них. При разборке XML-документа все происходит в обратном порядке - по ссылке находится файл и данные из него помещаются в атрибут объекта. Правила формирования и разборки XML-документовВ XML-документе должен присутствовать только один корневой тег. Он может быть фиктивным, если в документ необходимо положить несколько отдельных объектов. При разборке XML-документа такой тег игнорируется. Соответственно имя фиктивного тега не должно совпадать с именами классов объектов. Разборка XML-документа осуществляется одним из стандартных XML-парсеров. Обработка данных осуществляется в следующем порядке:
Пример: Тег <Сеанс> является фиктивным и игнорируется при разборке XML-документа. Закрывающие теги </Проводка>, также как и закрывающие теги простых данных, не приводят ни к какой обработке, так как закрывают теги третьего и более уровней. Закрывающие теги </Документ> завершают формирование объектов класса "Документ" со всеми его данными и вызывают соответствующую обработку. Например, создание объекта в БД и выполнение проводок по нему. Тега <Номер> в правильном документе быть не должно, т.к. в системе отсутствует класс объектов "Номер". Корректным является также XML-документ содержащий эту и только эту информацию:
|
|||||||||
![]() |
![]() |