이 페이지에서

QXmlDefaultHandler Class

QXmlDefaultHandler 클래스는 모든 XML 핸들러 클래스에 대한 기본 구현을 제공합니다. 더 보기...

헤더: #include <QXmlDefaultHandler>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core5Compat)
target_link_libraries(mytarget PRIVATE Qt6::Core5Compat)
qmake: QT += core5compat
상속:QXmlContentHandler, QXmlErrorHandler, QXmlDTDHandler, QXmlEntityResolver, QXmlLexicalHandler 및 QXmlDeclHandler

참고: 이 클래스의 모든 함수는 재진입 가능합니다.

공개 함수

재구현된 공용 함수

virtual bool attributeDecl(const QString &eName, const QString &aName, const QString &type, const QString &valueDefault, const QString &value) override
virtual bool characters(const QString &ch) override
virtual bool comment(const QString &ch) override
virtual bool endCDATA() override
virtual bool endDTD() override
virtual bool endDocument() override
virtual bool endElement(const QString &namespaceURI, const QString &localName, const QString &qName) override
virtual bool endEntity(const QString &name) override
virtual bool endPrefixMapping(const QString &prefix) override
virtual bool error(const QXmlParseException &exception) override
virtual QString errorString() const override
virtual bool externalEntityDecl(const QString &name, const QString &publicId, const QString &systemId) override
virtual bool fatalError(const QXmlParseException &exception) override
virtual bool ignorableWhitespace(const QString &ch) override
virtual bool internalEntityDecl(const QString &name, const QString &value) override
virtual bool notationDecl(const QString &name, const QString &publicId, const QString &systemId) override
virtual bool processingInstruction(const QString &target, const QString &data) override
virtual bool resolveEntity(const QString &publicId, const QString &systemId, QXmlInputSource *&ret) override
virtual void setDocumentLocator(QXmlLocator *locator) override
virtual bool skippedEntity(const QString &name) override
virtual bool startCDATA() override
virtual bool startDTD(const QString &name, const QString &publicId, const QString &systemId) override
virtual bool startDocument() override
virtual bool startElement(const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &atts) override
virtual bool startEntity(const QString &name) override
virtual bool startPrefixMapping(const QString &prefix, const QString &uri) override
virtual bool unparsedEntityDecl(const QString &name, const QString &publicId, const QString &systemId, const QString &notationName) override
virtual bool warning(const QXmlParseException &exception) override

상세 설명

이 클래스는 특화된 핸들러 클래스들의 기능을 한데 모아, ` QXmlReader`의 서브클래스, 특히 ` QXmlSimpleReader`을 위한 사용자 정의 핸들러를 구현할 때 편리한 출발점이 됩니다. 각 기저 클래스의 가상 함수들이 이 클래스에서 재구현되어, 많은 일반적인 경우에 합리적인 기본 동작을 제공합니다. 이 클래스를 상속받고 해당 함수들을 재정의함으로써, 애플리케이션과 관련된 핸들러 부분의 구현에만 집중할 수 있습니다.

XML 리더는 파싱 과정에서 다양한 종류의 이벤트에 대해 어떤 핸들러를 사용할지 지정받아야 합니다. 즉, QXmlDefaultHandler가 모든 기저 클래스에서 상속받은 함수의 기본 구현을 제공하더라도, 특정 종류의 이벤트에 대해서는 특화된 핸들러를 사용할 수 있습니다.

예를 들어, QXmlDefaultHandler는 QXmlContentHandler 와 QXmlErrorHandler 의 하위 클래스이므로, 이를 상속하여 다음 두 리더 함수 모두에 동일한 핸들러를 사용할 수 있습니다:

    xmlReader.setContentHandler(handler);
    xmlReader.setErrorHandler(handler);

리더는 구문 분석 오류를 핸들러에 알리므로, 예를 들어 그러한 오류가 발생했을 때 구문 분석을 중지하고 싶다면 QXmlErrorHandler::fatalError()을 재구현해야 합니다:

bool Handler::fatalError (const QXmlParseException& exception)
{
    qWarning() << "Fatal error on line" << exception.lineNumber()
              << ", 열" << exception.columnNumber() << ':'
               << exception.message();

    return false;
}

위의 함수는 ` false`를 반환하며, 이는 리더가 구문 분석을 중지해야 함을 나타냅니다. 동일한 리더를 계속 사용하려면 새로운 핸들러 인스턴스를 생성하고, 앞서 설명한 방식대로 리더가 이를 사용하도록 설정해야 합니다.

