Xalan-C++ API Reference
1.12.0
xalanc
XercesParserLiaison
Deprecated
XercesCommentBridge.hpp
Go to the documentation of this file.
1
/*
2
* Licensed to the Apache Software Foundation (ASF) under one
3
* or more contributor license agreements. See the NOTICE file
4
* distributed with this work for additional information
5
* regarding copyright ownership. The ASF licenses this file
6
* to you under the Apache License, Version 2.0 (the "License");
7
* you may not use this file except in compliance with the License.
8
* You may obtain a copy of the License at
9
*
10
* http://www.apache.org/licenses/LICENSE-2.0
11
*
12
* Unless required by applicable law or agreed to in writing, software
13
* distributed under the License is distributed on an "AS IS" BASIS,
14
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
* See the License for the specific language governing permissions and
16
* limitations under the License.
17
*/
18
#if !defined(XERCESCOMMENTBRIDGE_HEADER_GUARD_1357924680)
19
#define XERCESCOMMENTBRIDGE_HEADER_GUARD_1357924680
20
21
22
23
#include <
xalanc/XercesParserLiaison/XercesParserLiaisonDefinitions.hpp
>
24
25
26
27
#if XERCES_VERSION_MAJOR >= 2
28
#include <xercesc/dom/deprecated/DOM_Comment.hpp>
29
#else
30
#include <xercesc/dom/DOM_Comment.hpp>
31
#endif
32
33
34
35
#include <
xalanc/XalanDOM/XalanComment.hpp
>
36
37
38
39
#include <
xalanc/XercesParserLiaison/Deprecated/XercesBridgeTypes.hpp
>
40
41
42
43
namespace
XALAN_CPP_NAMESPACE
{
44
45
46
47
class
XercesBridgeNavigator;
48
49
50
/**
51
* This class is deprecated.
52
*
53
* @deprecated This class is part of the deprecated Xerces DOM bridge.
54
*/
55
class
XALAN_XERCESPARSERLIAISON_EXPORT
XercesCommentBridge
:
public
XalanComment
56
{
57
public
:
58
59
XercesCommentBridge
(
60
const
DOM_CommentType
& theXercesComment,
61
const
XercesBridgeNavigator
& theNavigator);
62
63
virtual
64
~
XercesCommentBridge
();
65
66
67
/**
68
* Gets the name of this node.
69
*/
70
virtual
const
XalanDOMString
&
71
getNodeName()
const
;
72
73
/**
74
* Gets the value of this node, depending on its type.
75
*/
76
virtual
const
XalanDOMString
&
77
getNodeValue()
const
;
78
79
/**
80
* An enum value representing the type of the underlying object.
81
*/
82
virtual
NodeType
83
getNodeType()
const
;
84
85
/**
86
* Gets the parent of this node.
87
*
88
* All nodes, except <code>Document</code>,
89
* <code>DocumentFragment</code>, and <code>Attr</code> may have a parent.
90
* However, if a node has just been created and not yet added to the tree,
91
* or if it has been removed from the tree, a <code>null</code> DOM_Node
92
* is returned.
93
*/
94
virtual
XalanNode
*
95
getParentNode()
const
;
96
97
/**
98
* Gets a <code>NodeList</code> that contains all children of this node.
99
*
100
* If there
101
* are no children, this is a <code>NodeList</code> containing no nodes.
102
* The content of the returned <code>NodeList</code> is "live" in the sense
103
* that, for instance, changes to the children of the node object that
104
* it was created from are immediately reflected in the nodes returned by
105
* the <code>NodeList</code> accessors; it is not a static snapshot of the
106
* content of the node. This is true for every <code>NodeList</code>,
107
* including the ones returned by the <code>getElementsByTagName</code>
108
* method.
109
*/
110
virtual
const
XalanNodeList
*
111
getChildNodes()
const
;
112
113
/**
114
* Gets the first child of this node.
115
*
116
* If there is no such node, this returns <code>null</code>.
117
*/
118
virtual
XalanNode
*
119
getFirstChild()
const
;
120
121
/**
122
* Gets the last child of this node.
123
*
124
* If there is no such node, this returns <code>null</code>.
125
*/
126
virtual
XalanNode
*
127
getLastChild()
const
;
128
129
/**
130
* Gets the node immediately preceding this node.
131
*
132
* If there is no such node, this returns <code>null</code>.
133
*/
134
virtual
XalanNode
*
135
getPreviousSibling()
const
;
136
137
/**
138
* Gets the node immediately following this node.
139
*
140
* If there is no such node, this returns <code>null</code>.
141
*/
142
virtual
XalanNode
*
143
getNextSibling()
const
;
144
145
/**
146
* Gets a <code>NamedNodeMap</code> containing the attributes of this node (if it
147
* is an <code>Element</code>) or <code>null</code> otherwise.
148
*/
149
virtual
const
XalanNamedNodeMap
*
150
getAttributes()
const
;
151
152
/**
153
* Gets the <code>DOM_Document</code> object associated with this node.
154
*
155
* This is also
156
* the <code>DOM_Document</code> object used to create new nodes. When this
157
* node is a <code>DOM_Document</code> or a <code>DOM_DocumentType</code>
158
* which is not used with any <code>DOM_Document</code> yet, this is
159
* <code>null</code>.
160
*/
161
virtual
XalanDocument
*
162
getOwnerDocument()
const
;
163
164
//@}
165
/** @name Cloning function. */
166
//@{
167
168
/**
169
* Returns a duplicate of this node.
170
*
171
* This function serves as a generic copy constructor for nodes.
172
*
173
* The duplicate node has no parent (
174
* <code>parentNode</code> returns <code>null</code>.).
175
* <br>Cloning an <code>Element</code> copies all attributes and their
176
* values, including those generated by the XML processor to represent
177
* defaulted attributes, but this method does not copy any text it contains
178
* unless it is a deep clone, since the text is contained in a child
179
* <code>Text</code> node. Cloning any other type of node simply returns a
180
* copy of this node.
181
* @param deep If <code>true</code>, recursively clone the subtree under the
182
* specified node; if <code>false</code>, clone only the node itself (and
183
* its attributes, if it is an <code>Element</code>).
184
* @return The duplicate node.
185
*/
186
virtual
XercesCommentBridge
*
187
cloneNode(
bool
deep)
const
;
188
189
//@}
190
/** @name Functions to modify the DOM Node. */
191
//@{
192
193
/**
194
* Inserts the node <code>newChild</code> before the existing child node
195
* <code>refChild</code>.
196
*
197
* If <code>refChild</code> is <code>null</code>,
198
* insert <code>newChild</code> at the end of the list of children.
199
* <br>If <code>newChild</code> is a <code>DocumentFragment</code> object,
200
* all of its children are inserted, in the same order, before
201
* <code>refChild</code>. If the <code>newChild</code> is already in the
202
* tree, it is first removed. Note that a <code>DOM_Node</code> that
203
* has never been assigned to refer to an actual node is == null.
204
* @param newChild The node to insert.
205
* @param refChild The reference node, i.e., the node before which the new
206
* node must be inserted.
207
* @return The node being inserted.
208
*/
209
virtual
XalanNode
*
210
insertBefore(
211
XalanNode
* newChild,
212
XalanNode
* refChild);
213
214
/**
215
* Replaces the child node <code>oldChild</code> with <code>newChild</code>
216
* in the list of children, and returns the <code>oldChild</code> node.
217
*
218
* If <CODE>newChild</CODE> is a <CODE>DOM_DocumentFragment</CODE> object,
219
* <CODE>oldChild</CODE> is replaced by all of the <CODE>DOM_DocumentFragment</CODE>
220
* children, which are inserted in the same order.
221
*
222
* If the <code>newChild</code> is already in the tree, it is first removed.
223
* @param newChild The new node to put in the child list.
224
* @param oldChild The node being replaced in the list.
225
* @return The node replaced.
226
*/
227
virtual
XalanNode
*
228
replaceChild(
229
XalanNode
* newChild,
230
XalanNode
* oldChild);
231
232
/**
233
* Removes the child node indicated by <code>oldChild</code> from the list
234
* of children, and returns it.
235
*
236
* @param oldChild The node being removed.
237
* @return The node removed.
238
*/
239
virtual
XalanNode
*
240
removeChild(
XalanNode
* oldChild);
241
242
/**
243
* Adds the node <code>newChild</code> to the end of the list of children of
244
* this node.
245
*
246
* If the <code>newChild</code> is already in the tree, it is
247
* first removed.
248
* @param newChild The node to add.If it is a <code>DocumentFragment</code>
249
* object, the entire contents of the document fragment are moved into
250
* the child list of this node
251
* @return The node added.
252
*/
253
virtual
XalanNode
*
254
appendChild(
XalanNode
* newChild);
255
256
//@}
257
/** @name Query functions. */
258
//@{
259
260
/**
261
* This is a convenience method to allow easy determination of whether a
262
* node has any children.
263
*
264
* @return <code>true</code> if the node has any children,
265
* <code>false</code> if the node has no children.
266
*/
267
virtual
bool
268
hasChildNodes()
const
;
269
270
271
//@}
272
/** @name Set functions. */
273
//@{
274
275
/**
276
* Sets the value of the node.
277
*
278
* Any node which can have a nodeValue (@see getNodeValue) will
279
* also accept requests to set it to a string. The exact response to
280
* this varies from node to node -- Attribute, for example, stores
281
* its values in its children and has to replace them with a new Text
282
* holding the replacement value.
283
*
284
* For most types of Node, value is null and attempting to set it
285
* will throw DOMException(NO_MODIFICATION_ALLOWED_ERR). This will
286
* also be thrown if the node is read-only.
287
*/
288
virtual
void
289
setNodeValue(
const
XalanDOMString
& nodeValue);
290
291
//@}
292
/** @name Functions introduced in DOM Level 2. */
293
//@{
294
295
/**
296
* Puts all <CODE>DOM_Text</CODE>
297
* nodes in the full depth of the sub-tree underneath this <CODE>DOM_Node</CODE>,
298
* including attribute nodes, into a "normal" form where only markup (e.g.,
299
* tags, comments, processing instructions, CDATA sections, and entity
300
* references) separates <CODE>DOM_Text</CODE>
301
* nodes, i.e., there are no adjacent <CODE>DOM_Text</CODE>
302
* nodes. This can be used to ensure that the DOM view of a document is the
303
* same as if it were saved and re-loaded, and is useful when operations
304
* (such as XPointer lookups) that depend on a particular document tree
305
* structure are to be used.
306
* <P><B>Note:</B> In cases where the document contains <CODE>DOM_CDATASections</CODE>,
307
* the normalize operation alone may not be sufficient, since XPointers do
308
* not differentiate between <CODE>DOM_Text</CODE>
309
* nodes and <CODE>DOM_CDATASection</CODE> nodes.</P>
310
*/
311
virtual
void
312
normalize();
313
314
/**
315
* Tests whether the DOM implementation implements a specific
316
* feature and that feature is supported by this node.
317
* @param feature The string of the feature to test. This is the same
318
* name as what can be passed to the method <code>hasFeature</code> on
319
* <code>DOMImplementation</code>.
320
* @param version This is the version number of the feature to test. In
321
* Level 2, version 1, this is the string "2.0". If the version is not
322
* specified, supporting any version of the feature will cause the
323
* method to return <code>true</code>.
324
* @return Returns <code>true</code> if the specified feature is supported
325
* on this node, <code>false</code> otherwise.
326
*/
327
virtual
bool
328
isSupported(
329
const
XalanDOMString
& feature,
330
const
XalanDOMString
& version)
const
;
331
332
/**
333
* Get the <em>namespace URI</em> of
334
* this node, or <code>null</code> if it is unspecified.
335
* <p>
336
* This is not a computed value that is the result of a namespace lookup
337
* based on an examination of the namespace declarations in scope. It is
338
* merely the namespace URI given at creation time.
339
* <p>
340
* For nodes of any type other than <CODE>ELEMENT_NODE</CODE> and
341
* <CODE>ATTRIBUTE_NODE</CODE> and nodes created with a DOM Level 1 method,
342
* such as <CODE>createElement</CODE> from the <CODE>Document</CODE>
343
* interface, this is always <CODE>null</CODE>.
344
*/
345
virtual
const
XalanDOMString
&
346
getNamespaceURI()
const
;
347
348
/**
349
* Get the <em>namespace prefix</em>
350
* of this node, or <code>null</code> if it is unspecified.
351
*/
352
virtual
const
XalanDOMString
&
353
getPrefix()
const
;
354
355
/**
356
* Returns the local part of the <em>qualified name</em> of this node.
357
* <p>
358
* For nodes created with a DOM Level 1 method, such as
359
* <code>createElement</code> from the <code>DOM_Document</code> interface,
360
* it is null.
361
*/
362
virtual
const
XalanDOMString
&
363
getLocalName()
const
;
364
365
/**
366
* Set the <em>namespace prefix</em> of this node.
367
* <p>
368
* Note that setting this attribute, when permitted, changes
369
* the <CODE>nodeName</CODE> attribute, which holds the <EM>qualified
370
* name</EM>, as well as the <CODE>tagName</CODE> and <CODE>name</CODE>
371
* attributes of the <CODE>DOM_Element</CODE> and <CODE>DOM_Attr</CODE>
372
* interfaces, when applicable.
373
* <p>
374
* Note also that changing the prefix of an
375
* attribute, that is known to have a default value, does not make a new
376
* attribute with the default value and the original prefix appear, since the
377
* <CODE>namespaceURI</CODE> and <CODE>localName</CODE> do not change.
378
*
379
* @param prefix The prefix of this node.
380
* @exception DOMException
381
* INVALID_CHARACTER_ERR: Raised if the specified prefix contains
382
* an illegal character.
383
* <br>
384
* NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
385
* <br>
386
* NAMESPACE_ERR: Raised if the specified <CODE>prefix</CODE> is
387
* malformed, if the specified prefix is "xml" and the
388
* <CODE>namespaceURI</CODE> of this node is different from
389
* "http://www.w3.org/XML/1998/namespace", if specified prefix is
390
* "xmlns" and the <CODE>namespaceURI</CODE> is neither
391
* <CODE>null</CODE> nor an empty string, or if the
392
* <CODE>localName</CODE> is <CODE>null</CODE>.
393
*/
394
virtual
void
395
setPrefix(
const
XalanDOMString
& prefix);
396
397
virtual
bool
398
isIndexed()
const
;
399
400
virtual
IndexType
401
getIndex()
const
;
402
403
//@}
404
405
// These interfaces are inherited from XalanCDATASection...
406
407
/** @name Getter functions. */
408
//@{
409
/**
410
* Returns the character data of the node that implements this interface.
411
*
412
* The DOM implementation may not put arbitrary limits on the amount of data that
413
* may be stored in a <code>CharacterData</code> node. However,
414
* implementation limits may mean that the entirety of a node's data may
415
* not fit into a single <code>DOMString</code>. In such cases, the user
416
* may call <code>substringData</code> to retrieve the data in
417
* appropriately sized pieces.
418
* @exception DOMException
419
* NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
420
* @exception DOMException
421
* DOMSTRING_SIZE_ERR: Raised when it would return more characters than
422
* fit in a <code>DOMString</code> variable on the implementation
423
* platform.
424
*/
425
virtual
const
XalanDOMString
&
426
getData()
const
;
427
428
/**
429
* Returns the number of characters that are available through <code>data</code> and
430
* the <code>substringData</code> method below.
431
*
432
* This may have the value
433
* zero, i.e., <code>CharacterData</code> nodes may be empty.
434
*/
435
virtual
unsigned
int
436
getLength()
const
;
437
438
/**
439
* Extracts a range of data from the node.
440
*
441
* @param offset Start offset of substring to extract.
442
* @param count The number of characters to extract.
443
* @return The specified substring. If the sum of <code>offset</code> and
444
* <code>count</code> exceeds the <code>length</code>, then all
445
* characters to the end of the data are returned.
446
* @exception DOMException
447
* INDEX_SIZE_ERR: Raised if the specified offset is negative or greater
448
* than the number of characters in <code>data</code>, or if the
449
* specified <code>count</code> is negative.
450
* <br>DOMSTRING_SIZE_ERR: Raised if the specified range of text does not
451
* fit into a <code>DOMString</code>.
452
*/
453
virtual
XalanDOMString
454
substringData(
455
unsigned
int
offset,
456
unsigned
int
count)
const
;
457
458
//@}
459
/** @name Functions that set or change data. */
460
//@{
461
/**
462
* Append the string to the end of the character data of the node.
463
*
464
* Upon success, <code>data</code> provides access to the concatenation of
465
* <code>data</code> and the <code>DOMString</code> specified.
466
* @param arg The <code>DOMString</code> to append.
467
* @exception DOMException
468
* NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
469
*/
470
virtual
void
471
appendData(
const
XalanDOMString
& arg);
472
473
/**
474
* Insert a string at the specified character offset.
475
*
476
* @param offset The character offset at which to insert.
477
* @param arg The <code>DOMString</code> to insert.
478
* @exception DOMException
479
* INDEX_SIZE_ERR: Raised if the specified offset is negative or greater
480
* than the number of characters in <code>data</code>.
481
* <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
482
*/
483
virtual
void
484
insertData(
485
unsigned
int
offset,
486
const
XalanDOMString
& arg);
487
488
/**
489
* Remove a range of characters from the node.
490
*
491
* Upon success,
492
* <code>data</code> and <code>length</code> reflect the change.
493
* @param offset The offset from which to remove characters.
494
* @param count The number of characters to delete. If the sum of
495
* <code>offset</code> and <code>count</code> exceeds <code>length</code>
496
* then all characters from <code>offset</code> to the end of the data
497
* are deleted.
498
* @exception DOMException
499
* INDEX_SIZE_ERR: Raised if the specified offset is negative or greater
500
* than the number of characters in <code>data</code>, or if the
501
* specified <code>count</code> is negative.
502
* <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
503
*/
504
virtual
void
505
deleteData(
506
unsigned
int
offset,
507
unsigned
int
count);
508
509
/**
510
* Replace the characters starting at the specified character offset with
511
* the specified string.
512
*
513
* @param offset The offset from which to start replacing.
514
* @param count The number of characters to replace. If the sum of
515
* <code>offset</code> and <code>count</code> exceeds <code>length</code>
516
* , then all characters to the end of the data are replaced (i.e., the
517
* effect is the same as a <code>remove</code> method call with the same
518
* range, followed by an <code>append</code> method invocation).
519
* @param arg The <code>DOMString</code> with which the range must be
520
* replaced.
521
* @exception DOMException
522
* INDEX_SIZE_ERR: Raised if the specified offset is negative or greater
523
* than the number of characters in <code>data</code>, or if the
524
* specified <code>count</code> is negative.
525
* <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
526
*/
527
virtual
void
528
replaceData(
529
unsigned
int
offset,
530
unsigned
int
count,
531
const
XalanDOMString
& arg);
532
533
/**
534
* Get the Xerces node this instance represent.
535
*
536
* @return The Xerces node
537
*/
538
DOM_CommentType
539
getXercesNode
()
const
540
{
541
return
m_xercesNode;
542
}
543
544
//@}
545
546
private
:
547
548
// Not implemented...
549
XercesCommentBridge
(
const
XercesCommentBridge
& theSource);
550
551
XercesCommentBridge
&
552
operator=(
const
XercesCommentBridge
& theSource);
553
554
bool
555
operator==
(
const
XercesCommentBridge
& theRHS)
const
;
556
557
// Data members...
558
DOM_CommentType
m_xercesNode;
559
560
const
XercesBridgeNavigator
& m_navigator;
561
};
562
563
564
565
}
566
567
568
569
#endif // !defined(XERCESCOMMENTBRIDGE_HEADER_GUARD_1357924680)
xalanc::XalanComment
Definition:
XalanComment.hpp:32
XALAN_CPP_NAMESPACE
#define XALAN_CPP_NAMESPACE
Xalan-C++ namespace, including major and minor version.
Definition:
XalanVersion.hpp:76
xalanc::XalanNode
Definition:
XalanNode.hpp:38
xalanc::XalanNode::NodeType
NodeType
Definition:
XalanNode.hpp:47
xalanc::XercesCommentBridge
This class is deprecated.
Definition:
XercesCommentBridge.hpp:55
XalanComment.hpp
xalanc::XalanDocument
Definition:
XalanDocument.hpp:36
xalanc::operator==
bool operator==(const XalanVector< Type > &theLHS, const XalanVector< Type > &theRHS)
Definition:
XalanVector.hpp:1118
xalanc::XalanNode::IndexType
unsigned long IndexType
Definition:
XalanNode.hpp:64
XercesParserLiaisonDefinitions.hpp
xalanc::XalanNodeList
Definition:
XalanNodeList.hpp:36
xalanc::XercesCommentBridge::getXercesNode
DOM_CommentType getXercesNode() const
Get the Xerces node this instance represent.
Definition:
XercesCommentBridge.hpp:539
xalanc::DOM_CommentType
xercesc::DOM_Comment DOM_CommentType
Definition:
XercesBridgeTypes.hpp:64
XALAN_XERCESPARSERLIAISON_EXPORT
#define XALAN_XERCESPARSERLIAISON_EXPORT
Definition:
XercesParserLiaisonDefinitions.hpp:39
xalanc::XalanNamedNodeMap
Definition:
XalanNamedNodeMap.hpp:36
xalanc::XercesBridgeNavigator
This class is deprecated.
Definition:
XercesBridgeNavigator.hpp:55
xalanc::XalanDOMString
Definition:
XalanDOMString.hpp:45
XercesBridgeTypes.hpp
Copyright © 1999-2020 The Apache Software Foundation. All Rights Reserved.
Generated on Sun May 31 2020 10:37:19 for Xalan-C++ API Reference by
1.8.17