diff --git a/alib2xml/src/common/xml/AlgorithmCategories.cpp b/alib2xml/src/common/xml/AlgorithmCategories.cpp
index 2c615640198c9dbdbdab3e581b72ede0140f0529..5e3558262993fb2aa5b82d892013df6b4c9b14df 100644
--- a/alib2xml/src/common/xml/AlgorithmCategories.cpp
+++ b/alib2xml/src/common/xml/AlgorithmCategories.cpp
@@ -16,8 +16,10 @@ bool xmlApi < abstraction::AlgorithmCategories::AlgorithmCategory >::first ( con
 	return sax::FromXMLParserHelper::isToken(input, sax::Token::TokenType::START_ELEMENT, xmlTagName ( ) );
 }
 
-std::string xmlApi < abstraction::AlgorithmCategories::AlgorithmCategory >::xmlTagName ( ) {
-	return "AlgorithmCategory";
+const std::string & xmlApi < abstraction::AlgorithmCategories::AlgorithmCategory >::xmlTagName ( ) {
+	static std::string xmlTagName = "AlgorithmCategory";
+
+	return xmlTagName;
 }
 
 void xmlApi < abstraction::AlgorithmCategories::AlgorithmCategory >::compose ( ext::deque < sax::Token > & out, abstraction::AlgorithmCategories::AlgorithmCategory category ) {
diff --git a/alib2xml/src/common/xml/AlgorithmCategories.hpp b/alib2xml/src/common/xml/AlgorithmCategories.hpp
index 977a7c70ccbd09a38a22951a5520cc27d488896a..7e5a9635268b41a24ab58593c0d4cc47fb619e94 100644
--- a/alib2xml/src/common/xml/AlgorithmCategories.hpp
+++ b/alib2xml/src/common/xml/AlgorithmCategories.hpp
@@ -10,7 +10,7 @@ template < >
 struct xmlApi < abstraction::AlgorithmCategories::AlgorithmCategory > {
 	static abstraction::AlgorithmCategories::AlgorithmCategory parse ( ext::deque < sax::Token >::iterator & input );
 	static bool first ( const ext::deque < sax::Token >::const_iterator & input );
-	static std::string xmlTagName ( );
+	static const std::string & xmlTagName ( );
 	static void compose ( ext::deque < sax::Token > & output, abstraction::AlgorithmCategories::AlgorithmCategory category );
 };
 
diff --git a/alib2xml/src/common/xml/ParamQualifiers.cpp b/alib2xml/src/common/xml/ParamQualifiers.cpp
index 7f98f132da625138f5f6367613250133fb2e8726..9b9abb699e99fb65fc4a23af66720cebb07838d3 100644
--- a/alib2xml/src/common/xml/ParamQualifiers.cpp
+++ b/alib2xml/src/common/xml/ParamQualifiers.cpp
@@ -25,8 +25,10 @@ bool xmlApi < abstraction::ParamQualifiers::ParamQualifier >::first ( const ext:
 	return sax::FromXMLParserHelper::isToken(input, sax::Token::TokenType::START_ELEMENT, xmlTagName ( ) );
 }
 
-std::string xmlApi < abstraction::ParamQualifiers::ParamQualifier >::xmlTagName ( ) {
-	return "ParamQualifier";
+const std::string & xmlApi < abstraction::ParamQualifiers::ParamQualifier >::xmlTagName ( ) {
+	static std::string xmlTagName = "ParamQualifier";
+
+	return xmlTagName;
 }
 
 void xmlApi < abstraction::ParamQualifiers::ParamQualifier >::compose ( ext::deque < sax::Token > & out, abstraction::ParamQualifiers::ParamQualifier paramQualifier ) {
diff --git a/alib2xml/src/common/xml/ParamQualifiers.hpp b/alib2xml/src/common/xml/ParamQualifiers.hpp
index 16416ae02ace4f06ce9f8649889a0038fb043eec..88047d619a4e4a4eb5d1c5d75d09513edf320888 100644
--- a/alib2xml/src/common/xml/ParamQualifiers.hpp
+++ b/alib2xml/src/common/xml/ParamQualifiers.hpp
@@ -10,7 +10,7 @@ template < >
 struct xmlApi < abstraction::ParamQualifiers::ParamQualifier > {
 	static abstraction::ParamQualifiers::ParamQualifier parse ( ext::deque < sax::Token >::iterator & input );
 	static bool first ( const ext::deque < sax::Token >::const_iterator & input );
-	static std::string xmlTagName ( );
+	static const std::string & xmlTagName ( );
 	static void compose ( ext::deque < sax::Token > & output, abstraction::ParamQualifiers::ParamQualifier );
 };
 
diff --git a/alib2xml/src/container/xml/ObjectsVariant.h b/alib2xml/src/container/xml/ObjectsVariant.h
index cee05d7ffe47202323b6a919656d6aebcde95c33..835dc4fd27c55e98e702c6d63cd76b7887b1061d 100644
--- a/alib2xml/src/container/xml/ObjectsVariant.h
+++ b/alib2xml/src/container/xml/ObjectsVariant.h
@@ -74,7 +74,7 @@ template < typename ... Ts >
 struct xmlApi < ext::variant < Ts ... > > {
 	static ext::variant < Ts ... > parse ( ext::deque < sax::Token >::iterator & input );
 	static bool first ( const ext::deque < sax::Token >::const_iterator & input );
-	static std::string xmlTagName ( );
+	static const std::string & xmlTagName ( );
 	static void compose ( ext::deque < sax::Token > & output, const ext::variant < Ts ... > & data );
 };
 
@@ -89,8 +89,8 @@ bool xmlApi < ext::variant < Ts ... > >::first ( const ext::deque < sax::Token >
 }
 
 template < typename ... Ts >
-std::string xmlApi < ext::variant < Ts ... > >::xmlTagName ( ) {
-	throw ::exception::CommonException ( "Variant does not have xmlTagName." );
+const std::string & xmlApi < ext::variant < Ts ... > >::xmlTagName ( ) {
+	throw exception::CommonException ( "Variant does not have xmlTagName." );
 }
 
 template < typename ... Ts >