QXmlNamespaceSupport Class
QXmlNamespaceSupport クラスは、名前空間のサポートを必要とする XML リーダーのためのヘルパークラスです。詳細...
Header: | #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 にマップされているプレフィックスのいずれかを返します。
現在複数のプレフィックスが同じ URI にマップされている場合は、 この関数は任意の選択を行います。すべてのプレフィックスが欲しい場合は、 代わりに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 isAttribute は、名前が属性名であれば真。
この関数は、名前空間 URI をnsuri に格納し(生の名前に宣言されていない接頭辞がある場合は空文字列に設定されます)、ローカル名(接頭辞なし)をlocalname に格納します(名前空間が使用されていない場合は空文字列に設定されます)。
接頭辞のない要素名は(もしあれば)デフォルトの名前空間を取得しますが、接頭辞のない属性名は取得しません。
void QXmlNamespaceSupport::pushContext()
新しいネームスペース・コンテキストを開始します。
新しいコンテキストは親コンテキストの宣言を自動的に継承し、このコンテキスト内でどの宣言が行われたかも記録します。
popContext()も参照 。
void QXmlNamespaceSupport::reset()
この名前空間サポートオブジェクトを再利用できるようにリセットします。
void QXmlNamespaceSupport::setPrefix(const QString &pre, const QString &uri)
この関数は、現在の名前空間コンテキストの接頭辞pre を名前空間 URIuri とすることを宣言します。このプレフィックスは、子孫コンテキストでシャドウされない限り、このコンテキストがポップされるまで有効です。
このライブラリには非対称性があることに注意してください。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 を返します。デフォルトの名前空間には空文字列 ("") を使用します。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。