QDomImplementation 類

QDomImplementation 類提供 DOM (文檔對象模型) 實現特徵的有關信息。 更多...

頭: #include <QDomImplementation>
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 被傳遞無效數據。

警告: 此函數不 可重入 .

該函數在 Qt 4.1 引入。

另請參閱 setInvalidDataPolicy () 和 InvalidDataPolicy .

bool QDomImplementation:: isNull ()

返迴 false 若對象創建通過 QDomDocument::implementation ();否則返迴 true .

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

設置指定應該做什麼的無效數據策略,當工廠函數在 QDomDocument 被傳遞無效數據。

The policy 的設置是為所有實例化的 QDomDocument 其已存在且將在未來創建。

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::AcceptInvalidData);
QDomElement elt1 = doc.createElement("foo~bar");
// This will create an element with the tag name "foobar".
impl.setInvalidDataPolicy(QDomImplementation::DropInvalidData);
QDomElement elt2 = doc.createElement("foo~bar");
// This will create a null element.
impl.setInvalidDataPolicy(QDomImplementation::ReturnNullNode);
QDomElement elt3 = doc.createElement("foo~bar");
					

警告: 此函數不 可重入 .

該函數在 Qt 4.1 引入。

另請參閱 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 .