QDomImplementation 类

QDomImplementation 类提供 DOM (文档对象模型) 实现特征的有关信息。 更多...

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

注意: 此类的所有函数 可重入 除以下外:

公共类型

enum InvalidDataPolicy { AcceptInvalidChars, DropInvalidChars, ReturnNullNode }

公共函数

  QDomImplementation (const QDomImplementation & x )
  QDomImplementation ()
QDomImplementation & operator= (const QDomImplementation & x )
  ~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 & x ) const
bool operator== (const QDomImplementation & x ) const

静态公共成员

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

详细描述

此类描述由 DOM 实现所支持的特征。目前支持 DOM 级别 1 和 DOM 级别 2 核心 XML 子集。

通常,使用函数 QDomDocument::implementation () 能获取实现对象。

可以创建新的文档类型采用 createDocumentType () 和新的文档采用 createDocument ().

有关文档对象模型的进一步信息,见 级别 1 and 级别 2 核心 。有关 DOM 实现的更一般介绍,见 QDomDocument 文档编制。

QDom 类有一些不符合 XML 规范的问题,Qt 4 无法在不破坏向后兼容性的情况下修复这些问题。Qt XML 模式模块和 QXmlStreamReader and QXmlStreamWriter 类拥有更高一致性。

另请参阅 hasFeature ().

成员类型文档编制

enum QDomImplementation:: InvalidDataPolicy

此枚举指定应做什么,当工厂函数在 QDomDocument 被调用采用无效数据。

常量 描述
QDomImplementation::AcceptInvalidChars 0 无论如何,都应将数据存储在 DOM 对象中。在此情况下,可能导致 XML 文档不是格式良好的。这是默认值且是 Qt < 4.1 的 QDom 行为。
QDomImplementation::DropInvalidChars 1 应从数据移除无效字符。
QDomImplementation::ReturnNullNode 2 工厂函数应返回 null 节点。

另请参阅 setInvalidDataPolicy () 和 invalidDataPolicy ().

成员函数文档编制

QDomImplementation:: QDomImplementation (const QDomImplementation & x )

构造副本为 x .

QDomImplementation:: QDomImplementation ()

构造 QDomImplementation 对象。

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

赋值 x 到此 DOM (文档对象模型) 实现。

QDomImplementation:: ~QDomImplementation ()

销毁对象并释放其资源。

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

创建的 DOM (文档对象模型) 文档具有文档类型 doctype 。此函数还添加根元素节点采用合格名称 qName 和名称空间 URI nsURI .

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

创建文档类型节点按名称 qName .

publicId 指定外部子集的公共标识符。若指定空字符串 QString() 作为 publicId ,这意味着文档类型没有公共标识符。

systemId 指定外部子集的系统标识符。若指定空字符串作为 systemId ,这意味着文档类型没有系统标识符。

由于没有系统标识符就无法拥有公共标识符,所以公共标识符被设为空字符串若没有系统标识符。

DOM 级别 2 不支持任何其它文档类型声明特征。

可以使用这种方式创建的文档类型的唯一办法,是组合 createDocument () 函数以创建 QDomDocument 采用此文档类型。

按 DOM 规范,这是创建非 null 文档的唯一方式。由于历史原因,Qt 还允许使用默认空构造函数创建文档。结果文档为 null,但使用工厂函数时会变为非 null,例如 QDomDocument::createElement () 的调用。文档也将变为非 null,当调用 setContent() 时。

另请参阅 createDocument ().

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

函数返回 true 若 QDom 实现请求 version feature ;否则返回 false .

目前支持的特征及其版本:

特征 版本
XML 1.0

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

返回指定应该做什么的无效数据策略,当工厂函数在 QDomDocument 被传递无效数据。

警告: 此函数不 可重入 .

另请参阅 setInvalidDataPolicy () 和 InvalidDataPolicy .

bool QDomImplementation:: isNull ()

返回 false 若对象创建通过 QDomDocument::implementation ();否则返回 true .

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

设置指定应该做什么的无效数据策略,当工厂函数在 QDomDocument 被传递无效数据。

policy 的设置是为所有实例化的 QDomDocument 其已存在且将在未来创建。

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

警告: 此函数不 可重入 .

另请参阅 invalidDataPolicy () 和 InvalidDataPolicy .

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

返回 true if x 和此 DOM 实现对象的创建是从不同 QDomDocument;否则返回 false .

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

返回 true if x 和此 DOM 实现对象的创建是从同一 QDomDocument ;否则返回 false .