QXmlDefaultHandler가 상속받은 몇 가지 함수를 살펴보고, 사용자 정의 핸들러에서 왜 이러한 함수들을 재구현해야 하는지 고려해 보는 것이 유용합니다. 사용자 정의 핸들러는 일반적으로 QXmlContentHandler::startDocument()를 재구현하여 새로운 콘텐츠를 처리할 수 있도록 핸들러를 준비합니다. 문서 요소와 그 안의 텍스트는 ` QXmlContentHandler::startElement()`, ` QXmlContentHandler::endElement()`, ` QXmlContentHandler::characters()`를 재구현하여 처리할 수 있습니다. 문서가 완전히 읽힌 후 콘텐츠에 대한 최종 처리나 유효성 검사를 수행하려면 ` QXmlContentHandler::endDocument()`를 재구현할 수 있습니다.

QXmlDTDHandler, QXmlDeclHandler, QXmlContentHandler, QXmlEntityResolver, QXmlErrorHandler 및 QXmlLexicalHandler도 참조하십시오 .

멤버 함수 설명서

QXmlDefaultHandler::QXmlDefaultHandler()

QXmlReader 의 하위 클래스에서 사용할 핸들러를 생성합니다.

[virtual noexcept] QXmlDefaultHandler::~QXmlDefaultHandler()

핸들러를 삭제합니다.

[override virtual] bool QXmlDefaultHandler::attributeDecl(const QString &eName, const QString &aName, const QString &type, const QString &valueDefault, const QString &value)

QXmlDeclHandler::attributeDecl(const QString &eName, const QString &aName, const QString &type, const QString &valueDefault, const QString &value)를 재구현합니다.

이 재구현은 아무 작업도 수행하지 않습니다.

[override virtual] bool QXmlDefaultHandler::characters(const QString &ch)

QXmlContentHandler::characters(const QString &ch)를 재구현합니다.

이 재구현은 아무 작업도 수행하지 않습니다.

[override virtual] bool QXmlDefaultHandler::comment(const QString &ch)

QXmlLexicalHandler::comment(const QString &ch)를 재구현합니다.

이 재구현은 아무 작업도 수행하지 않습니다.

[override virtual] bool QXmlDefaultHandler::endCDATA()

QXmlLexicalHandler::endCDATA()을 재구현합니다.

이 재구현은 아무 작업도 수행하지 않습니다.

[override virtual] bool QXmlDefaultHandler::endDTD()

QXmlLexicalHandler::endDTD()을 재구현합니다.

이 재구현은 아무 작업도 수행하지 않습니다.

[override virtual] bool QXmlDefaultHandler::endDocument()

QXmlContentHandler::endDocument()를 재구현합니다.

이 재구현은 아무 작업도 수행하지 않습니다.

[override virtual] bool QXmlDefaultHandler::endElement(const QString &namespaceURI, const QString &localName, const QString &qName)

QXmlContentHandler::endElement(const QString &namespaceURI, const QString &localName, const QString &qName)를 재구현합니다.

이 재구현은 아무 작업도 수행하지 않습니다.

[override virtual] bool QXmlDefaultHandler::endEntity(const QString &name)

QXmlLexicalHandler::endEntity(const QString &name)을 재구현합니다.

이 재구현은 아무 작업도 수행하지 않습니다.

[override virtual] bool QXmlDefaultHandler::endPrefixMapping(const QString &prefix)

QXmlContentHandler::endPrefixMapping(const QString &prefix)을 재구현합니다.

이 재구현은 아무 작업도 수행하지 않습니다.

[override virtual] bool QXmlDefaultHandler::error(const QXmlParseException &exception)

QXmlErrorHandler::error(const QXmlParseException &exception)을 재구현합니다.

이 재구현은 아무 작업도 수행하지 않습니다.

[override virtual] QString QXmlDefaultHandler::errorString() const

QXmlContentHandler::errorString() const를 재구현합니다.

기본 오류 문자열을 반환합니다.

[override virtual] bool QXmlDefaultHandler::externalEntityDecl(const QString &name, const QString &publicId, const QString &systemId)

QXmlDeclHandler::externalEntityDecl(const QString &name, const QString &publicId, const QString &systemId)를 재구현합니다.

