Обекти на сервизни данни (SDO) 2

данни

Въведение: Какво е SDO?

Service Data Object (SDO) 2.0 е отворен стандартен API за програмиране на модел на данни, който позволява на разработчиците да манипулират с лекота данни на високо ниво. Въпреки че SDO 1.0 се занимава със същите задачи за абстрахиране на данни, той има редица съществени недостатъци, като основният е липсата на помощни класове като XSDHelper, XMLHelper и т.н. В резултат на това разработчикът е принуден да използва интерфейсите за внедряване на SDO 1.0, които идват от SDK на Eclipse Modeling Framework (EMF).

Текущата реализация на SDO 2.0 използва EMF 2.2 SDK, но тази функция за изпълнение не засяга писането на програми за новия API. В бъдеще общността с отворен код на Apache Software Foundation може да реши да промени внедряването на SDO 2.0, но това не трябва да засяга приложения, които използват API на SDO 2.0.

Най-лесният начин да демонстрирате предимствата на новия API е да използвате SDO 2.0 за създаване и след това четене на документ, съвместим с XML Schema (XSD). За да направи това без SDO 2.0, разработчикът ще трябва да разбере как работи XML парсер и да интегрира плътно логиката за анализ на данните в приложението. По-късно, когато се промени XSD, ще трябва да се направят много промени в приложението, което застрашава качеството на кода.

Новите потребители на SDO 2.0 API ще се затруднят да разберат основните му идеи, просто като изучат спецификацията. За да им помогна, създадох пример от XML Schema for Beginners Tutorial (вж. Ресурси), който обяснява как да използвам SDO 2.0 API за:

  • Записване на XML документ на диск и
  • Неговите четения.

Сценарий: Събиране и предоставяне на информация за поръчки за покупка

Нека се опитаме да приложим този сценарий в нашия пример. Първо, компанията определя изискванията за информацията, съдържаща се в поръчките за покупка (PO). След това започваме да създаваме статична форма за структуриране на информация. В базите данни тази статична форма се нарича таблична схема. В XML тази статична форма се нарича XML схема (XSD). По-късно, ако трябва да съберем допълнителна информация за клиента, ще трябва да променим формата на таблицата/схемата/XSD.

Когато прави поръчка, клиентът трябва да попълни формуляра за поръчка или да предостави тази информация на попълващия формуляра оператор. Впоследствие информацията в този формуляр ще бъде използвана от компанията за доставяне на поръчката.

След като компанията получи информацията за поръчката, тя най-вероятно ще я запази и ще я използва по-късно, например, за подкрепа на клиент. В този пример можем да запазим информацията в XML формат и след това да я прочетем, използвайки SDO API.

Фигура 1 показва пример за информация за поръчка от клиента Робърт Смит. За да структурираме тази примерна поръчка, нека създадем XSD файл. Примерната поръчка се създава с помощта на програмата CreatePurchaseOrder.java в XML формат, наречена po.xml. И накрая, използвайки ReadPurchaseOrder.java, ние демонстрираме процеса на четене на информация за поръчките от po.xml .

Фигура 1. Пример за информация за поръчка от Робърт Смит

Информация за доставка:
Име: Алис Смит
Улица: 123 Maple Street
Град: Mill Valley
Щат: CA
Пощенски код: 90952
Държава: САЩ

Данни за плащане:
Име: Робърт Смит
Улица: 8 Oak Avenue
Град: Mill Valley
Щат: PA
Пощенски код: 95819
Държава: САЩ

Елементи за поръчка:
1. Номер на част: 872-AA
Име на продукта: Косачка
Количество: 1
Цена: 148,95
Коментар: Потвърдете, че е електрически

2. Номер на част: 926-AA
Име на продукта: Бебе Монитор
Количество: 1
Цена: 39,98
Дата на изпращане: 1999-05-21

Коментар: Побързайте, тревата ми дивее!

XML схема за поръчка за поръчка

Въз основа на примерната поръчка за покупка, показана на фигура 1, можем да създадем персонализиран тип данни за поръчки за покупка. Нека го наречем PurchaseOrderType. Екземпляр PurchaseOrderType може да съдържа четири основни раздела с данни:

  1. Информация за доставка
  2. Данни за плащане
  3. информация за артикулите за поръчка
  4. коментар

Информацията за доставка и информация за фактуриране може да съдържа допълнителни данни като име, улица, град, държава, пощенски код и държава. Информацията за артикулите за поръчка може да съдържа много данни за артикулите, поръчани от клиента. За всяка позиция може да се посочи номер на част, име на продукт, количество, цена, дата на доставка и коментар. Областта на коментарите (коментар) съдържа стойност на низ, не се изисква допълнително структуриране на тази информация.