Auf dieser Seite

QDomImplementation Class

Die Klasse „QDomImplementation“ liefert Informationen zu den Funktionen der DOM-Implementierung. Mehr...

Überschrift: #include <QDomImplementation>
CMake: find_package(Qt6 REQUIRED COMPONENTS Xml)
target_link_libraries(mytarget PRIVATE Qt6::Xml)
qmake: QT += xml

Hinweis: Alle Funktionen dieser Klasse sind reentrant, mit folgenden Ausnahmen:

Öffentliche Typen

enum InvalidDataPolicy { AcceptInvalidChars, DropInvalidChars, ReturnNullNode }

Öffentliche Funktionen

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

Statische öffentliche Mitglieder

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

Ausführliche Beschreibung

Diese Klasse beschreibt die Funktionen, die von der DOM-Implementierung unterstützt werden. Derzeit werden die XML-Teilmengen von DOM Level 1 und DOM Level 2 Core unterstützt.

Normalerweise verwenden Sie die Funktion „ QDomDocument::implementation()“, um das Implementierungsobjekt abzurufen.

Mit ` createDocumentType()` können Sie einen neuen Dokumenttyp und mit ` createDocument()` ein neues Dokument erstellen.

Weitere Informationen zum Document Object Model finden Sie unter Level 1 und Level 2 Core. Eine allgemeinere Einführung in die DOM-Implementierung finden Sie in der Dokumentation zu ` QDomDocument `.

Die QDom-Klassen weisen einige Abweichungen von den XML-Spezifikationen auf, die in Qt 4 nicht behoben werden können, ohne die Abwärtskompatibilität zu beeinträchtigen. Das Modul „ Qt XML Patterns“ sowie die Klassen „ QXmlStreamReader “ und „ QXmlStreamWriter “ weisen einen höheren Grad an Konformität auf.

Siehe auch hasFeature().

Dokumentation zu Mitgliedstypen

enum QDomImplementation::InvalidDataPolicy

Diese Enumeration legt fest, wie bei einem Aufruf einer Factory-Funktion in „ QDomDocument “ mit ungültigen Daten verfahren werden soll.

KonstanteWertBeschreibung
QDomImplementation::AcceptInvalidChars0Die Daten sollen trotzdem im DOM-Objekt gespeichert werden. In diesem Fall ist das resultierende XML-Dokument möglicherweise nicht wohlgeformt. Dies war der Standardwert und das Verhalten von QDom vor Qt 6.12.
QDomImplementation::DropInvalidChars1Die ungültigen Zeichen sollten aus den Daten entfernt werden.
QDomImplementation::ReturnNullNode2Die Factory-Funktion sollte einen Null-Knoten zurückgeben. Dies ist seit Qt 6.12 der Standardwert.

Siehe auch setInvalidDataPolicy() und invalidDataPolicy().

Dokumentation der Mitgliedsfunktionen

QDomImplementation::QDomImplementation()

Erstellt ein QDomImplementation-Objekt.

QDomImplementation::QDomImplementation(const QDomImplementation &implementation)

Erstellt eine Kopie von „ implementation “.

[noexcept] QDomImplementation::~QDomImplementation()

Löscht das Objekt und gibt dessen Ressourcen frei.

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

Erstellt ein DOM-Dokument mit dem Dokumenttyp doctype. Diese Funktion fügt außerdem einen Stammelementknoten mit dem qualifizierten Namen qName und der Namensraum-URI nsURI hinzu.

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

Erstellt einen Dokumenttypknoten für den Namen „ qName “.

publicId Gibt den öffentlichen Bezeichner der externen Teilmenge an. Wenn Sie eine leere Zeichenkette (QString()) als „ publicId “ angeben, bedeutet dies, dass der Dokumenttyp keinen öffentlichen Bezeichner hat.

systemId Gibt die Systemkennung der externen Teilmenge an. Wenn Sie als „ systemId “ eine leere Zeichenkette angeben, bedeutet dies, dass der Dokumenttyp keine Systemkennung hat.

Da es keinen öffentlichen Bezeichner ohne Systembezeichner geben kann, wird der öffentliche Bezeichner auf eine leere Zeichenkette gesetzt, wenn kein Systembezeichner vorhanden ist.

DOM Level 2 unterstützt keine weiteren Funktionen zur Dokumenttypdeklaration.

Die einzige Möglichkeit, einen auf diese Weise erstellten Dokumenttyp zu verwenden, besteht darin, ihn in Kombination mit der Funktion ` createDocument()` zu nutzen, um ein ` QDomDocument ` mit diesem Dokumenttyp zu erstellen.

In der DOM-Spezifikation ist dies die einzige Möglichkeit, ein Dokument zu erstellen, das nicht null ist. Aus historischen Gründen erlaubt Qt auch die Erstellung des Dokuments mithilfe des standardmäßigen leeren Konstruktors. Das resultierende Dokument ist null, wird jedoch nicht-null, wenn eine Factory-Funktion, beispielsweise ` QDomDocument::createElement()`, aufgerufen wird. Das Dokument wird ebenfalls nicht-null, wenn `setContent()` aufgerufen wird.

Siehe auch ` createDocument()`.

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

Die Funktion gibt „ true “ zurück, wenn QDom die angeforderte „ version “ eines „ feature “ implementiert; andernfalls gibt sie „ false “ zurück.

Die derzeit unterstützten Funktionen und ihre Versionen:

FunktionVersion
XML1.0

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

Gibt die Richtlinie für ungültige Daten zurück, die festlegt, wie vorgegangen werden soll, wenn einer Factory-Funktion in „ QDomDocument “ ungültige Daten übergeben werden.

Warnung: Diese Funktion ist nicht reentrant.

Siehe auch „ setInvalidDataPolicy()“ und „ InvalidDataPolicy “.

bool QDomImplementation::isNull()

Gibt „ false “ zurück, wenn das Objekt mit „ QDomDocument::implementation()“ erstellt wurde; andernfalls wird „ true “ zurückgegeben.

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

Legt die Richtlinie für ungültige Daten fest, die bestimmt, wie vorgegangen werden soll, wenn einer Factory-Funktion in „ QDomDocument “ ungültige Daten übergeben werden.

Die „ policy “ wird für alle bereits vorhandenen und künftig erstellten Instanzen von „ QDomDocument “ festgelegt.

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");
}

Warnung: Diese Funktion ist nicht reentrant.

Siehe auch „ invalidDataPolicy()“ und „ InvalidDataPolicy “.

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

Gibt „ true “ zurück, wenn „ other “ und dieses DOM-Implementierungsobjekt aus unterschiedlichen „QDomDocuments“ erstellt wurden; andernfalls wird „ false “ zurückgegeben.

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

Weist dieser DOM-Implementierung „ other “ zu.

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

Gibt „ true “ zurück, wenn „ other “ und dieses DOM-Implementierungsobjekt aus demselben „ QDomDocument “ erstellt wurden; andernfalls wird „ false “ zurückgegeben.

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