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