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 |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- QDomImplementation ist Teil der XML-Klassen.
Hinweis: Alle Funktionen dieser Klasse sind reentrant, mit folgenden Ausnahmen:
- invalidDataPolicy()
- setInvalidDataPolicy(QDomImplementation::InvalidDataPolicy policy)
Ö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.
| Konstante | Wert | Beschreibung |
|---|---|---|
QDomImplementation::AcceptInvalidChars | 0 | Die 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::DropInvalidChars | 1 | Die ungültigen Zeichen sollten aus den Daten entfernt werden. |
QDomImplementation::ReturnNullNode | 2 | Die 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:
| Funktion | Version |
|---|---|
| XML | 1.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.