#ifndef ARABICA_XSLT_IF_HANDLER_HPP #define ARABICA_XSLT_IF_HANDLER_HPP #include "../xslt_if.hpp" #include "xslt_item_container_handler.hpp" namespace Arabica { namespace XSLT { template class IfHandler : public ItemContainerHandler > { typedef StylesheetConstant SC; public: IfHandler(CompilationContext& context) : ItemContainerHandler >(context) { } // IfHandler virtual If* createContainer(const string_type& /* namespaceURI */, const string_type& /* localName */, const string_type& qName, const SAX::Attributes& atts) { static const ValueRule rules[] = { { SC::test, true, 0, 0 }, { string_adaptor::empty_string(), false, 0, 0 } }; string_type test = gatherAttributes(qName, atts, rules)[SC::test]; return new If(ItemContainerHandler >::context().xpath_expression(test)); } // startElement }; // class IfHandler } // namespace XSLT } // namespace Arabica #endif