Класс 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/archives/qt-5.11/qxmlnamespacesupport.html