이 재구현은 아무 작업도 수행하지 않습니다.

[override virtual] bool QXmlDefaultHandler::fatalError(const QXmlParseException &exception)

QXmlErrorHandler::fatalError(const QXmlParseException &exception)을 재구현합니다.

이 재구현은 아무 작업도 수행하지 않습니다.

[override virtual] bool QXmlDefaultHandler::ignorableWhitespace(const QString &ch)

QXmlContentHandler::ignorableWhitespace(const QString &ch)를 재구현합니다.

이 재구현은 아무 작업도 수행하지 않습니다.

[override virtual] bool QXmlDefaultHandler::internalEntityDecl(const QString &name, const QString &value)

QXmlDeclHandler::internalEntityDecl(const QString &name, const QString &value)를 재구현합니다.

이 재구현은 아무 작업도 수행하지 않습니다.

[override virtual] bool QXmlDefaultHandler::notationDecl(const QString &name, const QString &publicId, const QString &systemId)

QXmlDTDHandler::notationDecl(const QString &name, const QString &publicId, const QString &systemId)를 재구현합니다.

이 재구현은 아무 작업도 수행하지 않습니다.

[override virtual] bool QXmlDefaultHandler::processingInstruction(const QString &target, const QString &data)

QXmlContentHandler::processingInstruction(const QString &target, const QString &data)를 재구현합니다.

이 재구현은 아무 작업도 수행하지 않습니다.

[override virtual] bool QXmlDefaultHandler::resolveEntity(const QString &publicId, const QString &systemId, QXmlInputSource *&ret)

QXmlEntityResolver::resolveEntity(const QString &publicId, const QString &systemId, QXmlInputSource *&ret)를 재구현합니다.

ret 를 nullptr 로 설정하여, 리더가 XML 문서에 제공된 시스템 식별자를 사용하도록 합니다.

[override virtual] void QXmlDefaultHandler::setDocumentLocator(QXmlLocator *locator)

QXmlContentHandler::setDocumentLocator(QXmlLocator *locator)를 재구현합니다.

이 재구현은 아무 작업도 수행하지 않습니다.

[override virtual] bool QXmlDefaultHandler::skippedEntity(const QString &name)

QXmlContentHandler::skippedEntity(const QString &name)를 재구현합니다.

이 재구현은 아무 작업도 수행하지 않습니다.

[override virtual] bool QXmlDefaultHandler::startCDATA()

QXmlLexicalHandler::startCDATA()을 재구현합니다.

이 재구현은 아무 작업도 수행하지 않습니다.

[override virtual] bool QXmlDefaultHandler::startDTD(const QString &name, const QString &publicId, const QString &systemId)

QXmlLexicalHandler::startDTD(const QString &name, const QString &publicId, const QString &systemId)를 재구현합니다.

이 재구현은 아무 작업도 수행하지 않습니다.

[override virtual] bool QXmlDefaultHandler::startDocument()

QXmlContentHandler::startDocument()을 재구현합니다.

이 재구현은 아무 작업도 수행하지 않습니다.

[override virtual] bool QXmlDefaultHandler::startElement(const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &atts)

QXmlContentHandler::startElement(const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &atts)를 재구현합니다.

이 재구현은 아무 작업도 수행하지 않습니다.

[override virtual] bool QXmlDefaultHandler::startEntity(const QString &name)

QXmlLexicalHandler::startEntity(const QString &name)을 재구현합니다.

이 재구현은 아무 작업도 수행하지 않습니다.

[override virtual] bool QXmlDefaultHandler::startPrefixMapping(const QString &prefix, const QString &uri)

QXmlContentHandler::startPrefixMapping(const QString &prefix, const QString &uri)를 재구현합니다.

이 재구현은 아무 작업도 수행하지 않습니다.

[override virtual] bool QXmlDefaultHandler::unparsedEntityDecl(const QString &name, const QString &publicId, const QString &systemId, const QString &notationName)

QXmlDTDHandler::unparsedEntityDecl(const QString &name, const QString &publicId, const QString &systemId, const QString &notationName)를 재구현합니다.

이 재구현은 아무 작업도 수행하지 않습니다.

[override virtual] bool QXmlDefaultHandler::warning(const QXmlParseException &exception)

QXmlErrorHandler::warning(const QXmlParseException &exception)을 재구현합니다.

이 재구현은 아무 작업도 수행하지 않습니다.

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