Класс 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()
Возвращается к предыдущему контексту пространства имён.
Обычно вы должны вызывать popContext в конце каждого XML-элемента. После вызова popContext все ранее действующие соответствия префиксов пространств имён восстанавливаются.
См. также 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()
Начинает новый контекст пространства имён.
Обычно вы должны вызывать 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.6/qxmlnamespacesupport.html