4#include "Stroika/Frameworks/StroikaPreComp.h"
6#include "Stroika/Foundation/Containers/Mapping.h"
39#if qStroika_Foundation_DataExchange_XML_SupportParsing and qStroika_Foundation_DataExchange_XML_SupportSchema and qStroika_Foundation_DataExchange_XML_SupportDOM
41 DISABLE_COMPILER_GCC_WARNING_START (
"GCC diagnostic ignored \"-Wunused-variable\"");
43#include "soap-envelope-1.1.xsd.embed"
44 DISABLE_COMPILER_GCC_WARNING_END (
"GCC diagnostic ignored \"-Wunused-variable\"");
50using namespace Stroika::Frameworks;
51using namespace Stroika::Frameworks::WebService;
58 auto compiled = sCompiled_.
rwget ();
59 const pair<const XML::Providers::IXMLProvider*, bool> key{&o.GetProvider (), allowEncodingStyleOnEnvelope};
60 if (optional<XML::Schema::Ptr> s = compiled->Lookup (key)) {
63 string xsd{
reinterpret_cast<const char*
> (Schemas_soap_envelope_1_1_xsd), std::size (Schemas_soap_envelope_1_1_xsd)};
64 if (allowEncodingStyleOnEnvelope) {
66 static constexpr string_view kEnvelopeType_{
"<xs:complexType name=\"Envelope\" >"sv};
67 static constexpr string_view kAnyAttribute_{
"<xs:anyAttribute"sv};
68 const size_t envelopeType = xsd.find (kEnvelopeType_);
69 Assert (envelopeType != string::npos);
70 const size_t envelopesAnyAttribute = xsd.find (kAnyAttribute_, envelopeType);
71 Assert (envelopesAnyAttribute != string::npos);
72 xsd.insert (envelopesAnyAttribute,
"<xs:attribute ref=\"tns:encodingStyle\" />"sv);
75 compiled->Add (key, s);
Wrap any object with Synchronized<> and it can be used similarly to the base type,...
nonvirtual WritableReference rwget()
get a read-write smart pointer to the underlying Synchronized<> object, holding the full lock the who...
How XML is read and written - for now, with which provider - taken last by each XML function (DOM::Do...