#ifndef ARABICA_XSLT_PROCESSING_INSTRUCTION_HANDLER_HPP #define ARABICA_XSLT_PROCESSING_INSTRUCTION_HANDLER_HPP #include "../xslt_processing_instruction.hpp" #include "xslt_item_container_handler.hpp" namespace Arabica { namespace XSLT { template class ProcessingInstructionHandler : public ItemContainerHandler > { typedef ItemContainerHandler > baseT; public: ProcessingInstructionHandler(CompilationContext& context) : ItemContainerHandler >(context) { } // ProcessingInstructionHandler virtual ProcessingInstruction* createContainer(const string_type& /* namespaceURI */, const string_type& /* localName */, const string_type& qName, const SAX::Attributes& atts) { static const ValueRule rules[] = { { "name", true, 0, 0 }, { 0, false, 0, 0} }; string_type name = gatherAttributes(qName, atts, rules)["name"]; return new ProcessingInstruction(baseT::context().xpath_attribute_value_template(name)); } // createContainer }; // class ProcessingInstructionHandler } // namespace XSLT } // namespace Arabica #endif