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_;
74 template <Characters::IConvertibleToString NAME_TYPE>
79#if qCompilerAndStdLib_explicitly_defaulted_threeway_warning_Buggy
80 DISABLE_COMPILER_CLANG_WARNING_START (
"clang diagnostic ignored \"-Wdefaulted-function-deleted\"")
83#if qCompilerAndStdLib_explicitly_defaulted_threeway_warning_Buggy
84 DISABLE_COMPILER_CLANG_WARNING_END (
"clang diagnostic ignored \"-Wdefaulted-function-deleted\"")
88 nonvirtual
String ToString ()
const;
94 inline const NameWithNamespace kXMLNS{
"http://www.w3.org/2000/xmlns/"sv,
"xmlns"sv};
124 inline const optional<IO::Network::URI> kInheritNamespace{};
133#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...
An element's or attribute's name (local-name, not including a prefix), plus the namespace that name i...
String fName
The LOCAL name - "Why" for <x:Why>
optional< URI > fNamespace
The namespace fName is in, however the document said so - nullopt for a name in no namespace.
used to specify default namespace, and any n: prefixes applicable to elements.