QDomImplementation Class

Die Klasse QDomImplementation liefert Informationen über die Eigenschaften der DOM-Implementierung. Mehr...

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

Hinweis: Alle Funktionen in dieser Klasse sind mit den folgenden Ausnahmen reentrant:

Ö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)

Detaillierte Beschreibung

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

Normalerweise werden Sie die Funktion QDomDocument::implementation() verwenden, um das Implementierungsobjekt zu erhalten.

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

Weitere Informationen über das 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 QDomDocument.

Die QDom-Klassen sind in einigen Punkten nicht konform mit den XML-Spezifikationen, die in Qt 4 nicht behoben werden können, ohne die Abwärtskompatibilität zu verletzen. Das Qt XML Patterns Modul und die QXmlStreamReader und QXmlStreamWriter Klassen haben einen höheren Grad an Konformität.

Siehe auch hasFeature().

Dokumentation der Mitgliedstypen

enum QDomImplementation::InvalidDataPolicy

Diese Aufzählung gibt an, was geschehen soll, wenn eine Fabrikfunktion in QDomDocument mit ungültigen Daten aufgerufen wird.

KonstanteWertBeschreibung
QDomImplementation::AcceptInvalidChars0Die Daten sollten trotzdem im DOM-Objekt gespeichert werden. In diesem Fall könnte das resultierende XML-Dokument nicht wohlgeformt sein. Dies ist der Standardwert und das Verhalten von QDom in Qt < 4.1.
QDomImplementation::DropInvalidChars1Die ungültigen Zeichen sollten aus den Daten entfernt werden.
QDomImplementation::ReturnNullNode2Die Factory-Funktion sollte einen Null-Knoten zurückgeben.

Siehe auch setInvalidDataPolicy() und invalidDataPolicy().

Dokumentation der Mitgliedsfunktionen

QDomImplementation::QDomImplementation()

Konstruiert ein QDomImplementation-Objekt.

QDomImplementation::QDomImplementation(const QDomImplementation &implementation)

Konstruiert eine Kopie von implementation.

[noexcept] QDomImplementation::~QDomImplementation()

Zerstört das Objekt und gibt seine Ressourcen frei.

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

Erzeugt ein DOM-Dokument mit dem Dokumenttyp doctype. Diese Funktion fügt auch einen Root-Element-Knoten mit dem qualifizierten Namen qName und dem Namespace URI nsURI hinzu.

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

Erzeugt einen Dokumenttyp-Knoten für den Namen qName.

publicId gibt den öffentlichen Bezeichner der externen Untermenge an. Wenn Sie einen leeren String (QString()) als publicId angeben, bedeutet dies, dass der Dokumenttyp keinen öffentlichen Bezeichner hat.

systemId gibt den Systembezeichner des externen Subsets an. Wenn Sie eine leere Zeichenkette als systemId angeben, bedeutet dies, dass der Dokumenttyp keinen Systembezeichner hat.

Da man keinen öffentlichen Bezeichner ohne einen Systembezeichner haben kann, wird der öffentliche Bezeichner auf eine leere Zeichenkette gesetzt, wenn es keinen Systembezeichner gibt.

DOM Level 2 unterstützt keine weiteren Funktionen zur Deklaration von Dokumenttypen.

Die einzige Möglichkeit, einen auf diese Weise erstellten Dokumenttyp zu verwenden, ist die Kombination mit der Funktion createDocument(), um eine QDomDocument mit diesem Dokumenttyp zu erstellen.

In der DOM-Spezifikation ist dies die einzige Möglichkeit, ein Dokument zu erstellen, das nicht leer ist. Aus historischen Gründen erlaubt Qt auch die Erstellung des Dokuments mit dem Standard-Leer-Konstruktor. Das resultierende Dokument ist null, wird aber nicht-null, wenn eine Factory-Funktion, zum Beispiel QDomDocument::createElement(), aufgerufen wird. Das Dokument wird auch 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:

MerkmalVersion
XML1.0

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

Gibt die Richtlinie für ungültige Daten zurück, die angibt, was zu tun ist, wenn einer Fabrikfunktion 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 angibt, was geschehen soll, wenn einer Fabrikfunktion in QDomDocument ungültige Daten übergeben werden.

Die policy wird für alle Instanzen von QDomDocument gesetzt, die bereits existieren und die in Zukunft erstellt werden.

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 verschiedenen QDomDocuments erstellt wurden; andernfalls wird false zurückgegeben.

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

Weist other dieser DOM-Implementierung 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.

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