En esta página

QDomImplementation Class

La clase QDomImplementation proporciona información sobre las características de la implementación DOM. Más...

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

Nota: Todas las funciones de esta clase son reentrantes con las siguientes excepciones:

Tipos Públicos

enum InvalidDataPolicy { AcceptInvalidChars, DropInvalidChars, ReturnNullNode }

Funciones Públicas

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

Miembros públicos estáticos

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

Descripción Detallada

Esta clase describe las características soportadas por la implementación DOM. Actualmente soporta el subconjunto XML de DOM Nivel 1 y DOM Nivel 2 Core.

Normalmente se utiliza la función QDomDocument::implementation() para obtener el objeto de implementación.

Puede crear un nuevo tipo de documento con createDocumentType() y un nuevo documento con createDocument().

Para más información sobre el Modelo de Objetos de Documento, véase Núcleo de Nivel 1 y Nivel 2. Para una introducción más general de la implementación DOM véase la documentación QDomDocument.

Las clases QDom tienen algunos problemas de disconformidad con las especificaciones XML que no pueden arreglarse en Qt 4 sin romper la compatibilidad con versiones anteriores. El módulo Qt XML Patterns y las clases QXmlStreamReader y QXmlStreamWriter tienen un mayor grado de conformidad.

Véase también hasFeature().

Documentación de tipos de miembros

enum QDomImplementation::InvalidDataPolicy

Este enum especifica qué debe hacerse cuando se llama a una función de fábrica en QDomDocument con datos no válidos.

ConstanteValorDescripción
QDomImplementation::AcceptInvalidChars0Los datos deben almacenarse en el objeto DOM de todos modos. En este caso el documento XML resultante podría no estar bien formado. Este es el valor por defecto y el comportamiento de QDom en Qt < 4.1.
QDomImplementation::DropInvalidChars1Los caracteres no válidos deberían eliminarse de los datos.
QDomImplementation::ReturnNullNode2La función de fábrica debería devolver un nodo nulo.

Véase también setInvalidDataPolicy() y invalidDataPolicy().

Documentación de la función miembro

QDomImplementation::QDomImplementation()

Construye un objeto QDomImplementation.

QDomImplementation::QDomImplementation(const QDomImplementation &implementation)

Construye una copia de implementation.

[noexcept] QDomImplementation::~QDomImplementation()

Destruye el objeto y libera sus recursos.

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

Crea un documento DOM con el tipo de documento doctype. Esta función también añade un nodo de elemento raíz con el nombre cualificado qName y el URI de espacio de nombres nsURI.

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

Crea un nodo de tipo de documento para el nombre qName.

publicId especifica el identificador público del subconjunto externo. Si especifica una cadena vacía (QString()) como publicId, significa que el tipo de documento no tiene identificador público.

systemId especifica el identificador de sistema del subconjunto externo. Si especifica una cadena vacía como systemId, significa que el tipo de documento no tiene identificador de sistema.

Dado que no se puede tener un identificador público sin un identificador del sistema, el identificador público se establece en una cadena vacía si no hay identificador del sistema.

DOM nivel 2 no soporta ninguna otra característica de declaración de tipo de documento.

La única forma de utilizar un tipo de documento creado de esta manera es en combinación con la función createDocument() para crear un QDomDocument con este tipo de documento.

En la especificación DOM, esta es la única forma de crear un documento no nulo. Por razones históricas, Qt también permite crear el documento utilizando el constructor vacío por defecto. El documento resultante es nulo, pero se convierte en no nulo cuando se llama a una función de fábrica, por ejemplo QDomDocument::createElement(). El documento también se convierte en no nulo cuando se llama a setContent().

Véase también createDocument().

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

La función devuelve true si QDom implementa la version solicitada de un feature; en caso contrario devuelve false.

Las características actualmente soportadas y sus versiones:

CaracterísticaVersión
XML1.0

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

Devuelve la política de datos no válidos, que especifica lo que debe hacerse cuando a una función de fábrica en QDomDocument se le pasan datos no válidos.

Advertencia: Esta función no es reentrante.

Véase también setInvalidDataPolicy() y InvalidDataPolicy.

bool QDomImplementation::isNull()

Devuelve false si el objeto fue creado por QDomDocument::implementation(); en caso contrario devuelve true.

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

Establece la política de datos no válidos, que especifica lo que debe hacerse cuando a una función de fábrica en QDomDocument se le pasan datos no válidos.

policy se establece para todas las instancias de QDomDocument que ya existen y que se crearán en el futuro.

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

Advertencia: Esta función no es reentrante.

Véase también invalidDataPolicy() y InvalidDataPolicy.

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

Devuelve true si other y este objeto de implementación DOM fueron creados a partir de diferentes QDomDocuments; en caso contrario devuelve false.

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

Asigna other a esta implementación DOM.

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

Devuelve true si other y este objeto de implementación DOM se crearon a partir del mismo QDomDocument; en caso contrario devuelve false.

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