QDomImplementation Class

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

Header: #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)

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

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

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

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。