diff -r 9aed8c2ea97d -r 3ab78bf63467 src/XMLCommand.h --- a/src/XMLCommand.h Thu Jan 10 20:05:13 2019 +0100 +++ b/src/XMLCommand.h Fri Jan 11 00:29:32 2019 +0100 @@ -30,6 +30,8 @@ #include +#include "StreamInputSource.h" + namespace relpipe { namespace in { namespace xml { @@ -40,7 +42,23 @@ void process(std::istream& input, std::ostream& output) { using namespace relpipe::writer; using namespace xercesc; - std::shared_ptr writer(Factory::create(output)); + unique_ptr writer(Factory::create(output)); + XMLPlatformUtils::Initialize(); + + + unique_ptr parser(XMLReaderFactory::createXMLReader()); + parser->setFeature(XMLUni::fgSAX2CoreValidation, true); + parser->setFeature(XMLUni::fgSAX2CoreNameSpaces, true); + + // TODO: custom handler that reads + DefaultHandler defaultHandler; + parser->setContentHandler(&defaultHandler); + parser->setErrorHandler(&defaultHandler); + + StreamInputSource inputSource(input); + + parser->parse(inputSource); + // TODO: remove demo // Various data types passed as strings @@ -53,7 +71,7 @@ writer->writeAttribute(L"a"); writer->writeAttribute(L"1"); writer->writeAttribute(L"true"); - + } };