Теперь, когда мы разобрались со всякого рода настройками, можно заняться самой программой. Типичный сценарий использования Xalan в программе можно проиллюстрировать следующим кодом:
Пример 9.2. Типовой сценарий использования Xalan
// Инициализируем Xerces XMLPlatformUtils::Initialize(); // Инициализируем класс XalanTransformer XalanTransformer::initialize(); // Создаём экземпляр класса XalatTransformer XalanTransformer theXalanTransformer; ... // Выполняем преобразование theXalanTransformer.transform( ... ); ... // Освобождаем XalanTransformer XalanTransformer::terminate(); // Освобождаем Xerces XMLPlatformUtils::Terminate();
В соответствии с этим сценарием наша программа будет выглядеть следующим образом:
#include "StdAfx.h"
#include "util/PlatformUtils.hpp"
#include "XalanTransformer/XalanTransformer.hpp"
#include "strstream"
int main(int argc, const char* argv[])
{
using std::cerr;
// Инициализируем Xerces
XMLPlatformUtils::Initialize();
// Инициализируем класс XalanTransformer
XalanTransformer::initialize();
// Создаём экземпляр класса XalanTransformer
XalanTransformer theXalanTransformer;
// Выполняем преобразование
int theResult = theXalanTransformer.transform("source.xml",
"stylesheet.xsl", "document.out");
// В случае, если произошла ошибка, выводим информацию о ней
if(theResult != 0)
{
cerr << "XalanError: \n" << theXalanTransformer.getLastError();
}
// Освобождаем XalanTransformer
XalanTransformer::terminate();
// Освобождаем Xerces
XMLPlatformUtils::Terminate();
return theResult;
}