// file : xsd/cxx/parser/schema-exceptions.hxx // copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #ifndef XSD_CXX_PARSER_SCHEMA_EXCEPTIONS_HXX #define XSD_CXX_PARSER_SCHEMA_EXCEPTIONS_HXX #include namespace xsd { namespace cxx { namespace parser { template struct schema_exception { public: virtual ~schema_exception () { } unsigned long line () const { return line_; } void line (unsigned long l) { line_ = l; } unsigned long column () const { return column_; } void column (unsigned long c) { column_ = c; } const std::basic_string& id () const { return id_; } void id (const std::basic_string& id) { id_ = id; } virtual std::basic_string message () const = 0; protected: unsigned long line_; unsigned long column_; std::basic_string id_; }; // // template struct expected_element: schema_exception { virtual ~expected_element (); expected_element (const std::basic_string& expected_namespace, const std::basic_string& expected_name); expected_element (const std::basic_string& expected_namespace, const std::basic_string& expected_name, const std::basic_string& encountered_namespace, const std::basic_string& encountered_name); const std::basic_string& expected_namespace () const { return expected_namespace_; } const std::basic_string& expected_name () const { return expected_name_; } // Encountered element namespace and name are empty if none // encountered. // const std::basic_string& encountered_namespace () const { return encountered_namespace_; } const std::basic_string& encountered_name () const { return encountered_name_; } virtual std::basic_string message () const; private: std::basic_string expected_namespace_; std::basic_string expected_name_; std::basic_string encountered_namespace_; std::basic_string encountered_name_; }; // // template struct unexpected_element: schema_exception { virtual ~unexpected_element (); unexpected_element (const std::basic_string& encountered_namespace, const std::basic_string& encountered_name); const std::basic_string& encountered_namespace () const { return encountered_namespace_; } const std::basic_string& encountered_name () const { return encountered_name_; } virtual std::basic_string message () const; private: std::basic_string encountered_namespace_; std::basic_string encountered_name_; }; // // template struct dynamic_type: schema_exception { virtual ~dynamic_type () throw (); dynamic_type (const std::basic_string& type); const std::basic_string& type () const { return type_; } virtual std::basic_string message () const; private: std::basic_string type_; }; } } } #include #endif // XSD_CXX_PARSER_SCHEMA_EXCEPTIONS_HXX #include