Xerces-C++ 3.1.3

- Main Page
- Related Pages
- Classes
- Files

- File List
- File Members

XSAnnotation.hpp
Go to the documentation of this file.
1 /*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements. See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18 /*
19 * $Id: XSAnnotation.hpp 672273 2008-06-27 13:57:00Z borisk $
20 */
21
22 #if !defined(XERCESC_INCLUDE_GUARD_XSANNOTATION_HPP)
23 #define XERCESC_INCLUDE_GUARD_XSANNOTATION_HPP
24
25 #include <xercesc/framework/psvi/XSObject.hpp>
26 #include <xercesc/internal/XSerializable.hpp>
27
28 XERCES_CPP_NAMESPACE_BEGIN
29
37 // forward declarations
38 class DOMNode;
39 class ContentHandler;
40
41 class XMLPARSER_EXPORT XSAnnotation : public XSerializable, public XSObject
42 {
43 public:
44
45 // TargetType
46 enum ANNOTATION_TARGET {
50 W3C_DOM_ELEMENT = 1,
54 W3C_DOM_DOCUMENT = 2
55 };
56
57 // Constructors and Destructor
58 // -----------------------------------------------------------------------
61
68 XSAnnotation
69 (
70 const XMLCh* const contents
71 , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
72 );
73
75
78 ~XSAnnotation();
80
81 //---------------------
85
96 void writeAnnotation(DOMNode* node, ANNOTATION_TARGET targetType);
97
105 void writeAnnotation(ContentHandler* handler);
106
110 const XMLCh *getAnnotationString() const;
111 XMLCh *getAnnotationString();
112
114
115 //----------------------------------
118 void setNext(XSAnnotation* const nextAnnotation);
119 XSAnnotation* getNext();
121
122 //-----------------------------
125 inline void getLineCol(XMLFileLoc& line, XMLFileLoc& col) const;
126 inline const XMLCh* getSystemId() const;
128
129 //-----------------------------
132 inline void setLineCol(XMLFileLoc line, XMLFileLoc col);
133 void setSystemId(const XMLCh* const systemId);
135
136 /***
137 * Support for Serialization/De-serialization
138 ***/
139 DECL_XSERIALIZABLE(XSAnnotation)
140 XSAnnotation(MemoryManager* const manager);
141
142 private:
143
144 // -----------------------------------------------------------------------
145 // Unimplemented constructors and operators
146 // -----------------------------------------------------------------------
147 XSAnnotation(const XSAnnotation&);
148 XSAnnotation & operator=(const XSAnnotation &);
149
150 protected:
151
152 // -----------------------------------------------------------------------
153 // data members
154 // -----------------------------------------------------------------------
155 XMLCh* fContents;
156 XSAnnotation* fNext;
157
158 private:
159
160 XMLCh* fSystemId;
161 XMLFileLoc fLine;
162 XMLFileLoc fCol;
163
164 };
165
166 inline const XMLCh *XSAnnotation::getAnnotationString() const
167 {
168 return fContents;
169 }
170
171 inline XMLCh *XSAnnotation::getAnnotationString()
172 {
173 return fContents;
174 }
175
176 inline void XSAnnotation::getLineCol(XMLFileLoc& line, XMLFileLoc& col) const
177 {
178 line = fLine;
179 col = fCol;
180 }
181
182 inline const XMLCh* XSAnnotation::getSystemId() const
183 {
184 return fSystemId;
185 }
186
187 inline void XSAnnotation::setLineCol(XMLFileLoc line, XMLFileLoc col)
188 {
189 fLine = line;
190 fCol = col;
191 }
192
193 XERCES_CPP_NAMESPACE_END
194
195 #endif