Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qdomhelpers_p.h
Go to the documentation of this file.
1// Copyright (C) 2021 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3#ifndef QDOMHELPERS_P_H
4#define QDOMHELPERS_P_H
5
6#include <qcoreapplication.h>
7#include <qdom.h>
8#include <private/qglobal_p.h>
9
11QT_BEGIN_NAMESPACE
12
13//
14// W A R N I N G
15// -------------
16//
17// This file is not part of the Qt API. It exists for the convenience of
18// qxml.cpp and qdom.cpp. This header file may change from version to version without
19// notice, or even be removed.
20//
21// We mean it.
22//
23
24class QDomDocumentPrivate;
25class QDomNodePrivate;
26class QXmlStreamReader;
27class QXmlStreamAttributes;
28
29/**************************************************************
30 *
31 * QDomBuilder
32 *
33 **************************************************************/
34
36{
37public:
38 QDomBuilder(QDomDocumentPrivate *d, QXmlStreamReader *r, QDomDocument::ParseOptions options);
40
42 bool startElement(const QString &nsURI, const QString &qName, const QXmlStreamAttributes &atts);
43 bool endElement();
44 bool characters(const QString &characters, bool cdata = false);
45 bool processingInstruction(const QString &target, const QString &data);
46 bool skippedEntity(const QString &name);
47 bool startDTD(const QString &name, const QString &publicId, const QString &systemId);
48 bool parseDTD(const QString &dtd);
49 bool comment(const QString &characters);
50 bool externalEntityDecl(const QString &name, const QString &publicId, const QString &systemId);
51 bool notationDecl(const QString &name, const QString &publicId, const QString &systemId);
52 bool unparsedEntityDecl(const QString &name, const QString &publicId, const QString &systemId,
53 const QString &notationName);
54
55 void fatalError(const QString &message);
56 QDomDocument::ParseResult result() const { return parseResult; }
57
59 { return parseOptions & QDomDocument::ParseOption::PreserveSpacingOnlyNodes; }
60
61private:
62 QString dtdInternalSubset(const QString &dtd);
63
64 QDomDocument::ParseResult parseResult;
66 QDomNodePrivate *node;
67 QXmlStreamReader *reader;
68 QDomDocument::ParseOptions parseOptions;
69};
70
71/**************************************************************
72 *
73 * QDomParser
74 *
75 **************************************************************/
76
78{
79 Q_DECLARE_TR_FUNCTIONS(QDomParser)
80public:
81 QDomParser(QDomDocumentPrivate *d, QXmlStreamReader *r, QDomDocument::ParseOptions options);
82
83 bool parse();
84 QDomDocument::ParseResult result() const { return domBuilder.result(); }
85
86private:
87 bool parseProlog();
88 bool parseBody();
89 bool parseMarkupDecl();
90
91 QXmlStreamReader *reader;
92 QDomBuilder domBuilder;
93};
94
95QT_END_NAMESPACE
96
97#endif // QDOMHELPERS_P_H
bool characters(const QString &characters, bool cdata=false)
bool startElement(const QString &nsURI, const QString &qName, const QXmlStreamAttributes &atts)
QDomBuilder(QDomDocumentPrivate *d, QXmlStreamReader *r, QDomDocument::ParseOptions options)
bool startDTD(const QString &name, const QString &publicId, const QString &systemId)
bool skippedEntity(const QString &name)
QDomDocument::ParseResult result() const
bool processingInstruction(const QString &target, const QString &data)
void fatalError(const QString &message)
bool endDocument()
bool externalEntityDecl(const QString &name, const QString &publicId, const QString &systemId)
bool parseDTD(const QString &dtd)
bool unparsedEntityDecl(const QString &name, const QString &publicId, const QString &systemId, const QString &notationName)
bool endElement()
bool preserveSpacingOnlyNodes() const
bool comment(const QString &characters)
bool notationDecl(const QString &name, const QString &publicId, const QString &systemId)
bool parse()
QDomDocument::ParseResult result() const
QDomParser(QDomDocumentPrivate *d, QXmlStreamReader *r, QDomDocument::ParseOptions options)
#define Q_DECLARE_TR_FUNCTIONS(context)
QT_REQUIRE_CONFIG(dom)