Класс QXmlNamespaceSupport
Класс QXmlNamespaceSupport — вспомогательный класс для XML-ридеров, которые хотят использовать поддержку пространств имён. Подробнее...
| Заголовок: | #include <QXmlNamespaceSupport> |
| qmake: | QT += xml |
| С момента: | Qt 4.4 |
Примечание: Все функции в этом классе являются перезаписываемыми.
Общедоступные функции
| QXmlNamespaceSupport() | |
| ~QXmlNamespaceSupport() | |
| void | popContext() |
| QString | prefix(const QString &uri) const |
| QStringList | prefixes() const |
| QStringList | prefixes(const QString &uri) const |
| void | processName(const QString &qname, bool isAttribute, QString &nsuri, QString &localname) const |
| void | pushContext() |
| void | reset() |
| void | setPrefix(const QString &pre, const QString &uri) |
| void | splitName(const QString &qname, QString &prefix, QString &localname) const |
| QString | uri(const QString &prefix) const |
Подробное описание
Класс QXmlNamespaceSupport — вспомогательный класс для XML-ридеров, которые хотят использовать поддержку пространств имён.
Вы можете установить префикс для текущего пространства имён с помощью setPrefix(), и получить список текущих префиксов (или тех, которые относятся к заданному URI) с помощью prefixes(). URI пространства имён доступен из uri(). Используйте pushContext(), чтобы начать новый контекст пространства имён, и popContext(), чтобы вернуться к предыдущему контексту пространства имён. Используйте splitName() или processName(), чтобы разделить имя на префикс и локальное имя.
См. также Поддержка пространств имён с помощью функций.
Документация по функциям-членам
QXmlNamespaceSupport::QXmlNamespaceSupport()
Конструирует QXmlNamespaceSupport.
QXmlNamespaceSupport::~QXmlNamespaceSupport()
Уничтожает QXmlNamespaceSupport.
void QXmlNamespaceSupport::popContext()
Возвращает к предыдущему контексту пространства имён.
Обычно вы должны сбросить контекст в конце каждого XML-элемента. После сброса контекста все сопоставления префиксов пространств имён, которые ранее действовали, восстанавливаются.
См. также pushContext().
QString QXmlNamespaceSupport::prefix(const QString &uri) const
Возвращает один из префиксов, сопоставленных с URI пространства имён uri.
Если более одного префикса в данный момент сопоставлено с тем же URI, эта функция делает произвольный выбор; если вам нужно все префиксы, используйте prefixes() вместо этого.
Примечание: чтобы проверить префикс по умолчанию, используйте функцию uri() с аргументом ""
См. также setPrefix().
QStringList QXmlNamespaceSupport::prefixes() const
Возвращает список всех префиксов, объявленных в данный момент.
Если существует префикс по умолчанию, эта функция не возвращает его в списке; проверьте префикс по умолчанию, используя uri() с аргументом ""
QStringList QXmlNamespaceSupport::prefixes(const QString &uri) const
Это перегруженная функция.
Возвращает список всех префиксов, объявленных в данный момент для URI пространства имён uri.
Префикс "xml:" включён. Если вам нужен только один префикс, который сопоставлен с URI пространства имён, и вам все равно, какой вы получите, используйте функцию prefix() вместо этого.
Примечание: пустой (по умолчанию) префикс никогда не включается в этот список; чтобы проверить наличие пространства имён по умолчанию, вызовите uri() с аргументом ""
void QXmlNamespaceSupport::processName(const QString &qname, bool isAttribute, QString &nsuri, QString &localname) const
Обрабатывает имя XML 1.0 в текущем контексте, удаляя префикс и ища его среди объявленных в данный момент префиксов.
qname — обрабатываемое имя XML 1.0. isAttribute — true, если имя — имя атрибута.
Эта функция сохраняет URI пространства имён в nsuri (который будет установлен в пустую строку, если у исходного имени есть необъявленный префикс), и сохраняет локальное имя (без префикса) в localname (который будет установлен в пустую строку, если не используется никакого пространства имён).
Обратите внимание, что имена атрибутов обрабатываются по-другому, чем имена элементов: неименованное имя элемента получает пространство имён по умолчанию (если оно есть), в то время как неименованное имя атрибута этого не делает.
void QXmlNamespaceSupport::pushContext()
Создаёт новый контекст пространства имён.
Обычно вы должны создать новый контекст в начале каждого XML-элемента: новый контекст автоматически наследует объявления своего родительского контекста, а также отслеживает, какие объявления были сделаны в этом контексте.
См. также popContext().
void QXmlNamespaceSupport::reset()
Сбрасывает этот объект поддержки пространств имён, подготавливая его к повторному использованию.
void QXmlNamespaceSupport::setPrefix(const QString &pre, const QString &uri)
Эта функция объявляет префикс pre в текущем контексте пространства имён как URI пространства имён uri. Префикс остаётся в силе до тех пор, пока этот контекст не будет сброшен, если он не затемнён в дочернем контексте.
Обратите внимание, что в этой библиотеке существует асимметрия. prefix() не возвращает префикс по умолчанию "", даже если вы его объявили; чтобы проверить префикс по умолчанию, вы должны явно его найти, используя uri(). Эта асимметрия существует, чтобы упростить поиск префиксов для имён атрибутов, где префикс по умолчанию не разрешён.
См. также prefix().
void QXmlNamespaceSupport::splitName(const QString &qname, QString &prefix, QString &localname) const
Разделяет имя qname по «:» и возвращает префикс в prefix и локальное имя в localname.
См. также processName().
QString QXmlNamespaceSupport::uri(const QString &prefix) const
Ищет префикс prefix в текущем контексте и возвращает сопоставленный в данный момент URI пространства имён. Используйте пустую строку ("") для пространства имён по умолчанию.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qxmlnamespacesupport.html