#ifndef ARABICA_XSLT_FOREIGN_ELEMENT_HPP #define ARABICA_XSLT_FOREIGN_ELEMENT_HPP namespace Arabica { namespace XSLT { class ForeignElementHandler : public SAX::DefaultHandler { public: ForeignElementHandler(CompilationContext& context) : context_(context), depth_(0) { } // ForeignElementHandler virtual void startElement(const std::string& namespaceURI, const std::string& localName, const std::string& qName, const SAX::Attributes& atts) { ++depth_; } // startElement virtual void endElement(const std::string& namespaceURI, const std::string& localName, const std::string& qName) { if(--depth_ == 0) context_.pop(); } // endElement private: CompilationContext& context_; unsigned int depth_; }; // class ForeignElementHandler } // namespace XSLT } // namespace Arabica #endif