* Rules checking of XMLObjects \r
*/\r
\r
-#if !defined(__xmltooling_validator_h__)\r
+#ifndef __xmltooling_validator_h__\r
#define __xmltooling_validator_h__\r
\r
-#include <map>\r
-#include <vector>\r
-#include <xmltooling/QName.h>\r
#include <xmltooling/XMLObject.h>\r
\r
-#if defined (_MSC_VER)\r
- #pragma warning( push )\r
- #pragma warning( disable : 4250 4251 )\r
-#endif\r
-\r
namespace xmltooling {\r
\r
/**\r
*/\r
virtual Validator* clone() const=0;\r
\r
- /**\r
- * Evaluates the registered validators against the given XMLObject and it's children.\r
- * \r
- * @param xmlObject the XMLObject tree to validate\r
- * \r
- * @throws ValidationException thrown if the element tree is not valid\r
- */\r
- static void checkValidity(const XMLObject* xmlObject);\r
-\r
- /**\r
- * Registers a new validator for the given key.\r
- * \r
- * @param key the key used to retrieve the validator\r
- * @param validator the validator\r
- */\r
- static void registerValidator(const QName& key, Validator* validator) {\r
- std::map< QName, std::vector<Validator*> >::iterator i=m_map.find(key);\r
- if (i==m_map.end())\r
- m_map.insert(std::make_pair(key,std::vector<Validator*>(1,validator)));\r
- else\r
- i->second.push_back(validator);\r
- }\r
-\r
- /**\r
- * Deregisters validators.\r
- * \r
- * @param key the key for the validators to be deregistered\r
- */\r
- static void deregisterValidators(const QName& key);\r
-\r
- /**\r
- * Unregisters and destroys all registered validators. \r
- */\r
- static void destroyValidators();\r
-\r
protected:\r
Validator() {}\r
- \r
- private:\r
- static std::map< QName, std::vector<Validator*> > m_map;\r
};\r
\r
};\r
\r
-#if defined (_MSC_VER)\r
- #pragma warning( pop )\r
-#endif\r
-\r
#endif /* __xmltooling_validator_h__ */\r