// Copyright (C) 2016 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only #ifndef QXMLUTILS_P_H #define QXMLUTILS_P_H // // W A R N I N G // ------------- // // This file is not part of the Qt API. It exists for the convenience // of qapplication_*.cpp, qwidget*.cpp and qfiledialog.cpp. This header // file may change from version to version without notice, or even be removed. // // We mean it. // #include #include QT_BEGIN_NAMESPACE class QString; class QChar; class QXmlCharRange; /*! \internal \short This class contains helper functions related to XML, for validating character classes, productions in the XML specification, and so on. */ class Q_CORE_EXPORT QXmlUtils { public: static bool isEncName(QStringView encName); static bool isChar(const char32_t c); static bool isNameChar(const QChar c); static bool isLetter(const QChar c); static bool isNCName(QStringView ncName); static bool isPublicID(QStringView candidate); private: typedef const QXmlCharRange *RangeIter; static bool rangeContains(RangeIter begin, RangeIter end, const QChar c); static bool isBaseChar(const QChar c); static bool isDigit(const QChar c); static bool isExtender(const QChar c); static bool isIdeographic(const QChar c); static bool isCombiningChar(const QChar c); }; QT_END_NAMESPACE #endif