QDomImplementation Class

QDomImplementation クラスは、DOM 実装の機能に関する情報を提供します。詳細...

ヘッダー #include <QDomImplementation>
CMake: find_package(Qt6 REQUIRED COMPONENTS Xml)
target_link_libraries(mytarget PRIVATE Qt6::Xml)
qmake: QT += xml

注意:このクラスの関数は、以下の例外を除いてすべてリエントラントです:

パブリック型

enum InvalidDataPolicy { AcceptInvalidChars, DropInvalidChars, ReturnNullNode }

パブリック関数

QDomImplementation()
QDomImplementation(const QDomImplementation &implementation)
~QDomImplementation()
QDomDocument createDocument(const QString &nsURI, const QString &qName, const QDomDocumentType &doctype)
QDomDocumentType createDocumentType(const QString &qName, const QString &publicId, const QString &systemId)
bool hasFeature(const QString &feature, const QString &version) const
bool isNull()
bool operator!=(const QDomImplementation &other) const
QDomImplementation &operator=(const QDomImplementation &other)
bool operator==(const QDomImplementation &other) const

静的パブリック・メンバー

QDomImplementation::InvalidDataPolicy invalidDataPolicy()
void setInvalidDataPolicy(QDomImplementation::InvalidDataPolicy policy)

詳細説明

このクラスは、DOM 実装によってサポートされる機能を記述します。現在のところ、DOM Level 1 と DOM Level 2 Core の XML サブセットがサポートされています。

通常、実装オブジェクトを取得するには関数QDomDocument::implementation() を使用します。

新しいドキュメント・タイプはcreateDocumentType() で、新しいドキュメントはcreateDocument() で作成できます。

ドキュメント・オブジェクト・モデルの詳細については、レベル1とレベル2コアを参照してください。DOM実装のより一般的な紹介については、QDomDocument ドキュメントを参照してください。

QDom クラスには、XML 仕様に準拠しないいくつかの問題があり、Qt 4 では後方互換性を壊すことなく修正することができません。Qt XML Patterns モジュールとQXmlStreamReaderQXmlStreamWriter クラスは、より高度な適合性を持っています。

hasFeature()も参照してください

メンバ型のドキュメント

enum QDomImplementation::InvalidDataPolicy

この列挙型は、QDomDocument のファクトリー関数が無効なデータで呼び出された場合の処理を指定します。

定数説明
QDomImplementation::AcceptInvalidChars0データはいずれにせよ DOM オブジェクトに格納されるべきです。この場合、結果の XML ドキュメントは整形式ではないかもしれません。これはデフォルト値であり、Qt < 4.1 における QDom の動作です。
QDomImplementation::DropInvalidChars1無効な文字はデータから削除されるべきです。
QDomImplementation::ReturnNullNode2ファクトリー関数はNULLノードを返すべきです。

setInvalidDataPolicy() およびinvalidDataPolicy()も参照してください

メンバ関数ドキュメント

QDomImplementation::QDomImplementation()

QDomImplementation オブジェクトを構築します。

QDomImplementation::QDomImplementation(const QDomImplementation &implementation)

implementation のコピーを作成する。

[noexcept] QDomImplementation::~QDomImplementation()

オブジェクトを破壊し、そのリソースを解放する。

QDomDocument QDomImplementation::createDocument(const QString &nsURI, const QString &qName, const QDomDocumentType &doctype)

文書型doctype を持つ DOM 文書を作成する。この関数はまた、修飾名qName と名前空間 URInsURI を持つルート要素ノードを追加します。

QDomDocumentType QDomImplementation::createDocumentType(const QString &qName, const QString &publicId, const QString &systemId)

qName という名前のドキュメント・タイプ・ノードを作成します。

publicId には、外部サブセットのパブリック識別子を指定します。 に空の文字列 (QString()) を指定した場合、このドキュメント・タイプにはパブリック識別子がないことを意味します。publicId

systemId は、外部サブセットのシステム識別子を指定します。 に空文字列を指定した場合、そのドキュメント・タイプにはシステム識別子がないことを意味します。systemId

システム識別子なしに公開識別子を持つことはできないので、システム識別子がない場合、公開識別子は空文字列に設定されます。

DOMレベル2は、他の文書型宣言機能をサポートしていません。

このようにして作成された文書型を使用する唯一の方法は、createDocument ()関数と組み合わせて、この文書型を持つQDomDocument を作成することです。

DOM仕様では、これが非NULLドキュメントを作成する唯一の方法です。歴史的な理由から、Qt ではデフォルトの空のコンストラクタを使ってドキュメントを作成することもできます。生成されたドキュメントはnullですが、ファクトリー関数、例えばQDomDocument::createElement() が呼ばれるとnullでなくなります。また、setContent() を呼び出すと、ドキュメントも非 null になります。

createDocument()も参照

bool QDomImplementation::hasFeature(const QString &feature, const QString &version) const

この関数は、QDom がfeature の要求されたversion を実装していればtrue を返し、そうでなければfalse を返します。

現在サポートされている機能とそのバージョン

機能バージョン
XML1.0

[static] QDomImplementation::InvalidDataPolicy QDomImplementation::invalidDataPolicy()

QDomDocument のファクトリー関数に無効なデータが渡された場合の処理を指定する無効データポリシーを返します。

警告:この関数はリエントラントではありません。

setInvalidDataPolicy() およびInvalidDataPolicyも参照のこと

bool QDomImplementation::isNull()

オブジェクトがQDomDocument::implementation() によって作成された場合はfalse を返し、そうでない場合はtrue を返す。

[static] void QDomImplementation::setInvalidDataPolicy(QDomImplementation::InvalidDataPolicy policy)

QDomDocument のファクトリー関数に無効なデータが渡された場合の処理を指定する無効データポリシーを設定します。

policy は、すでに存在するQDomDocument のすべてのインスタンスと、これから作成される のすべてのインスタンスに対して設定されます。

void XML_snippet_main()
{
QDomDocument doc;
QDomImplementation impl;
// This will create the element, but the resulting XML document will
// be invalid, because '~' is not a valid character in a tag name.
impl.setInvalidDataPolicy(QDomImplementation::AcceptInvalidChars);
QDomElement elt1 = doc.createElement("foo~bar");

// This will create an element with the tag name "foobar".
impl.setInvalidDataPolicy(QDomImplementation::DropInvalidChars);
QDomElement elt2 = doc.createElement("foo~bar");

// This will create a null element.
impl.setInvalidDataPolicy(QDomImplementation::ReturnNullNode);
QDomElement elt3 = doc.createElement("foo~bar");
}

警告この関数はリエントラントではない

invalidDataPolicy() およびInvalidDataPolicyも参照のこと

bool QDomImplementation::operator!=(const QDomImplementation &other) const

other とこの DOM 実装オブジェクトが異なる QDomDocuments から作成された場合はtrue を返し、そうでない場合はfalse を返す。

QDomImplementation &QDomImplementation::operator=(const QDomImplementation &other)

この DOM 実装にother を割り当てます。

bool QDomImplementation::operator==(const QDomImplementation &other) const

other とこの DOM 実装オブジェクトが同じQDomDocument から作成された場合はtrue を返し、そうでない場合はfalse を返す。

© 2025 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.