4#ifndef _Stroika_Foundation_DataExchange_XML_Namespace_h_
5#define _Stroika_Foundation_DataExchange_XML_Namespace_h_ 1
7#include "Stroika/Foundation/StroikaPreComp.h"
10#include "Stroika/Foundation/Containers/Mapping.h"
11#include "Stroika/Foundation/Containers/Sequence.h"
15namespace Stroika::Foundation::DataExchange::XML {
17 using Characters::String;
18 using Containers::Mapping;
19 using Containers::Sequence;
20 using IO::Network::URI;
37 nonvirtual optional<URI> GetDefaultNamespace ()
const;
45 nonvirtual
String ToString ()
const;
48 optional<URI> fDefaultNamespace_;
59 optional<URI> fNamespace;
61 template <Characters::IConvertibleToString NAME_TYPE>
66#if qCompilerAndStdLib_explicitly_defaulted_threeway_warning_Buggy
67 DISABLE_COMPILER_CLANG_WARNING_START (
"clang diagnostic ignored \"-Wdefaulted-function-deleted\"")
70#if qCompilerAndStdLib_explicitly_defaulted_threeway_warning_Buggy
71 DISABLE_COMPILER_CLANG_WARNING_END (
"clang diagnostic ignored \"-Wdefaulted-function-deleted\"")
75 nonvirtual
String ToString ()
const;
81 inline const NameWithNamespace kXMLNS{
"http://www.w3.org/2000/xmlns/"sv,
"xmlns"sv};
90#include "Namespace.inl"
String is like std::u32string, except it is much easier to use, often much more space efficient,...
A Mapping uniquely associates two elements: a key and a value (use Assocation to allow multiple value...
used to specify default namespace, and any n: prefixes applicable to elements.