/xmlbench/trunk

To get this branch, use:
bzr branch http://darksoft.org/webbzr/xmlbench/trunk

« back to all changes in this revision

Viewing changes to validate/tools/xml4c/DOMTreeErrorReporter.hpp

  • Committer: Suren A. Chilingaryan
  • Date: 2009-02-16 09:27:17 UTC
  • Revision ID: csa@dside.dyndns.org-20090216092717-wipyvaaw2srxhgns
Initial import

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * The Apache Software License, Version 1.1
 
3
 *
 
4
 * Copyright (c) 1999-2002 The Apache Software Foundation.  All rights
 
5
 * reserved.
 
6
 *
 
7
 * Redistribution and use in source and binary forms, with or without
 
8
 * modification, are permitted provided that the following conditions
 
9
 * are met:
 
10
 *
 
11
 * 1. Redistributions of source code must retain the above copyright
 
12
 *    notice, this list of conditions and the following disclaimer.
 
13
 *
 
14
 * 2. Redistributions in binary form must reproduce the above copyright
 
15
 *    notice, this list of conditions and the following disclaimer in
 
16
 *    the documentation and/or other materials provided with the
 
17
 *    distribution.
 
18
 *
 
19
 * 3. The end-user documentation included with the redistribution,
 
20
 *    if any, must include the following acknowledgment:
 
21
 *       "This product includes software developed by the
 
22
 *        Apache Software Foundation (http://www.apache.org/)."
 
23
 *    Alternately, this acknowledgment may appear in the software itself,
 
24
 *    if and wherever such third-party acknowledgments normally appear.
 
25
 *
 
26
 * 4. The names "Xerces" and "Apache Software Foundation" must
 
27
 *    not be used to endorse or promote products derived from this
 
28
 *    software without prior written permission. For written
 
29
 *    permission, please contact apache\@apache.org.
 
30
 *
 
31
 * 5. Products derived from this software may not be called "Apache",
 
32
 *    nor may "Apache" appear in their name, without prior written
 
33
 *    permission of the Apache Software Foundation.
 
34
 *
 
35
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
 
36
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 
37
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 
38
 * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
 
39
 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 
40
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 
41
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
 
42
 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 
43
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 
44
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
 
45
 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 
46
 * SUCH DAMAGE.
 
47
 * ====================================================================
 
48
 *
 
49
 * This software consists of voluntary contributions made by many
 
50
 * individuals on behalf of the Apache Software Foundation, and was
 
51
 * originally based on software copyright (c) 1999, International
 
52
 * Business Machines, Inc., http://www.ibm.com .  For more information
 
53
 * on the Apache Software Foundation, please see
 
54
 * <http://www.apache.org/>.
 
55
 */
 
56
 
 
57
/*
 
58
 * $Id: DOMTreeErrorReporter.hpp,v 1.8 2002/05/21 19:18:18 tng Exp $
 
59
 */
 
60
 
 
61
#include <xercesc/util/XercesDefs.hpp>
 
62
#include <xercesc/sax/ErrorHandler.hpp>
 
63
#include <iostream.h>
 
64
 
 
65
 
 
66
 
 
67
class DOMTreeErrorReporter : public ErrorHandler
 
68
{
 
69
public:
 
70
    // -----------------------------------------------------------------------
 
71
    //  Constructors and Destructor
 
72
    // -----------------------------------------------------------------------
 
73
    DOMTreeErrorReporter() :
 
74
       fSawErrors(false)
 
75
    {
 
76
    }
 
77
 
 
78
    ~DOMTreeErrorReporter()
 
79
    {
 
80
    }
 
81
 
 
82
 
 
83
    // -----------------------------------------------------------------------
 
84
    //  Implementation of the error handler interface
 
85
    // -----------------------------------------------------------------------
 
86
    void warning(const SAXParseException& toCatch);
 
87
    void error(const SAXParseException& toCatch);
 
88
    void fatalError(const SAXParseException& toCatch);
 
89
    void resetErrors();
 
90
 
 
91
    // -----------------------------------------------------------------------
 
92
    //  Getter methods
 
93
    // -----------------------------------------------------------------------
 
94
    bool getSawErrors() const;
 
95
 
 
96
    // -----------------------------------------------------------------------
 
97
    //  Private data members
 
98
    //
 
99
    //  fSawErrors
 
100
    //      This is set if we get any errors, and is queryable via a getter
 
101
    //      method. Its used by the main code to suppress output if there are
 
102
    //      errors.
 
103
    // -----------------------------------------------------------------------
 
104
    bool    fSawErrors;
 
105
};
 
106
 
 
107
inline bool DOMTreeErrorReporter::getSawErrors() const
 
108
{
 
109
    return fSawErrors;
 
110
}
 
111
 
 
112
// ---------------------------------------------------------------------------
 
113
//  This is a simple class that lets us do easy (though not terribly efficient)
 
114
//  trancoding of XMLCh data to local code page for display.
 
115
// ---------------------------------------------------------------------------
 
116
class StrX
 
117
{
 
118
public :
 
119
    // -----------------------------------------------------------------------
 
120
    //  Constructors and Destructor
 
121
    // -----------------------------------------------------------------------
 
122
    StrX(const XMLCh* const toTranscode)
 
123
    {
 
124
        // Call the private transcoding method
 
125
        fLocalForm = XMLString::transcode(toTranscode);
 
126
    }
 
127
 
 
128
    ~StrX()
 
129
    {
 
130
        delete [] fLocalForm;
 
131
    }
 
132
 
 
133
 
 
134
    // -----------------------------------------------------------------------
 
135
    //  Getter methods
 
136
    // -----------------------------------------------------------------------
 
137
    const char* localForm() const
 
138
    {
 
139
        return fLocalForm;
 
140
    }
 
141
 
 
142
private :
 
143
    // -----------------------------------------------------------------------
 
144
    //  Private data members
 
145
    //
 
146
    //  fLocalForm
 
147
    //      This is the local code page form of the string.
 
148
    // -----------------------------------------------------------------------
 
149
    char*   fLocalForm;
 
150
};
 
151
 
 
152
inline ostream& operator<<(ostream& target, const StrX& toDump)
 
153
{
 
154
    target << toDump.localForm();
 
155
    return target;
 
156
}
 
157