xmlbeansxx
Разработчик(и) | ТуК |
---|---|
Предварительный выпуск | 0.9.1
/ 1 апреля 2008 г. |
Репозиторий | |
Тип | XML-привязка |
Лицензия | Апач 2.0 |
Веб-сайт | github |
xmlbeansxx — это программная платформа для C++ к привязки XML . Это программное обеспечение с открытым исходным кодом, лицензированное по лицензии Apache License 2.0.
Описание
[ редактировать ]xmlbeansxx — это инструмент, обеспечивающий доступ к XML удобным для C++ способом. Он похож на проект Apache XMLBeans и вдохновлен им . Подобно XMLBeans, xmlbeansxx предоставляет экземпляр определения схемы XML (XSD) генератору кода C++. Сгенерированный код можно позже вызвать для доступа к данным документа экземпляра XML.
Пример
[ редактировать ]Учитывая пример простого определения схемы XML, описывающего заказ на покупку, как показано в примерах из дистрибутивного пакета Apache XMLBeans, следующий код обрабатывает печать элементов из файла easypo.xml:
#include "EasyPO.h"
#include <iostream>
#include <fstream>
using namespace std;
using namespace xmlbeansxx;
using namespace xmlbeansxx::samples::enumeration::schemaenum::easypo;
int main() {
try {
fstream in("easypo.xml", ios::in);
PurchaseOrderDocument poDoc=PurchaseOrderDocument::Factory::parse(in);
LineItem giftLineItem = poDoc.getPurchaseOrder().addNewLineItem();
giftLineItem.setDescription(string("Calendar"));
giftLineItem.setPrice(3);
giftLineItem.setQuantity(6);
giftLineItem.setPerUnitOunces(10);
vector<LineItem> arr = poDoc.getPurchaseOrder().getLineItemArray();
for (unsigned i=0; i < arr.size() ; i++) {
cout << "item: " << i << "\n";
cout << " - description: " << arr[i].getDescription() << "\n";
cout << " - quantity: " << arr[i].getQuantity() << "\n";
cout << " - price: " << arr[i].getPrice() << "\n";
cout << " - amount: " << arr[i].getQuantity() * arr[i].getPrice() << "\n";
}
cout << "Xml:\n" << poDoc.toString() << "\n";
} catch (BeansException &ex) {
cout<<"BeansException: "<<ex.getMessage()<<"\n";
}
return 0;
}
История
[ редактировать ]Проект xmlbeansxx начался в 2004 году как попытка реализовать часть Apache XMLBeans на C++. Целью проекта было создание инструмента привязки XML на основе лицензии с открытым исходным кодом для использования в коммерческих проектах. Он успешно использовался в компании TouK в нескольких коммерческих проектах. xmlbeansxx развивался на протяжении многих лет, чтобы соответствовать текущим требованиям, поэтому он сильно изменился по сравнению с первоначальной версией.
Проект под названием xmlbeanscxx был представлен инкубатору Apache в 2005 году. Однако он не получил особых усилий в разработке, главным образом потому, что одна из поддерживающих компаний решила изменить свои цели и уйти. Проект все еще находится в разработке в компании TouK, которая является первоначальным участником.
Поддерживаемые компиляторы
[ редактировать ]Первоначально xmlbeansxx поддерживался в коллекции компиляторов GNU . С 2008 года версия 0.9.1 также поддерживала компилятор Microsoft Visual Studio . Это было сделано с помощью многоплатформенного инструмента сборки CMake .
См. также
[ редактировать ]- Apache XMLBeans
- Привязка XML-данных