#ifndef XML_SHALLOW_VALIDATOR_H #define XML_SHALLOW_VALIDATOR_H #include #include #include #include #include #include #include "wrapexpat.h" struct XmlShallowValidatorData : public ParserData { XmlShallowValidatorData() {} std::map > elementMap; std::map > > attributeMap; std::map > requiredAttributeMap; std::set entitySet; std::vector > positionVector; bool isValid, segmentOnly; int depth, maxLine; XML_Parser p; bool overrideFailure; }; class XmlShallowValidator : public WrapExpat { public: XmlShallowValidator( std::map > &elementMap, std::map > > &attributeMap, std::map > &requiredAttributeMap, std::set &entitySet, int maxLine = 0, bool segmentOnly = false); virtual ~XmlShallowValidator(); bool isValid(); std::vector > getPositionVector(); bool getOverrideFailure(); private: std::auto_ptr vd; static void XMLCALL start(void *data, const XML_Char *el, const XML_Char **attr); static void XMLCALL end(void *data, const XML_Char *el); static void XMLCALL skippedentity(void *data, const XML_Char *entityName, int is_parameter_entity); }; #endif