Stroika Library 3.0d16
 
Loading...
Searching...
No Matches
Namespace.inl
1/*
2 * Copyright(c) Sophist Solutions, Inc. 1990-2025. All rights reserved
3 */
6
7namespace Stroika::Foundation::DataExchange::XML {
8
9 /*
10 ********************************************************************************
11 ************************** XML::NamespaceDefinitions ***************************
12 ********************************************************************************
13 */
14 inline NamespaceDefinitions::NamespaceDefinitions (const optional<URI>& defaultNamespace, const Mapping<String, URI>& prefixedNamespaces)
15 : fDefaultNamespace_{defaultNamespace}
16 , fPrefixedNS_{prefixedNamespaces}
17 {
18 }
19 inline NamespaceDefinitions::NamespaceDefinitions (const Mapping<String, URI>& prefixedNamespaces)
20 : fPrefixedNS_{prefixedNamespaces}
21 {
22 }
23 inline optional<URI> NamespaceDefinitions::GetDefaultNamespace () const
24 {
25 return fDefaultNamespace_;
26 }
27 inline Mapping<String, URI> NamespaceDefinitions::GetPrefixedNamespaces () const
28 {
29 return fPrefixedNS_;
30 }
31 inline String NamespaceDefinitions::ToString () const
32 {
33 Characters::StringBuilder sb;
34 sb << "{"sv;
35 if (fDefaultNamespace_) {
36 sb << "defaultNS: "sv << *fDefaultNamespace_;
37 }
38 if (fPrefixedNS_) {
39 sb << ", prefixedNamespaces: "sv << fPrefixedNS_;
40 }
41 sb << "}"sv;
42 return sb;
43 }
44
45 /*
46 ********************************************************************************
47 ************************* XML::NameWithNamespace *******************************
48 ********************************************************************************
49 */
50 template <Characters::IConvertibleToString NAME_TYPE>
51 inline NameWithNamespace::NameWithNamespace (NAME_TYPE&& name)
52 : fName{name}
53 {
54 }
55 inline NameWithNamespace::NameWithNamespace (const optional<URI>& ns, const String& name)
56 : fName{name}
57 , fNamespace{ns}
58 {
59 }
60 inline String NameWithNamespace::ToString () const
61 {
62 Characters::StringBuilder sb;
63 if (fNamespace) {
64 sb << fNamespace->As<String> () << ":"sv;
65 }
66 sb << fName;
67 return sb;
68 }
69
70}