Xerces-C++ 3.1.3

- Main Page
- Related Pages
- Classes
- Files

- File List
- File Members

DOMDocument.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: DOMDocument.hpp 932887 2010-04-11 13:04:59Z borisk $
20 */
21
22 #if !defined(XERCESC_INCLUDE_GUARD_DOMDOCUMENT_HPP)
23 #define XERCESC_INCLUDE_GUARD_DOMDOCUMENT_HPP
24
25 #include <xercesc/util/XercesDefs.hpp>
26 #include <xercesc/dom/DOMNode.hpp>
27 #include <xercesc/dom/DOMDocumentRange.hpp>
28 #include <xercesc/dom/DOMDocumentTraversal.hpp>
29 #include <xercesc/dom/DOMXPathEvaluator.hpp>
30
31 XERCES_CPP_NAMESPACE_BEGIN
32
33 class DOMConfiguration;
34 class DOMDocumentType;
35 class DOMElement;
36 class DOMDocumentFragment;
37 class DOMComment;
38 class DOMCDATASection;
39 class DOMProcessingInstruction;
40 class DOMAttr;
41 class DOMEntity;
42 class DOMEntityReference;
43 class DOMImplementation;
44 class DOMNodeFilter;
45 class DOMNodeList;
46 class DOMNotation;
47 class DOMText;
48 class DOMNode;
49
50
64 class CDOM_EXPORT DOMDocument: public DOMDocumentRange,
65 public DOMXPathEvaluator,
66 public DOMDocumentTraversal,
67 public DOMNode {
68
69
70 protected:
71 // -----------------------------------------------------------------------
72 // Hidden constructors
73 // -----------------------------------------------------------------------
76 DOMDocument() {};
78
79 private:
80 // -----------------------------------------------------------------------
81 // Unimplemented constructors and operators
82 // -----------------------------------------------------------------------
85 DOMDocument(const DOMDocument &);
86 DOMDocument & operator = (const DOMDocument &);
88
89 public:
90 // -----------------------------------------------------------------------
91 // All constructors are hidden, just the destructor is available
92 // -----------------------------------------------------------------------
99 virtual ~DOMDocument() {};
101
102 // -----------------------------------------------------------------------
103 // Virtual DOMDocument interface
104 // -----------------------------------------------------------------------
127 virtual DOMElement *createElement(const XMLCh *tagName) = 0;
128
134 virtual DOMDocumentFragment *createDocumentFragment() = 0;
135
142 virtual DOMText *createTextNode(const XMLCh *data) = 0;
143
150 virtual DOMComment *createComment(const XMLCh *data) = 0;
151
159 virtual DOMCDATASection *createCDATASection(const XMLCh *data) = 0;
160
172 virtual DOMProcessingInstruction *createProcessingInstruction(const XMLCh *target,
173 const XMLCh *data) = 0;
174
175
192 virtual DOMAttr *createAttribute(const XMLCh *name) = 0;
193
194
212 virtual DOMEntityReference *createEntityReference(const XMLCh *name) = 0;
213
225 virtual DOMDocumentType *getDoctype() const = 0;
226
232 virtual DOMImplementation *getImplementation() const = 0;
233
239 virtual DOMElement *getDocumentElement() const = 0;
240
255 virtual DOMNodeList *getElementsByTagName(const XMLCh *tagname) const = 0;
256
258
261
360 virtual DOMNode *importNode(const DOMNode *importedNode, bool deep) = 0;
361
417 virtual DOMElement *createElementNS(const XMLCh *namespaceURI,
418 const XMLCh *qualifiedName) = 0;
419
482 virtual DOMAttr *createAttributeNS(const XMLCh *namespaceURI,
483 const XMLCh *qualifiedName) = 0;
484
497 virtual DOMNodeList *getElementsByTagNameNS(const XMLCh *namespaceURI,
498 const XMLCh *localName) const = 0;
499
513 virtual DOMElement * getElementById(const XMLCh *elementId) const = 0;
515
518
525 virtual const XMLCh* getInputEncoding() const = 0;
526
534 virtual const XMLCh* getXmlEncoding() const = 0;
535
542 virtual bool getXmlStandalone() const = 0;
543
551 virtual void setXmlStandalone(bool standalone) = 0;
552
560 virtual const XMLCh* getXmlVersion() const = 0;
561
569 virtual void setXmlVersion(const XMLCh* version) = 0;
570
579 virtual const XMLCh* getDocumentURI() const = 0;
588 virtual void setDocumentURI(const XMLCh* documentURI) = 0;
589
600 virtual bool getStrictErrorChecking() const = 0;
611 virtual void setStrictErrorChecking(bool strictErrorChecking) = 0;
612
657 virtual DOMNode* renameNode(DOMNode* n, const XMLCh* namespaceURI, const XMLCh* qualifiedName) = 0;
658
659
719 virtual DOMNode* adoptNode(DOMNode* source) = 0;
720
741 virtual void normalizeDocument() = 0;
742
743
751 virtual DOMConfiguration* getDOMConfig() const = 0;
752
754
755 // -----------------------------------------------------------------------
756 // Non-standard extension
757 // -----------------------------------------------------------------------
767 virtual DOMEntity *createEntity(const XMLCh *name) = 0;
768
777 virtual DOMDocumentType *createDocumentType(const XMLCh *name) = 0;
778
779 /***
780 * Provide default implementation to maintain source code compatibility
781 ***/
782 virtual DOMDocumentType* createDocumentType(const XMLCh *qName,
783 const XMLCh*, //publicId,
784 const XMLCh* //systemId
785 )
786 {
787 return createDocumentType(qName);
788 }
789
798 virtual DOMNotation *createNotation(const XMLCh *name) = 0;
799
809 virtual DOMElement *createElementNS(const XMLCh *namespaceURI,
810 const XMLCh *qualifiedName,
811 const XMLFileLoc lineNum,
812 const XMLFileLoc columnNum) = 0;
814
815 };
816
817 XERCES_CPP_NAMESPACE_END
818
819 #endif