QDomImplementation Class
QDomImplementation 클래스는 DOM 구현의 기능에 대한 정보를 제공합니다. 더 보기...
| 헤더: | #include <QDomImplementation> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Xml) target_link_libraries(mytarget PRIVATE Qt6::Xml) |
| qmake: | QT += xml |
- 상속된 멤버를 포함한 모든 멤버 목록
- QDomImplementation은 XML 클래스의 일부입니다.
참고: 이 클래스의 모든 함수는 다음 예외를 제외하고 재진입 가능합니다:
- invalidDataPolicy()
- setInvalidDataPolicy(QDomImplementation::InvalidDataPolicy policy)
공개 유형
| 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의 XML 하위 집합과 DOM 레벨 2 코어가 지원됩니다.
일반적으로 QDomDocument::implementation() 함수를 사용하여 구현 객체를 가져옵니다.
createDocumentType()을 사용하여 새로운 문서 유형을 생성할 수 있으며, createDocument()을 사용하여 새로운 문서를 생성할 수 있습니다.
문서 객체 모델(Document Object Model)에 대한 자세한 내용은 레벨 1 및 레벨 2 코어를 참조하십시오. DOM 구현에 대한 보다 일반적인 소개는 QDomDocument 문서를 참조하십시오.
QDom 클래스에는 XML 사양과 부합하지 않는 몇 가지 문제가 있으며, 이는 Qt 4에서 하위 호환성을 깨지 않고는 수정할 수 없습니다. Qt XML 패턴 모듈과 QXmlStreamReader 및 QXmlStreamWriter 클래스는 더 높은 수준의 호환성을 갖추고 있습니다.
hasFeature()도 참조하십시오 .
멤버 유형 문서
enum QDomImplementation::InvalidDataPolicy
이 열거형은 QDomDocument 의 팩토리 함수가 유효하지 않은 데이터로 호출되었을 때 어떻게 처리해야 하는지를 지정합니다.
| 상수 | 값 | 설명 |
|---|---|---|
QDomImplementation::AcceptInvalidChars | 0 | 데이터는 어쨌든 DOM 객체에 저장되어야 합니다. 이 경우 결과 XML 문서가 웰폼(well-formed)이 아닐 수 있습니다. 이는 Qt 6.12 이전 버전의 기본값이자 QDom의 동작이었습니다. |
QDomImplementation::DropInvalidChars | 1 | 데이터에서 유효하지 않은 문자를 제거해야 합니다. |
QDomImplementation::ReturnNullNode | 2 | 팩토리 함수는 null 노드를 반환해야 합니다. 이는 Qt 6.12부터의 기본값입니다. |
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 publicId 에 공용 식별자를 지정합니다. 로 빈 문자열(QString())을 지정하면, 해당 문서 유형에 공용 식별자가 없음을 의미합니다.
systemId 외부 하위 집합의 시스템 식별자를 지정합니다. systemId 에 빈 문자열을 지정하면, 해당 문서 유형에 시스템 식별자가 없음을 의미합니다.
시스템 식별자 없이는 공개 식별자를 가질 수 없으므로, 시스템 식별자가 없는 경우 공개 식별자는 빈 문자열로 설정됩니다.
DOM 레벨 2는 다른 문서 유형 선언 기능을 지원하지 않습니다.
이러한 방식으로 생성된 문서 유형을 사용할 수 있는 유일한 방법은 createDocument() 함수와 함께 사용하여 이 문서 유형으로 된 비어 있지 않은 문서( QDomDocument )를 생성하는 것입니다.
DOM 사양에서, 이것이 null이 아닌 문서를 생성하는 유일한 방법입니다. 역사적인 이유로, Qt에서는 기본 빈 생성자를 사용하여 문서를 생성할 수도 있습니다. 결과 문서는 null이지만, QDomDocument::createElement()과 같은 팩토리 함수가 호출되면 null이 아닌 상태가 됩니다. 또한 setContent()가 호출되면 문서가 null이 아닌 상태가 됩니다.
createDocument()도 참조하십시오 .
bool QDomImplementation::hasFeature(const QString &feature, const QString &version) const
이 함수는 QDom이 feature 의 요청된 version 를 구현하는 경우 true 를 반환하고, 그렇지 않은 경우 false 를 반환합니다.
현재 지원되는 기능 및 해당 버전:
| 기능 | 버전 |
|---|---|
| XML | 1.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 구현 객체가 서로 다른 QDocument에서 생성된 경우 true 를 반환하고, 그렇지 않은 경우 false 를 반환합니다.
QDomImplementation &QDomImplementation::operator=(const QDomImplementation &other)
이 DOM 구현체에 ` other `를 할당합니다.
bool QDomImplementation::operator==(const QDomImplementation &other) const
other 와 이 DOM 구현 객체가 동일한 QDomDocument 에서 생성된 경우 true 를 반환하고, 그렇지 않은 경우 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.