QXmlDefaultHandler Class

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

Header: #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는 QXmlContentHandlerQXmlErrorHandler 을 모두 서브클래싱하므로 이를 서브클래싱하면 다음 두 리더 함수 모두에 동일한 핸들러를 사용할 수 있습니다:

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

리더는 처리기에 구문 분석 오류를 알리기 때문에, 예를 들어 이러한 오류가 발생할 때 구문 분석을 중지하려면 QXmlErrorHandler::fatalError()를 다시 구현해야 합니다:

bool Handler::fatalError(const QXmlParseException & 예외){
    qWarning() << "Fatal error on line" << exception.lineNumber()
              << ", column"<< 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 &접두사).

이 재구현은 아무 일도 하지 않습니다.

[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).

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

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

다시 구현합니다: QXmlContentHandler::setDocumentLocator(QXmlLocator *로케이터).

이 재구현은 아무것도 하지 않습니다.

[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).

이 재구현은 아무것도 하지 않습니다.

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