QDomImplementation Class

QDomImplementation 클래스는 DOM 구현의 기능에 대한 정보를 제공합니다. 더 보기...

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

참고: 이 클래스의 모든 함수는 다음과 같은 예외를 제외하고 재진입됩니다:

공용 형

enum InvalidDataPolicy { AcceptInvalidChars, DropInvalidChars, ReturnNullNode }

공용 함수

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

정적 공용 멤버

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

상세 설명

이 클래스는 DOM 구현에서 지원되는 기능에 대해 설명합니다. 현재 DOM 레벨 1과 DOM 레벨 2 코어의 XML 하위 집합이 지원됩니다.

일반적으로 QDomDocument::implementation() 함수를 사용하여 구현 객체를 가져옵니다.

createDocumentType()를 사용하여 새 문서 유형을 만들고 createDocument()를 사용하여 새 문서를 만들 수 있습니다.

문서 객체 모델에 대한 자세한 내용은 레벨 1레벨 2 코어를 참조하세요. DOM 구현에 대한 보다 일반적인 소개는 QDomDocument 문서를 참조하세요.

QDom 클래스에는 이전 버전과의 호환성을 깨지 않고는 Qt 4에서 수정할 수 없는 몇 가지 XML 사양 비준수 문제가 있습니다. Qt XML 패턴 모듈과 QXmlStreamReaderQXmlStreamWriter 클래스는 더 높은 수준의 적합성을 가지고 있습니다.

hasFeature()도 참조하세요 .

멤버 유형 문서

enum QDomImplementation::InvalidDataPolicy

이 열거형은 QDomDocument 의 팩토리 함수가 잘못된 데이터로 호출될 때 수행해야 할 작업을 지정합니다.

Constant설명
QDomImplementation::AcceptInvalidChars0데이터는 어쨌든 DOM 객체에 저장되어야 합니다. 이 경우 결과 XML 문서가 제대로 형성되지 않을 수 있습니다. 이것은 기본값이며 Qt < 4.1에서 QDom의 동작입니다.
QDomImplementation::DropInvalidChars1유효하지 않은 문자는 데이터에서 제거되어야 합니다.
QDomImplementation::ReturnNullNode2팩토리 함수는 널 노드를 반환해야 합니다.

setInvalidDataPolicy() 및 invalidDataPolicy()도 참조하십시오 .

멤버 함수 문서

QDomImplementation::QDomImplementation()

QDomImplementation 객체를 생성합니다.

QDomImplementation::QDomImplementation(const QDomImplementation &implementation)

implementation 의 복사본을 생성합니다.

[noexcept] QDomImplementation::~QDomImplementation()

개체를 파괴하고 해당 리소스를 해제합니다.

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

문서 유형이 doctype 인 DOM 문서를 생성합니다. 이 함수는 또한 정규화된 이름 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 사양에서는 이것이 널이 아닌 문서를 생성하는 유일한 방법입니다. 역사적인 이유로 Qt는 기본 빈 생성자를 사용하여 문서를 생성할 수도 있습니다. 결과 문서는 널이지만 팩토리 함수(예: QDomDocument::createElement())가 호출되면 널이 아닌 문서가 됩니다. 이 문서는 또한 setContent()가 호출될 때 널이 아닌 문서가 됩니다.

createDocument()도 참조하세요 .

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

이 함수는 QDom이 feature 의 요청된 version 을 구현하면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

현재 지원되는 기능 및 해당 버전입니다:

기능버전
XML1.0

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

QDomDocument 의 팩토리 함수에 잘못된 데이터가 전달될 때 수행해야 할 작업을 지정하는 유효하지 않은 데이터 정책을 반환합니다.

경고: 이 함수는 재입력되지 않습니다.

setInvalidDataPolicy() 및 InvalidDataPolicy참조하세요 .

bool QDomImplementation::isNull()

객체가 QDomDocument::implementation()에 의해 생성된 경우 false 를 반환하고, 그렇지 않으면 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 &other) const

other 과 이 DOM 구현 객체가 서로 다른 QDomDocuments 에서 생성된 경우 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

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

이 DOM 구현에 other 을 할당합니다.

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

other 과 이 DOM 구현 객체가 동일한 QDomDocument 에서 생성된 경우 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

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