diff options
| author | Devtools Arcadia <[email protected]> | 2022-02-07 18:08:42 +0300 |
|---|---|---|
| committer | Devtools Arcadia <[email protected]> | 2022-02-07 18:08:42 +0300 |
| commit | 1110808a9d39d4b808aef724c861a2e1a38d2a69 (patch) | |
| tree | e26c9fed0de5d9873cce7e00bc214573dc2195b7 /contrib/libs/poco/XML/src/DOMImplementation.cpp | |
intermediate changes
ref:cde9a383711a11544ce7e107a78147fb96cc4029
Diffstat (limited to 'contrib/libs/poco/XML/src/DOMImplementation.cpp')
| -rw-r--r-- | contrib/libs/poco/XML/src/DOMImplementation.cpp | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/contrib/libs/poco/XML/src/DOMImplementation.cpp b/contrib/libs/poco/XML/src/DOMImplementation.cpp new file mode 100644 index 00000000000..b6a138d67e1 --- /dev/null +++ b/contrib/libs/poco/XML/src/DOMImplementation.cpp @@ -0,0 +1,86 @@ +// +// DOMImplementation.cpp +// +// Library: XML +// Package: DOM +// Module: DOM +// +// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/DOM/DOMImplementation.h" +#include "Poco/DOM/DocumentType.h" +#include "Poco/DOM/Document.h" +#include "Poco/DOM/Element.h" +#include "Poco/String.h" +#include "Poco/SingletonHolder.h" + + +namespace Poco { +namespace XML { + + +const XMLString DOMImplementation::FEATURE_XML = toXMLString("xml"); +const XMLString DOMImplementation::FEATURE_CORE = toXMLString("core"); +const XMLString DOMImplementation::FEATURE_EVENTS = toXMLString("events"); +const XMLString DOMImplementation::FEATURE_MUTATIONEVENTS = toXMLString("mutationevents"); +const XMLString DOMImplementation::FEATURE_TRAVERSAL = toXMLString("traversal"); +const XMLString DOMImplementation::VERSION_1_0 = toXMLString("1.0"); +const XMLString DOMImplementation::VERSION_2_0 = toXMLString("2.0"); + + +DOMImplementation::DOMImplementation() +{ +} + + +DOMImplementation::~DOMImplementation() +{ +} + + +bool DOMImplementation::hasFeature(const XMLString& feature, const XMLString& version) const +{ + XMLString lcFeature = Poco::toLower(feature); + return (lcFeature == FEATURE_XML && version == VERSION_1_0) || + (lcFeature == FEATURE_CORE && version == VERSION_2_0) || + (lcFeature == FEATURE_EVENTS && version == VERSION_2_0) || + (lcFeature == FEATURE_MUTATIONEVENTS && version == VERSION_2_0) || + (lcFeature == FEATURE_TRAVERSAL && version == VERSION_2_0); +} + + +DocumentType* DOMImplementation::createDocumentType(const XMLString& name, const XMLString& publicId, const XMLString& systemId) const +{ + return new DocumentType(0, name, publicId, systemId); +} + + +Document* DOMImplementation::createDocument(const XMLString& namespaceURI, const XMLString& qualifiedName, DocumentType* doctype) const +{ + Document* pDoc = new Document(doctype); + if (namespaceURI.empty()) + pDoc->appendChild(pDoc->createElement(qualifiedName))->release(); + else + pDoc->appendChild(pDoc->createElementNS(namespaceURI, qualifiedName))->release(); + return pDoc; +} + + +namespace +{ + static Poco::SingletonHolder<DOMImplementation> sh; +} + + +const DOMImplementation& DOMImplementation::instance() +{ + return *sh.get(); +} + + +} } // namespace Poco::XML |
