diff options
author | orivej <orivej@yandex-team.ru> | 2022-02-10 16:44:49 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:44:49 +0300 |
commit | 718c552901d703c502ccbefdfc3c9028d608b947 (patch) | |
tree | 46534a98bbefcd7b1f3faa5b52c138ab27db75b7 /contrib/libs/poco/XML/src/DOMParser.cpp | |
parent | e9656aae26e0358d5378e5b63dcac5c8dbe0e4d0 (diff) | |
download | ydb-718c552901d703c502ccbefdfc3c9028d608b947.tar.gz |
Restoring authorship annotation for <orivej@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'contrib/libs/poco/XML/src/DOMParser.cpp')
-rw-r--r-- | contrib/libs/poco/XML/src/DOMParser.cpp | 314 |
1 files changed, 157 insertions, 157 deletions
diff --git a/contrib/libs/poco/XML/src/DOMParser.cpp b/contrib/libs/poco/XML/src/DOMParser.cpp index 5e222c6fd7..9baca1a789 100644 --- a/contrib/libs/poco/XML/src/DOMParser.cpp +++ b/contrib/libs/poco/XML/src/DOMParser.cpp @@ -1,157 +1,157 @@ -// -// DOMParser.cpp -// -// Library: XML -// Package: DOM -// Module: DOMParser -// -// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#include "Poco/DOM/DOMParser.h" -#include "Poco/DOM/DOMBuilder.h" -#include "Poco/SAX/WhitespaceFilter.h" -#include "Poco/SAX/InputSource.h" -#include "Poco/XML/NamePool.h" -#include <sstream> - - -namespace Poco { -namespace XML { - - -const XMLString DOMParser::FEATURE_FILTER_WHITESPACE = toXMLString("http://www.appinf.com/features/no-whitespace-in-element-content"); - - -DOMParser::DOMParser(NamePool* pNamePool): - _pNamePool(pNamePool), - _filterWhitespace(false) -{ - if (_pNamePool) _pNamePool->duplicate(); - _saxParser.setFeature(XMLReader::FEATURE_NAMESPACES, true); - _saxParser.setFeature(XMLReader::FEATURE_NAMESPACE_PREFIXES, true); -} - - -DOMParser::DOMParser(unsigned long namePoolSize): - _pNamePool(new NamePool(namePoolSize)), - _filterWhitespace(false) -{ - _saxParser.setFeature(XMLReader::FEATURE_NAMESPACES, true); - _saxParser.setFeature(XMLReader::FEATURE_NAMESPACE_PREFIXES, true); -} - - -DOMParser::~DOMParser() -{ - if (_pNamePool) _pNamePool->release(); -} - - -void DOMParser::setEncoding(const XMLString& encoding) -{ - _saxParser.setEncoding(encoding); -} - - -const XMLString& DOMParser::getEncoding() const -{ - return _saxParser.getEncoding(); -} - - -void DOMParser::addEncoding(const XMLString& name, Poco::TextEncoding* pEncoding) -{ - _saxParser.addEncoding(name, pEncoding); -} - - -void DOMParser::setFeature(const XMLString& name, bool state) -{ - if (name == FEATURE_FILTER_WHITESPACE) - _filterWhitespace = state; - else - _saxParser.setFeature(name, state); -} - - -bool DOMParser::getFeature(const XMLString& name) const -{ - if (name == FEATURE_FILTER_WHITESPACE) - return _filterWhitespace; - else - return _saxParser.getFeature(name); -} - - -Document* DOMParser::parse(const XMLString& uri) -{ - if (_filterWhitespace) - { - WhitespaceFilter filter(&_saxParser); - DOMBuilder builder(filter, _pNamePool); - return builder.parse(uri); - } - else - { - DOMBuilder builder(_saxParser, _pNamePool); - return builder.parse(uri); - } -} - - -Document* DOMParser::parse(InputSource* pInputSource) -{ - if (_filterWhitespace) - { - WhitespaceFilter filter(&_saxParser); - DOMBuilder builder(filter, _pNamePool); - return builder.parse(pInputSource); - } - else - { - DOMBuilder builder(_saxParser, _pNamePool); - return builder.parse(pInputSource); - } -} - - -Document* DOMParser::parseString(const std::string& xml) -{ - return parseMemory(xml.data(), xml.size()); -} - - -Document* DOMParser::parseMemory(const char* xml, std::size_t size) -{ - if (_filterWhitespace) - { - WhitespaceFilter filter(&_saxParser); - DOMBuilder builder(filter, _pNamePool); - return builder.parseMemoryNP(xml, size); - } - else - { - DOMBuilder builder(_saxParser, _pNamePool); - return builder.parseMemoryNP(xml, size); - } -} - - -EntityResolver* DOMParser::getEntityResolver() const -{ - return _saxParser.getEntityResolver(); -} - - -void DOMParser::setEntityResolver(EntityResolver* pEntityResolver) -{ - _saxParser.setEntityResolver(pEntityResolver); -} - - -} } // namespace Poco::XML +// +// DOMParser.cpp +// +// Library: XML +// Package: DOM +// Module: DOMParser +// +// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/DOM/DOMParser.h" +#include "Poco/DOM/DOMBuilder.h" +#include "Poco/SAX/WhitespaceFilter.h" +#include "Poco/SAX/InputSource.h" +#include "Poco/XML/NamePool.h" +#include <sstream> + + +namespace Poco { +namespace XML { + + +const XMLString DOMParser::FEATURE_FILTER_WHITESPACE = toXMLString("http://www.appinf.com/features/no-whitespace-in-element-content"); + + +DOMParser::DOMParser(NamePool* pNamePool): + _pNamePool(pNamePool), + _filterWhitespace(false) +{ + if (_pNamePool) _pNamePool->duplicate(); + _saxParser.setFeature(XMLReader::FEATURE_NAMESPACES, true); + _saxParser.setFeature(XMLReader::FEATURE_NAMESPACE_PREFIXES, true); +} + + +DOMParser::DOMParser(unsigned long namePoolSize): + _pNamePool(new NamePool(namePoolSize)), + _filterWhitespace(false) +{ + _saxParser.setFeature(XMLReader::FEATURE_NAMESPACES, true); + _saxParser.setFeature(XMLReader::FEATURE_NAMESPACE_PREFIXES, true); +} + + +DOMParser::~DOMParser() +{ + if (_pNamePool) _pNamePool->release(); +} + + +void DOMParser::setEncoding(const XMLString& encoding) +{ + _saxParser.setEncoding(encoding); +} + + +const XMLString& DOMParser::getEncoding() const +{ + return _saxParser.getEncoding(); +} + + +void DOMParser::addEncoding(const XMLString& name, Poco::TextEncoding* pEncoding) +{ + _saxParser.addEncoding(name, pEncoding); +} + + +void DOMParser::setFeature(const XMLString& name, bool state) +{ + if (name == FEATURE_FILTER_WHITESPACE) + _filterWhitespace = state; + else + _saxParser.setFeature(name, state); +} + + +bool DOMParser::getFeature(const XMLString& name) const +{ + if (name == FEATURE_FILTER_WHITESPACE) + return _filterWhitespace; + else + return _saxParser.getFeature(name); +} + + +Document* DOMParser::parse(const XMLString& uri) +{ + if (_filterWhitespace) + { + WhitespaceFilter filter(&_saxParser); + DOMBuilder builder(filter, _pNamePool); + return builder.parse(uri); + } + else + { + DOMBuilder builder(_saxParser, _pNamePool); + return builder.parse(uri); + } +} + + +Document* DOMParser::parse(InputSource* pInputSource) +{ + if (_filterWhitespace) + { + WhitespaceFilter filter(&_saxParser); + DOMBuilder builder(filter, _pNamePool); + return builder.parse(pInputSource); + } + else + { + DOMBuilder builder(_saxParser, _pNamePool); + return builder.parse(pInputSource); + } +} + + +Document* DOMParser::parseString(const std::string& xml) +{ + return parseMemory(xml.data(), xml.size()); +} + + +Document* DOMParser::parseMemory(const char* xml, std::size_t size) +{ + if (_filterWhitespace) + { + WhitespaceFilter filter(&_saxParser); + DOMBuilder builder(filter, _pNamePool); + return builder.parseMemoryNP(xml, size); + } + else + { + DOMBuilder builder(_saxParser, _pNamePool); + return builder.parseMemoryNP(xml, size); + } +} + + +EntityResolver* DOMParser::getEntityResolver() const +{ + return _saxParser.getEntityResolver(); +} + + +void DOMParser::setEntityResolver(EntityResolver* pEntityResolver) +{ + _saxParser.setEntityResolver(pEntityResolver); +} + + +} } // namespace Poco::XML |