root/win32/xsd-3.1.0-i686/libxsd/xsd/cxx/parser/schema-exceptions.hxx @ 124

Revision 111, 4.1 kB (checked in by mido, 16 years ago)

pridana knihovna XSD (a jeji chlebodarkyne XERCES), v ramci Win32 zprovoznen priklad tests/test_xsd_hello.cxx

Line 
1// file      : xsd/cxx/parser/schema-exceptions.hxx
2// author    : Boris Kolpackov <boris@codesynthesis.com>
3// copyright : Copyright (c) 2005-2008 Code Synthesis Tools CC
4// license   : GNU GPL v2 + exceptions; see accompanying LICENSE file
5
6#ifndef XSD_CXX_PARSER_SCHEMA_EXCEPTIONS_HXX
7#define XSD_CXX_PARSER_SCHEMA_EXCEPTIONS_HXX
8
9#include <string>
10
11namespace xsd
12{
13  namespace cxx
14  {
15    namespace parser
16    {
17      template <typename C>
18      struct schema_exception
19      {
20      public:
21        virtual
22        ~schema_exception ()
23        {
24        }
25
26        unsigned long
27        line () const
28        {
29          return line_;
30        }
31
32        void
33        line (unsigned long l)
34        {
35          line_ = l;
36        }
37
38        unsigned long
39        column () const
40        {
41          return column_;
42        }
43
44        void
45        column (unsigned long c)
46        {
47          column_ = c;
48        }
49
50        const std::basic_string<C>&
51        id () const
52        {
53          return id_;
54        }
55
56        void
57        id (const std::basic_string<C>& id)
58        {
59          id_ = id;
60        }
61
62        virtual std::basic_string<C>
63        message () const = 0;
64
65      protected:
66        unsigned long line_;
67        unsigned long column_;
68        std::basic_string<C> id_;
69      };
70
71      //
72      //
73      template <typename C>
74      struct expected_element: schema_exception<C>
75      {
76        virtual
77        ~expected_element ();
78
79        expected_element (const std::basic_string<C>& expected_namespace,
80                          const std::basic_string<C>& expected_name);
81
82        expected_element (const std::basic_string<C>& expected_namespace,
83                          const std::basic_string<C>& expected_name,
84                          const std::basic_string<C>& encountered_namespace,
85                          const std::basic_string<C>& encountered_name);
86
87        const std::basic_string<C>&
88        expected_namespace () const
89        {
90          return expected_namespace_;
91        }
92
93        const std::basic_string<C>&
94        expected_name () const
95        {
96          return expected_name_;
97        }
98
99        // Encountered element namespace and name are empty if none
100        // encountered.
101        //
102        const std::basic_string<C>&
103        encountered_namespace () const
104        {
105          return encountered_namespace_;
106        }
107
108        const std::basic_string<C>&
109        encountered_name () const
110        {
111          return encountered_name_;
112        }
113
114        virtual std::basic_string<C>
115        message () const;
116
117      private:
118        std::basic_string<C> expected_namespace_;
119        std::basic_string<C> expected_name_;
120
121        std::basic_string<C> encountered_namespace_;
122        std::basic_string<C> encountered_name_;
123      };
124
125
126      //
127      //
128      template <typename C>
129      struct unexpected_element: schema_exception<C>
130      {
131        virtual
132        ~unexpected_element ();
133
134        unexpected_element (const std::basic_string<C>& encountered_namespace,
135                            const std::basic_string<C>& encountered_name);
136
137        const std::basic_string<C>&
138        encountered_namespace () const
139        {
140          return encountered_namespace_;
141        }
142
143        const std::basic_string<C>&
144        encountered_name () const
145        {
146          return encountered_name_;
147        }
148
149        virtual std::basic_string<C>
150        message () const;
151
152      private:
153        std::basic_string<C> encountered_namespace_;
154        std::basic_string<C> encountered_name_;
155      };
156
157      //
158      //
159      template <typename C>
160      struct dynamic_type: schema_exception<C>
161      {
162        virtual
163        ~dynamic_type () throw ();
164
165        dynamic_type (const std::basic_string<C>& type);
166
167        const std::basic_string<C>&
168        type () const
169        {
170          return type_;
171        }
172
173        virtual std::basic_string<C>
174        message () const;
175
176      private:
177        std::basic_string<C> type_;
178      };
179    }
180  }
181}
182
183#include <xsd/cxx/parser/schema-exceptions.txx>
184
185#endif  // XSD_CXX_PARSER_SCHEMA_EXCEPTIONS_HXX
186
187#include <xsd/cxx/parser/schema-exceptions.ixx>
Note: See TracBrowser for help on using the browser.