QXmlNamespaceSupport Class
QXmlNamespaceSupport クラスは、名前空間のサポートを実装したい XML リーダー向けのヘルパークラスです。詳細...
| ヘッダー: | #include <QXmlNamespaceSupport> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core5Compat) target_link_libraries(mytarget PRIVATE Qt6::Core5Compat) |
| qmake: | QT += core5compat |
注:このクラスのすべての関数は再入可能である。
パブリック関数
| 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 |
詳細な説明
setPrefix() を使用して、現在の名前空間のプレフィックスを設定したり、prefixes() を使用して、現在のプレフィックス(または指定された URI のプレフィックス)のリストを取得したりできます。名前空間 URI は、uri() から取得できます。pushContext() を使用して新しい名前空間コンテキストを開始し、popContext() を使用して前の名前空間コンテキストに戻ります。 名前をプレフィックスとローカル名に分割するには、splitName() またはprocessName() を使用します。
メンバ関数のドキュメント
QXmlNamespaceSupport::QXmlNamespaceSupport()
QXmlNamespaceSupport を作成します。
[noexcept] QXmlNamespaceSupport::~QXmlNamespaceSupport()
QXmlNamespaceSupport を破棄します。
void QXmlNamespaceSupport::popContext()
前の名前空間コンテキストに戻ります。
通常、各XML要素の終了時にコンテキストをポップする必要があります。コンテキストをポップすると、以前に有効だったすべての名前空間プレフィックスのマッピングが復元されます。
pushContext()も参照してください 。
QString QXmlNamespaceSupport::prefix(const QString &uri) const
名前空間 URIuri にマッピングされているプレフィックスのうち、1 つを返します。
現在、同じ URI に複数のプレフィックスがマッピングされている場合、この関数は任意のプレフィックスを 1 つ選択します。すべてのプレフィックスを取得したい場合は、代わりにprefixes() を使用してください。
注:デフォルトのプレフィックスを確認するには、引数として "" を指定してuri() 関数を使用してください。
関連項目: setPrefix()。
QStringList QXmlNamespaceSupport::prefixes() const
現在宣言されているすべてのプレフィックスのリストを返します。
デフォルトのプレフィックスが存在する場合、この関数はそれをリストに含めません。デフォルトのプレフィックスを確認するには、引数として「」を指定して `uri()` を使用してください。
QStringList QXmlNamespaceSupport::prefixes(const QString &uri) const
名前空間 URIuri に対して現在宣言されているすべてのプレフィックスのリストを返します。
「xml:」プレフィックスも含まれます。名前空間 URI にマッピングされているプレフィックスを 1 つだけ取得したい場合で、どのプレフィックスが返されるかは問わない場合は、代わりに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 を返します。デフォルトの名前空間を指定するには、空文字列("")を使用してください。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.