#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