Warning, file /include/QtXml/qdom.h was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004 #ifndef QDOM_H
0005 #define QDOM_H
0006
0007 #include <QtXml/qtxmlglobal.h>
0008
0009 #include <QtCore/qcompare.h>
0010 #include <QtCore/qcontainertools_impl.h>
0011 #include <QtCore/qstring.h>
0012
0013 #include <iterator>
0014
0015 #if QT_CONFIG(dom)
0016
0017 class tst_QDom;
0018
0019 QT_BEGIN_NAMESPACE
0020
0021 class QIODevice;
0022 class QTextStream;
0023
0024 class QDomDocumentPrivate;
0025 class QDomDocumentTypePrivate;
0026 class QDomDocumentFragmentPrivate;
0027 class QDomNodePrivate;
0028 class QDomNodeListPrivate;
0029 class QDomImplementationPrivate;
0030 class QDomElementPrivate;
0031 class QDomNotationPrivate;
0032 class QDomEntityPrivate;
0033 class QDomEntityReferencePrivate;
0034 class QDomProcessingInstructionPrivate;
0035 class QDomAttrPrivate;
0036 class QDomCharacterDataPrivate;
0037 class QDomTextPrivate;
0038 class QDomCommentPrivate;
0039 class QDomCDATASectionPrivate;
0040 class QDomNamedNodeMapPrivate;
0041 class QDomImplementationPrivate;
0042
0043 class QDomNodeList;
0044 class QDomElement;
0045 class QDomText;
0046 class QDomComment;
0047 class QDomCDATASection;
0048 class QDomProcessingInstruction;
0049 class QDomAttr;
0050 class QDomEntityReference;
0051 class QDomDocument;
0052 class QDomNamedNodeMap;
0053 class QDomDocument;
0054 class QDomDocumentFragment;
0055 class QDomDocumentType;
0056 class QDomImplementation;
0057 class QDomNode;
0058 class QDomEntity;
0059 class QDomNotation;
0060 class QDomCharacterData;
0061 class QXmlStreamReader;
0062
0063 class Q_XML_EXPORT QDomImplementation
0064 {
0065 public:
0066 QDomImplementation();
0067 QDomImplementation(const QDomImplementation &implementation);
0068 ~QDomImplementation();
0069 QDomImplementation& operator=(const QDomImplementation &other);
0070 bool operator==(const QDomImplementation &other) const;
0071 bool operator!=(const QDomImplementation &other) const;
0072
0073
0074 bool hasFeature(const QString& feature, const QString& version) const;
0075 QDomDocumentType createDocumentType(const QString& qName, const QString& publicId, const QString& systemId);
0076 QDomDocument createDocument(const QString& nsURI, const QString& qName, const QDomDocumentType& doctype);
0077
0078 enum InvalidDataPolicy { AcceptInvalidChars = 0, DropInvalidChars, ReturnNullNode };
0079 static InvalidDataPolicy invalidDataPolicy();
0080 static void setInvalidDataPolicy(InvalidDataPolicy policy);
0081
0082
0083 bool isNull();
0084
0085 private:
0086 QDomImplementationPrivate* impl;
0087 QDomImplementation(QDomImplementationPrivate*);
0088
0089 friend class QDomDocument;
0090 };
0091
0092 class Q_XML_EXPORT QDomNode
0093 {
0094 public:
0095 enum NodeType {
0096 ElementNode = 1,
0097 AttributeNode = 2,
0098 TextNode = 3,
0099 CDATASectionNode = 4,
0100 EntityReferenceNode = 5,
0101 EntityNode = 6,
0102 ProcessingInstructionNode = 7,
0103 CommentNode = 8,
0104 DocumentNode = 9,
0105 DocumentTypeNode = 10,
0106 DocumentFragmentNode = 11,
0107 NotationNode = 12,
0108 BaseNode = 21,
0109 CharacterDataNode = 22
0110 };
0111
0112 enum EncodingPolicy
0113 {
0114 EncodingFromDocument = 1,
0115 EncodingFromTextStream = 2
0116 };
0117
0118 QDomNode();
0119 QDomNode(const QDomNode &node);
0120 QDomNode& operator=(const QDomNode &other);
0121 bool operator==(const QDomNode &other) const;
0122 bool operator!=(const QDomNode &other) const;
0123 ~QDomNode();
0124
0125
0126 QDomNode insertBefore(const QDomNode& newChild, const QDomNode& refChild);
0127 QDomNode insertAfter(const QDomNode& newChild, const QDomNode& refChild);
0128 QDomNode replaceChild(const QDomNode& newChild, const QDomNode& oldChild);
0129 QDomNode removeChild(const QDomNode& oldChild);
0130 QDomNode appendChild(const QDomNode& newChild);
0131 bool hasChildNodes() const;
0132 QDomNode cloneNode(bool deep = true) const;
0133 void normalize();
0134 bool isSupported(const QString& feature, const QString& version) const;
0135
0136
0137 QString nodeName() const;
0138 NodeType nodeType() const;
0139 QDomNode parentNode() const;
0140 QDomNodeList childNodes() const;
0141 QDomNode firstChild() const;
0142 QDomNode lastChild() const;
0143 QDomNode previousSibling() const;
0144 QDomNode nextSibling() const;
0145 QDomNamedNodeMap attributes() const;
0146 QDomDocument ownerDocument() const;
0147 QString namespaceURI() const;
0148 QString localName() const;
0149 bool hasAttributes() const;
0150
0151
0152 QString nodeValue() const;
0153 void setNodeValue(const QString &value);
0154 QString prefix() const;
0155 void setPrefix(const QString& pre);
0156
0157
0158 bool isAttr() const;
0159 bool isCDATASection() const;
0160 bool isDocumentFragment() const;
0161 bool isDocument() const;
0162 bool isDocumentType() const;
0163 bool isElement() const;
0164 bool isEntityReference() const;
0165 bool isText() const;
0166 bool isEntity() const;
0167 bool isNotation() const;
0168 bool isProcessingInstruction() const;
0169 bool isCharacterData() const;
0170 bool isComment() const;
0171
0172
0173
0174
0175
0176 QDomNode namedItem(const QString& name) const;
0177
0178 bool isNull() const;
0179 void clear();
0180
0181 QDomAttr toAttr() const;
0182 QDomCDATASection toCDATASection() const;
0183 QDomDocumentFragment toDocumentFragment() const;
0184 QDomDocument toDocument() const;
0185 QDomDocumentType toDocumentType() const;
0186 QDomElement toElement() const;
0187 QDomEntityReference toEntityReference() const;
0188 QDomText toText() const;
0189 QDomEntity toEntity() const;
0190 QDomNotation toNotation() const;
0191 QDomProcessingInstruction toProcessingInstruction() const;
0192 QDomCharacterData toCharacterData() const;
0193 QDomComment toComment() const;
0194
0195 void save(QTextStream&, int, EncodingPolicy=QDomNode::EncodingFromDocument) const;
0196
0197 QDomElement firstChildElement(const QString &tagName = QString(), const QString &namespaceURI = QString()) const;
0198 QDomElement lastChildElement(const QString &tagName = QString(), const QString &namespaceURI = QString()) const;
0199 QDomElement previousSiblingElement(const QString &tagName = QString(), const QString &namespaceURI = QString()) const;
0200 QDomElement nextSiblingElement(const QString &taName = QString(), const QString &namespaceURI = QString()) const;
0201
0202 int lineNumber() const;
0203 int columnNumber() const;
0204
0205 protected:
0206 QDomNodePrivate* impl;
0207 QDomNode(QDomNodePrivate*);
0208
0209 private:
0210 friend class ::tst_QDom;
0211 friend class QDomDocument;
0212 friend class QDomDocumentType;
0213 friend class QDomNodeList;
0214 friend class QDomNamedNodeMap;
0215 };
0216
0217 class Q_XML_EXPORT QDomNodeList
0218 {
0219 public:
0220 QDomNodeList();
0221 QDomNodeList(const QDomNodeList &nodeList);
0222 QDomNodeList& operator=(const QDomNodeList &other);
0223 #if QT_XML_REMOVED_SINCE(6, 9)
0224 bool operator==(const QDomNodeList &other) const;
0225 bool operator!=(const QDomNodeList &other) const;
0226 #endif
0227 ~QDomNodeList();
0228
0229
0230 QDomNode item(int index) const;
0231 inline QDomNode at(int index) const { return item(index); }
0232
0233
0234 int length() const;
0235 inline int count() const { return length(); }
0236 inline int size() const { return length(); }
0237 inline bool isEmpty() const { return length() == 0; }
0238
0239 private:
0240 Q_XML_EXPORT friend bool comparesEqual(const QDomNodeList &lhs, const QDomNodeList &rhs) noexcept;
0241 Q_DECLARE_EQUALITY_COMPARABLE(QDomNodeList)
0242
0243 int noexceptLength() const noexcept;
0244
0245 class It
0246 {
0247 const QDomNodeListPrivate *parent;
0248 QDomNodePrivate *current;
0249
0250 friend class QDomNodeList;
0251 friend class QDomNodeListPrivate;
0252 Q_XML_EXPORT It(const QDomNodeListPrivate *lp, bool start) noexcept;
0253
0254 friend constexpr bool comparesEqual(const It &lhs, const It &rhs)
0255 { Q_ASSERT(lhs.parent == rhs.parent); return lhs.current == rhs.current; }
0256 Q_DECLARE_EQUALITY_COMPARABLE_NON_NOEXCEPT(It);
0257
0258 Q_XML_EXPORT static QDomNodePrivate *findNextInOrder(const QDomNodeListPrivate *parent, QDomNodePrivate *current);
0259 Q_XML_EXPORT static QDomNodePrivate *findPrevInOrder(const QDomNodeListPrivate *parent, QDomNodePrivate *current);
0260
0261 public:
0262
0263 It() = default;
0264
0265 using iterator_category = std::bidirectional_iterator_tag;
0266 using value_type = QDomNode;
0267 using element_type = const QDomNode;
0268 using difference_type = qptrdiff;
0269 using reference = value_type;
0270 using pointer = QtPrivate::ArrowProxy<reference>;
0271
0272 reference operator*() const { return QDomNode(current); }
0273 pointer operator->() const { return { **this }; }
0274
0275 It &operator++() { current = findNextInOrder(parent, current); return *this; }
0276 It operator++(int) { auto copy = *this; ++*this; return copy; }
0277
0278 It &operator--() { current = findPrevInOrder(parent, current); return *this; }
0279 It operator--(int) { auto copy = *this; --*this; return copy; }
0280 };
0281
0282 public:
0283 using const_iterator = It;
0284 using const_reverse_iterator = std::reverse_iterator<const_iterator>;
0285
0286 using value_type = It::value_type;
0287 using difference_type = It::difference_type;
0288 using reference = It::reference;
0289 using const_reference = reference;
0290 using pointer = It::pointer;
0291 using const_pointer = pointer;
0292
0293 [[nodiscard]] const_iterator begin() const noexcept { return It{impl, true}; }
0294 [[nodiscard]] const_iterator end() const noexcept { return It{impl, false}; }
0295 [[nodiscard]] const_iterator cbegin() const noexcept { return begin(); }
0296 [[nodiscard]] const_iterator cend() const noexcept { return end(); }
0297
0298 [[nodiscard]] const_reverse_iterator rbegin() const noexcept { return const_reverse_iterator{end()}; }
0299 [[nodiscard]] const_reverse_iterator rend() const noexcept { return const_reverse_iterator{begin()}; }
0300 [[nodiscard]] const_reverse_iterator crbegin() const noexcept { return rbegin(); }
0301 [[nodiscard]] const_reverse_iterator crend() const noexcept { return rend(); }
0302
0303 [[nodiscard]] const_iterator constBegin() const noexcept { return begin(); }
0304 [[nodiscard]] const_iterator constEnd() const noexcept { return end(); }
0305
0306 private:
0307 QDomNodeListPrivate* impl;
0308 QDomNodeList(QDomNodeListPrivate*);
0309
0310 friend class QDomNode;
0311 friend class QDomElement;
0312 friend class QDomDocument;
0313 friend class ::tst_QDom;
0314 };
0315
0316 class Q_XML_EXPORT QDomDocumentType : public QDomNode
0317 {
0318 public:
0319 QDomDocumentType();
0320 QDomDocumentType(const QDomDocumentType &documentType);
0321 QDomDocumentType& operator=(const QDomDocumentType &other);
0322
0323
0324 QString name() const;
0325 QDomNamedNodeMap entities() const;
0326 QDomNamedNodeMap notations() const;
0327 QString publicId() const;
0328 QString systemId() const;
0329 QString internalSubset() const;
0330
0331
0332 inline QDomNode::NodeType nodeType() const { return DocumentTypeNode; }
0333
0334 private:
0335 QDomDocumentType(QDomDocumentTypePrivate*);
0336
0337 friend class QDomImplementation;
0338 friend class QDomDocument;
0339 friend class QDomNode;
0340 friend class ::tst_QDom;
0341 };
0342
0343 class Q_XML_EXPORT QDomDocument : public QDomNode
0344 {
0345 public:
0346 enum class ParseOption {
0347 Default = 0x00,
0348 UseNamespaceProcessing = 0x01,
0349 PreserveSpacingOnlyNodes = 0x02,
0350 };
0351 Q_DECLARE_FLAGS(ParseOptions, ParseOption)
0352
0353 struct ParseResult
0354 {
0355 QString errorMessage;
0356 qsizetype errorLine = 0;
0357 qsizetype errorColumn = 0;
0358
0359 explicit operator bool() const noexcept { return errorMessage.isEmpty(); }
0360 };
0361
0362 QDomDocument();
0363 explicit QDomDocument(const QString& name);
0364 explicit QDomDocument(const QDomDocumentType& doctype);
0365 QDomDocument(const QDomDocument &document);
0366 QDomDocument& operator=(const QDomDocument &other);
0367 ~QDomDocument();
0368
0369
0370 QDomElement createElement(const QString& tagName);
0371 QDomDocumentFragment createDocumentFragment();
0372 QDomText createTextNode(const QString& data);
0373 QDomComment createComment(const QString& data);
0374 QDomCDATASection createCDATASection(const QString& data);
0375 QDomProcessingInstruction createProcessingInstruction(const QString& target, const QString& data);
0376 QDomAttr createAttribute(const QString& name);
0377 QDomEntityReference createEntityReference(const QString& name);
0378 QDomNodeList elementsByTagName(const QString& tagname) const;
0379 QDomNode importNode(const QDomNode& importedNode, bool deep);
0380 QDomElement createElementNS(const QString& nsURI, const QString& qName);
0381 QDomAttr createAttributeNS(const QString& nsURI, const QString& qName);
0382 QDomNodeList elementsByTagNameNS(const QString& nsURI, const QString& localName);
0383 QDomElement elementById(const QString& elementId);
0384
0385
0386 QDomDocumentType doctype() const;
0387 QDomImplementation implementation() const;
0388 QDomElement documentElement() const;
0389
0390
0391 inline QDomNode::NodeType nodeType() const { return DocumentNode; }
0392
0393
0394 #if QT_DEPRECATED_SINCE(6, 8)
0395 QT_DEPRECATED_VERSION_X_6_8("Use the overload taking ParseOptions instead.")
0396 bool setContent(const QByteArray &text, bool namespaceProcessing, QString *errorMsg = nullptr, int *errorLine = nullptr, int *errorColumn = nullptr);
0397 QT_DEPRECATED_VERSION_X_6_8("Use the overload taking ParseOptions instead.")
0398 bool setContent(const QString &text, bool namespaceProcessing, QString *errorMsg = nullptr, int *errorLine = nullptr, int *errorColumn = nullptr);
0399 QT_DEPRECATED_VERSION_X_6_8("Use the overload taking ParseOptions instead.")
0400 bool setContent(QIODevice *dev, bool namespaceProcessing, QString *errorMsg = nullptr, int *errorLine = nullptr, int *errorColumn = nullptr);
0401 QT_DEPRECATED_VERSION_X_6_8("Use the overload returning ParseResult instead.")
0402 bool setContent(const QByteArray &text, QString *errorMsg, int *errorLine = nullptr, int *errorColumn = nullptr);
0403 QT_DEPRECATED_VERSION_X_6_8("Use the overload returning ParseResult instead.")
0404 bool setContent(const QString &text, QString *errorMsg, int *errorLine = nullptr, int *errorColumn = nullptr);
0405 QT_DEPRECATED_VERSION_X_6_8("Use the overload returning ParseResult instead.")
0406 bool setContent(QIODevice *dev, QString *errorMsg, int *errorLine = nullptr, int *errorColumn = nullptr);
0407 QT_DEPRECATED_VERSION_X_6_8("Use the overload taking ParseOptions instead.")
0408 bool setContent(QXmlStreamReader *reader, bool namespaceProcessing, QString *errorMsg = nullptr,
0409 int *errorLine = nullptr, int *errorColumn = nullptr);
0410 #endif
0411
0412 Q_WEAK_OVERLOAD
0413 ParseResult setContent(const QByteArray &data, ParseOptions options = ParseOption::Default)
0414 { return setContentImpl(data, options); }
0415 ParseResult setContent(QAnyStringView data, ParseOptions options = ParseOption::Default);
0416 ParseResult setContent(QIODevice *device, ParseOptions options = ParseOption::Default);
0417 ParseResult setContent(QXmlStreamReader *reader, ParseOptions options = ParseOption::Default);
0418
0419
0420 QString toString(int indent = 1) const;
0421 QByteArray toByteArray(int indent = 1) const;
0422
0423 private:
0424 ParseResult setContentImpl(const QByteArray &data, ParseOptions options);
0425
0426 QDomDocument(QDomDocumentPrivate*);
0427
0428 friend class QDomNode;
0429 };
0430
0431 class Q_XML_EXPORT QDomNamedNodeMap
0432 {
0433 public:
0434 QDomNamedNodeMap();
0435 QDomNamedNodeMap(const QDomNamedNodeMap &namedNodeMap);
0436 QDomNamedNodeMap& operator=(const QDomNamedNodeMap &other);
0437 bool operator==(const QDomNamedNodeMap &other) const;
0438 bool operator!=(const QDomNamedNodeMap &other) const;
0439 ~QDomNamedNodeMap();
0440
0441
0442 QDomNode namedItem(const QString& name) const;
0443 QDomNode setNamedItem(const QDomNode& newNode);
0444 QDomNode removeNamedItem(const QString& name);
0445 QDomNode item(int index) const;
0446 QDomNode namedItemNS(const QString& nsURI, const QString& localName) const;
0447 QDomNode setNamedItemNS(const QDomNode& newNode);
0448 QDomNode removeNamedItemNS(const QString& nsURI, const QString& localName);
0449
0450
0451 int length() const;
0452 int count() const { return length(); }
0453 inline int size() const { return length(); }
0454 inline bool isEmpty() const { return length() == 0; }
0455
0456
0457 bool contains(const QString& name) const;
0458
0459 private:
0460 QDomNamedNodeMapPrivate* impl;
0461 QDomNamedNodeMap(QDomNamedNodeMapPrivate*);
0462
0463 friend class QDomNode;
0464 friend class QDomDocumentType;
0465 friend class QDomElement;
0466 };
0467
0468 class Q_XML_EXPORT QDomDocumentFragment : public QDomNode
0469 {
0470 public:
0471 QDomDocumentFragment();
0472 QDomDocumentFragment(const QDomDocumentFragment &documentFragment);
0473 QDomDocumentFragment& operator=(const QDomDocumentFragment &other);
0474
0475
0476 inline QDomNode::NodeType nodeType() const { return DocumentFragmentNode; }
0477
0478 private:
0479 QDomDocumentFragment(QDomDocumentFragmentPrivate*);
0480
0481 friend class QDomDocument;
0482 friend class QDomNode;
0483 };
0484
0485 class Q_XML_EXPORT QDomCharacterData : public QDomNode
0486 {
0487 public:
0488 QDomCharacterData();
0489 QDomCharacterData(const QDomCharacterData &characterData);
0490 QDomCharacterData& operator=(const QDomCharacterData &other);
0491
0492
0493 QString substringData(unsigned long offset, unsigned long count);
0494 void appendData(const QString& arg);
0495 void insertData(unsigned long offset, const QString& arg);
0496 void deleteData(unsigned long offset, unsigned long count);
0497 void replaceData(unsigned long offset, unsigned long count, const QString& arg);
0498
0499
0500 int length() const;
0501
0502
0503 QString data() const;
0504 void setData(const QString &data);
0505
0506
0507 QDomNode::NodeType nodeType() const;
0508
0509 private:
0510 QDomCharacterData(QDomCharacterDataPrivate*);
0511
0512 friend class QDomDocument;
0513 friend class QDomText;
0514 friend class QDomComment;
0515 friend class QDomNode;
0516 };
0517
0518 class Q_XML_EXPORT QDomAttr : public QDomNode
0519 {
0520 public:
0521 QDomAttr();
0522 QDomAttr(const QDomAttr &attr);
0523 QDomAttr& operator=(const QDomAttr &other);
0524
0525
0526 QString name() const;
0527 bool specified() const;
0528 QDomElement ownerElement() const;
0529
0530
0531 QString value() const;
0532 void setValue(const QString &value);
0533
0534
0535 inline QDomNode::NodeType nodeType() const { return AttributeNode; }
0536
0537 private:
0538 QDomAttr(QDomAttrPrivate*);
0539
0540 friend class QDomDocument;
0541 friend class QDomElement;
0542 friend class QDomNode;
0543 };
0544
0545 class Q_XML_EXPORT QDomElement : public QDomNode
0546 {
0547 public:
0548 QDomElement();
0549 QDomElement(const QDomElement &element);
0550 QDomElement& operator=(const QDomElement &other);
0551
0552
0553 QString attribute(const QString& name, const QString& defValue = QString() ) const;
0554 void setAttribute(const QString& name, const QString& value);
0555 void setAttribute(const QString& name, qlonglong value);
0556 void setAttribute(const QString& name, qulonglong value);
0557 inline void setAttribute(const QString& name, int value)
0558 { setAttribute(name, qlonglong(value)); }
0559 inline void setAttribute(const QString& name, uint value)
0560 { setAttribute(name, qulonglong(value)); }
0561 void setAttribute(const QString& name, float value);
0562 void setAttribute(const QString& name, double value);
0563 void removeAttribute(const QString& name);
0564 QDomAttr attributeNode(const QString& name);
0565 QDomAttr setAttributeNode(const QDomAttr& newAttr);
0566 QDomAttr removeAttributeNode(const QDomAttr& oldAttr);
0567 QDomNodeList elementsByTagName(const QString& tagname) const;
0568 bool hasAttribute(const QString& name) const;
0569
0570 QString attributeNS(const QString& nsURI, const QString& localName, const QString& defValue = QString()) const;
0571 void setAttributeNS(const QString& nsURI, const QString& qName, const QString& value);
0572 inline void setAttributeNS(const QString& nsURI, const QString& qName, int value)
0573 { setAttributeNS(nsURI, qName, qlonglong(value)); }
0574 inline void setAttributeNS(const QString& nsURI, const QString& qName, uint value)
0575 { setAttributeNS(nsURI, qName, qulonglong(value)); }
0576 void setAttributeNS(const QString& nsURI, const QString& qName, qlonglong value);
0577 void setAttributeNS(const QString& nsURI, const QString& qName, qulonglong value);
0578 void setAttributeNS(const QString& nsURI, const QString& qName, double value);
0579 void removeAttributeNS(const QString& nsURI, const QString& localName);
0580 QDomAttr attributeNodeNS(const QString& nsURI, const QString& localName);
0581 QDomAttr setAttributeNodeNS(const QDomAttr& newAttr);
0582 QDomNodeList elementsByTagNameNS(const QString& nsURI, const QString& localName) const;
0583 bool hasAttributeNS(const QString& nsURI, const QString& localName) const;
0584
0585
0586 QString tagName() const;
0587 void setTagName(const QString& name);
0588
0589
0590 QDomNamedNodeMap attributes() const;
0591 inline QDomNode::NodeType nodeType() const { return ElementNode; }
0592
0593 QString text() const;
0594
0595 private:
0596 QDomElement(QDomElementPrivate*);
0597
0598 friend class QDomDocument;
0599 friend class QDomNode;
0600 friend class QDomAttr;
0601 };
0602
0603 class Q_XML_EXPORT QDomText : public QDomCharacterData
0604 {
0605 public:
0606 QDomText();
0607 QDomText(const QDomText &text);
0608 QDomText& operator=(const QDomText &other);
0609
0610
0611 QDomText splitText(int offset);
0612
0613
0614 inline QDomNode::NodeType nodeType() const { return TextNode; }
0615
0616 private:
0617 QDomText(QDomTextPrivate*);
0618
0619 friend class QDomCDATASection;
0620 friend class QDomDocument;
0621 friend class QDomNode;
0622 };
0623
0624 class Q_XML_EXPORT QDomComment : public QDomCharacterData
0625 {
0626 public:
0627 QDomComment();
0628 QDomComment(const QDomComment &comment);
0629 QDomComment& operator=(const QDomComment &other);
0630
0631
0632 inline QDomNode::NodeType nodeType() const { return CommentNode; }
0633
0634 private:
0635 QDomComment(QDomCommentPrivate*);
0636
0637 friend class QDomDocument;
0638 friend class QDomNode;
0639 };
0640
0641 class Q_XML_EXPORT QDomCDATASection : public QDomText
0642 {
0643 public:
0644 QDomCDATASection();
0645 QDomCDATASection(const QDomCDATASection &cdataSection);
0646 QDomCDATASection& operator=(const QDomCDATASection &other);
0647
0648
0649 inline QDomNode::NodeType nodeType() const { return CDATASectionNode; }
0650
0651 private:
0652 QDomCDATASection(QDomCDATASectionPrivate*);
0653
0654 friend class QDomDocument;
0655 friend class QDomNode;
0656 };
0657
0658 class Q_XML_EXPORT QDomNotation : public QDomNode
0659 {
0660 public:
0661 QDomNotation();
0662 QDomNotation(const QDomNotation ¬ation);
0663 QDomNotation& operator=(const QDomNotation &other);
0664
0665
0666 QString publicId() const;
0667 QString systemId() const;
0668
0669
0670 inline QDomNode::NodeType nodeType() const { return NotationNode; }
0671
0672 private:
0673 QDomNotation(QDomNotationPrivate*);
0674
0675 friend class QDomDocument;
0676 friend class QDomNode;
0677 };
0678
0679 class Q_XML_EXPORT QDomEntity : public QDomNode
0680 {
0681 public:
0682 QDomEntity();
0683 QDomEntity(const QDomEntity &entity);
0684 QDomEntity& operator=(const QDomEntity &other);
0685
0686
0687 QString publicId() const;
0688 QString systemId() const;
0689 QString notationName() const;
0690
0691
0692 inline QDomNode::NodeType nodeType() const { return EntityNode; }
0693
0694 private:
0695 QDomEntity(QDomEntityPrivate*);
0696
0697 friend class QDomNode;
0698 };
0699
0700 class Q_XML_EXPORT QDomEntityReference : public QDomNode
0701 {
0702 public:
0703 QDomEntityReference();
0704 QDomEntityReference(const QDomEntityReference &entityReference);
0705 QDomEntityReference& operator=(const QDomEntityReference &other);
0706
0707
0708 inline QDomNode::NodeType nodeType() const { return EntityReferenceNode; }
0709
0710 private:
0711 QDomEntityReference(QDomEntityReferencePrivate*);
0712
0713 friend class QDomDocument;
0714 friend class QDomNode;
0715 };
0716
0717 class Q_XML_EXPORT QDomProcessingInstruction : public QDomNode
0718 {
0719 public:
0720 QDomProcessingInstruction();
0721 QDomProcessingInstruction(const QDomProcessingInstruction &processingInstruction);
0722 QDomProcessingInstruction& operator=(const QDomProcessingInstruction &other);
0723
0724
0725 QString target() const;
0726
0727
0728 QString data() const;
0729 void setData(const QString &data);
0730
0731
0732 inline QDomNode::NodeType nodeType() const { return ProcessingInstructionNode; }
0733
0734 private:
0735 QDomProcessingInstruction(QDomProcessingInstructionPrivate*);
0736
0737 friend class QDomDocument;
0738 friend class QDomNode;
0739 };
0740
0741
0742 Q_XML_EXPORT QTextStream& operator<<(QTextStream& stream, const QDomNode& node);
0743
0744 QT_END_NAMESPACE
0745
0746 #endif
0747
0748 #endif