From 1914cdaf5d1c425cbaf7f3932eedd9b9cfda4a19 Mon Sep 17 00:00:00 2001
From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz>
Date: Thu, 19 Nov 2015 09:11:00 +0100
Subject: [PATCH] simplify parser function registration

---
 alib2data/src/XmlApi.hpp                                    | 4 ++--
 alib2data/src/alphabet/BarSymbol.cpp                        | 4 ++--
 alib2data/src/alphabet/BlankSymbol.cpp                      | 4 ++--
 alib2data/src/alphabet/BottomOfTheStackSymbol.cpp           | 4 ++--
 alib2data/src/alphabet/EndSymbol.cpp                        | 4 ++--
 alib2data/src/alphabet/LabeledSymbol.cpp                    | 4 ++--
 alib2data/src/alphabet/RankedSymbol.cpp                     | 4 ++--
 alib2data/src/alphabet/StartSymbol.cpp                      | 4 ++--
 alib2data/src/alphabet/SubtreeWildcardSymbol.cpp            | 4 ++--
 alib2data/src/alphabet/SymbolPairSymbol.cpp                 | 4 ++--
 alib2data/src/alphabet/SymbolSetSymbol.cpp                  | 4 ++--
 alib2data/src/alphabet/UniqueSymbol.cpp                     | 4 ++--
 alib2data/src/alphabet/VariablesBarSymbol.cpp               | 4 ++--
 alib2data/src/automaton/FSM/CompactNFA.cpp                  | 4 ++--
 alib2data/src/automaton/FSM/DFA.cpp                         | 4 ++--
 alib2data/src/automaton/FSM/EpsilonNFA.cpp                  | 4 ++--
 alib2data/src/automaton/FSM/ExtendedNFA.cpp                 | 4 ++--
 alib2data/src/automaton/FSM/MultiInitialStateNFA.cpp        | 4 ++--
 alib2data/src/automaton/FSM/NFA.cpp                         | 4 ++--
 alib2data/src/automaton/PDA/DPDA.cpp                        | 4 ++--
 alib2data/src/automaton/PDA/InputDrivenDPDA.cpp             | 4 ++--
 alib2data/src/automaton/PDA/InputDrivenNPDA.cpp             | 4 ++--
 alib2data/src/automaton/PDA/NPDA.cpp                        | 4 ++--
 .../src/automaton/PDA/RealTimeHeightDeterministicDPDA.cpp   | 4 ++--
 .../src/automaton/PDA/RealTimeHeightDeterministicNPDA.cpp   | 4 ++--
 alib2data/src/automaton/PDA/SinglePopDPDA.cpp               | 4 ++--
 alib2data/src/automaton/PDA/SinglePopNPDA.cpp               | 4 ++--
 alib2data/src/automaton/PDA/VisiblyPushdownDPDA.cpp         | 4 ++--
 alib2data/src/automaton/PDA/VisiblyPushdownNPDA.cpp         | 4 ++--
 alib2data/src/automaton/TA/DFTA.cpp                         | 4 ++--
 alib2data/src/automaton/TA/NFTA.cpp                         | 4 ++--
 alib2data/src/automaton/TM/OneTapeDTM.cpp                   | 4 ++--
 alib2data/src/container/ObjectsDeque.cpp                    | 4 ++--
 alib2data/src/container/ObjectsList.cpp                     | 4 ++--
 alib2data/src/container/ObjectsMap.cpp                      | 4 ++--
 alib2data/src/container/ObjectsPair.cpp                     | 4 ++--
 alib2data/src/container/ObjectsSet.cpp                      | 4 ++--
 alib2data/src/container/ObjectsVector.cpp                   | 4 ++--
 alib2data/src/exception/AlibException.cpp                   | 2 +-
 alib2data/src/grammar/ContextFree/CFG.cpp                   | 4 ++--
 alib2data/src/grammar/ContextFree/CNF.cpp                   | 4 ++--
 alib2data/src/grammar/ContextFree/EpsilonFreeCFG.cpp        | 4 ++--
 alib2data/src/grammar/ContextFree/GNF.cpp                   | 4 ++--
 alib2data/src/grammar/ContextFree/LG.cpp                    | 4 ++--
 alib2data/src/grammar/ContextSensitive/CSG.cpp              | 4 ++--
 .../src/grammar/ContextSensitive/NonContractingGrammar.cpp  | 4 ++--
 alib2data/src/grammar/Regular/LeftLG.cpp                    | 4 ++--
 alib2data/src/grammar/Regular/LeftRG.cpp                    | 4 ++--
 alib2data/src/grammar/Regular/RightLG.cpp                   | 4 ++--
 alib2data/src/grammar/Regular/RightRG.cpp                   | 4 ++--
 .../Unrestricted/ContextPreservingUnrestrictedGrammar.cpp   | 4 ++--
 alib2data/src/grammar/Unrestricted/UnrestrictedGrammar.cpp  | 4 ++--
 alib2data/src/graph/directed/DirectedGraph.cpp              | 4 ++--
 alib2data/src/graph/undirected/UndirectedGraph.cpp          | 4 ++--
 alib2data/src/indexes/suffixTrie/SuffixTrieFinalMark.cpp    | 2 +-
 .../src/indexes/suffixTrie/SuffixTrieTerminatingSymbol.cpp  | 2 +-
 alib2data/src/label/HexavigesimalLabel.cpp                  | 4 ++--
 alib2data/src/label/LabelPairLabel.cpp                      | 4 ++--
 alib2data/src/label/LabelSetLabel.cpp                       | 4 ++--
 alib2data/src/label/ObjectLabel.cpp                         | 4 ++--
 alib2data/src/label/PrimitiveLabel.cpp                      | 4 ++--
 alib2data/src/label/UniqueLabel.cpp                         | 4 ++--
 alib2data/src/object/Void.cpp                               | 2 +-
 alib2data/src/primitive/Bool.cpp                            | 4 ++--
 alib2data/src/primitive/Character.cpp                       | 4 ++--
 alib2data/src/primitive/Integer.cpp                         | 4 ++--
 alib2data/src/primitive/String.cpp                          | 4 ++--
 alib2data/src/primitive/Unsigned.cpp                        | 4 ++--
 alib2data/src/regexp/formal/FormalRegExp.cpp                | 4 ++--
 alib2data/src/regexp/unbounded/UnboundedRegExp.cpp          | 4 ++--
 alib2data/src/string/CyclicString.cpp                       | 4 ++--
 alib2data/src/string/Epsilon.cpp                            | 4 ++--
 alib2data/src/string/LinearString.cpp                       | 4 ++--
 alib2data/src/string/LinearStringTerminatingSymbol.cpp      | 4 ++--
 alib2data/src/tree/ranked/PrefixRankedBarPattern.cpp        | 6 +++---
 alib2data/src/tree/ranked/PrefixRankedBarTree.cpp           | 6 +++---
 alib2data/src/tree/ranked/PrefixRankedPattern.cpp           | 6 +++---
 alib2data/src/tree/ranked/PrefixRankedTree.cpp              | 6 +++---
 alib2data/src/tree/ranked/RankedPattern.cpp                 | 6 +++---
 alib2data/src/tree/ranked/RankedTree.cpp                    | 6 +++---
 alib2data/src/tree/unranked/PrefixBarTree.cpp               | 6 +++---
 alib2data/src/tree/unranked/UnrankedPattern.cpp             | 6 +++---
 alib2data/src/tree/unranked/UnrankedTree.cpp                | 6 +++---
 83 files changed, 171 insertions(+), 171 deletions(-)

diff --git a/alib2data/src/XmlApi.hpp b/alib2data/src/XmlApi.hpp
index 49f4e22388..24d2d175f1 100644
--- a/alib2data/src/XmlApi.hpp
+++ b/alib2data/src/XmlApi.hpp
@@ -112,8 +112,8 @@ public:
 		std::function < Type ( std::deque < sax::Token >::iterator & ) > parseFunction;
 
 	public:
-		ParserRegister ( std::string tagName, std::function < Type ( std::deque < sax::Token >::iterator & ) > parseFunction ) : parseFunction ( parseFunction ) {
-			parseFunctions ( ).insert ( std::make_pair ( std::move ( tagName ), this ) );
+		ParserRegister ( ) : parseFunction ( Type::parse ) {
+			parseFunctions ( ).insert ( std::make_pair ( Type::XML_TAG_NAME, this ) );
 		}
 
 		virtual Group parse ( std::deque < sax::Token >::iterator & input ) {
diff --git a/alib2data/src/alphabet/BarSymbol.cpp b/alib2data/src/alphabet/BarSymbol.cpp
index 0034c99260..c7cbc51166 100644
--- a/alib2data/src/alphabet/BarSymbol.cpp
+++ b/alib2data/src/alphabet/BarSymbol.cpp
@@ -65,7 +65,7 @@ SymbolBase* BarSymbol::inc() && {
 
 namespace alib {
 
-xmlApi<alphabet::Symbol>::ParserRegister<alphabet::BarSymbol> barSymbolParserRegister = xmlApi<alphabet::Symbol>::ParserRegister<alphabet::BarSymbol>(alphabet::BarSymbol::XML_TAG_NAME, alphabet::BarSymbol::parse);
-xmlApi<alib::Object>::ParserRegister<alphabet::BarSymbol> barSymbolParserRegister2 = xmlApi<alib::Object>::ParserRegister<alphabet::BarSymbol>(alphabet::BarSymbol::XML_TAG_NAME, alphabet::BarSymbol::parse);
+auto barSymbolParserRegister = xmlApi<alphabet::Symbol>::ParserRegister<alphabet::BarSymbol>();
+auto barSymbolParserRegister2 = xmlApi<alib::Object>::ParserRegister<alphabet::BarSymbol>();
 
 } /* namespace alib */
diff --git a/alib2data/src/alphabet/BlankSymbol.cpp b/alib2data/src/alphabet/BlankSymbol.cpp
index 1cdb3c1caa..9708fcf943 100644
--- a/alib2data/src/alphabet/BlankSymbol.cpp
+++ b/alib2data/src/alphabet/BlankSymbol.cpp
@@ -65,7 +65,7 @@ SymbolBase* BlankSymbol::inc() && {
 
 namespace alib {
 
-xmlApi<alphabet::Symbol>::ParserRegister<alphabet::BlankSymbol> blankSymbolParserRegister = xmlApi<alphabet::Symbol>::ParserRegister<alphabet::BlankSymbol>(alphabet::BlankSymbol::XML_TAG_NAME, alphabet::BlankSymbol::parse);
-xmlApi<alib::Object>::ParserRegister<alphabet::BlankSymbol> blankSymbolParserRegister2 = xmlApi<alib::Object>::ParserRegister<alphabet::BlankSymbol>(alphabet::BlankSymbol::XML_TAG_NAME, alphabet::BlankSymbol::parse);
+auto blankSymbolParserRegister = xmlApi<alphabet::Symbol>::ParserRegister<alphabet::BlankSymbol>();
+auto blankSymbolParserRegister2 = xmlApi<alib::Object>::ParserRegister<alphabet::BlankSymbol>();
 
 } /* namespace alib */
diff --git a/alib2data/src/alphabet/BottomOfTheStackSymbol.cpp b/alib2data/src/alphabet/BottomOfTheStackSymbol.cpp
index ac67c6caed..62948e5263 100644
--- a/alib2data/src/alphabet/BottomOfTheStackSymbol.cpp
+++ b/alib2data/src/alphabet/BottomOfTheStackSymbol.cpp
@@ -65,7 +65,7 @@ SymbolBase* BottomOfTheStackSymbol::inc() && {
 
 namespace alib {
 
-xmlApi<alphabet::Symbol>::ParserRegister<alphabet::BottomOfTheStackSymbol> bottomOfTheStackSymbolParserRegister = xmlApi<alphabet::Symbol>::ParserRegister<alphabet::BottomOfTheStackSymbol>(alphabet::BottomOfTheStackSymbol::XML_TAG_NAME, alphabet::BottomOfTheStackSymbol::parse);
-xmlApi<alib::Object>::ParserRegister<alphabet::BottomOfTheStackSymbol> bottomOfTheStackSymbolParserRegister2 = xmlApi<alib::Object>::ParserRegister<alphabet::BottomOfTheStackSymbol>(alphabet::BottomOfTheStackSymbol::XML_TAG_NAME, alphabet::BottomOfTheStackSymbol::parse);
+auto bottomOfTheStackSymbolParserRegister = xmlApi<alphabet::Symbol>::ParserRegister<alphabet::BottomOfTheStackSymbol>();
+auto bottomOfTheStackSymbolParserRegister2 = xmlApi<alib::Object>::ParserRegister<alphabet::BottomOfTheStackSymbol>();
 
 } /* namespace alib */
diff --git a/alib2data/src/alphabet/EndSymbol.cpp b/alib2data/src/alphabet/EndSymbol.cpp
index 33bc477708..e0a5328948 100644
--- a/alib2data/src/alphabet/EndSymbol.cpp
+++ b/alib2data/src/alphabet/EndSymbol.cpp
@@ -65,7 +65,7 @@ SymbolBase* EndSymbol::inc() && {
 
 namespace alib {
 
-xmlApi<alphabet::Symbol>::ParserRegister<alphabet::EndSymbol> endSymbolParserRegister = xmlApi<alphabet::Symbol>::ParserRegister<alphabet::EndSymbol>(alphabet::EndSymbol::XML_TAG_NAME, alphabet::EndSymbol::parse);
-xmlApi<alib::Object>::ParserRegister<alphabet::EndSymbol> endSymbolParserRegister2 = xmlApi<alib::Object>::ParserRegister<alphabet::EndSymbol>(alphabet::EndSymbol::XML_TAG_NAME, alphabet::EndSymbol::parse);
+auto endSymbolParserRegister = xmlApi<alphabet::Symbol>::ParserRegister<alphabet::EndSymbol>();
+auto endSymbolParserRegister2 = xmlApi<alib::Object>::ParserRegister<alphabet::EndSymbol>();
 
 } /* namespace alib */
diff --git a/alib2data/src/alphabet/LabeledSymbol.cpp b/alib2data/src/alphabet/LabeledSymbol.cpp
index 2c7fba541d..bbd21316d9 100644
--- a/alib2data/src/alphabet/LabeledSymbol.cpp
+++ b/alib2data/src/alphabet/LabeledSymbol.cpp
@@ -85,7 +85,7 @@ SymbolBase* LabeledSymbol::inc() && {
 
 namespace alib {
 
-xmlApi<alphabet::Symbol>::ParserRegister<alphabet::LabeledSymbol> labeledSymbolParserRegister = xmlApi<alphabet::Symbol>::ParserRegister<alphabet::LabeledSymbol>(alphabet::LabeledSymbol::XML_TAG_NAME, alphabet::LabeledSymbol::parse);
-xmlApi<alib::Object>::ParserRegister<alphabet::LabeledSymbol> labeledSymbolParserRegister2 = xmlApi<alib::Object>::ParserRegister<alphabet::LabeledSymbol>(alphabet::LabeledSymbol::XML_TAG_NAME, alphabet::LabeledSymbol::parse);
+auto labeledSymbolParserRegister = xmlApi<alphabet::Symbol>::ParserRegister<alphabet::LabeledSymbol>();
+auto labeledSymbolParserRegister2 = xmlApi<alib::Object>::ParserRegister<alphabet::LabeledSymbol>();
 
 } /* namespace alib */
diff --git a/alib2data/src/alphabet/RankedSymbol.cpp b/alib2data/src/alphabet/RankedSymbol.cpp
index b01754fa70..c4b66c4bbe 100644
--- a/alib2data/src/alphabet/RankedSymbol.cpp
+++ b/alib2data/src/alphabet/RankedSymbol.cpp
@@ -93,7 +93,7 @@ SymbolBase* RankedSymbol::inc() && {
 
 namespace alib {
 
-xmlApi<alphabet::Symbol>::ParserRegister<alphabet::RankedSymbol> rankedSymbolParserRegister = xmlApi<alphabet::Symbol>::ParserRegister<alphabet::RankedSymbol>(alphabet::RankedSymbol::XML_TAG_NAME, alphabet::RankedSymbol::parse);
-xmlApi<alib::Object>::ParserRegister<alphabet::RankedSymbol> rankedSymbolParserRegister2 = xmlApi<alib::Object>::ParserRegister<alphabet::RankedSymbol>(alphabet::RankedSymbol::XML_TAG_NAME, alphabet::RankedSymbol::parse);
+auto rankedSymbolParserRegister = xmlApi<alphabet::Symbol>::ParserRegister<alphabet::RankedSymbol>();
+auto rankedSymbolParserRegister2 = xmlApi<alib::Object>::ParserRegister<alphabet::RankedSymbol>();
 
 } /* namespace alib */
diff --git a/alib2data/src/alphabet/StartSymbol.cpp b/alib2data/src/alphabet/StartSymbol.cpp
index 2809d1d671..2ee301be6b 100644
--- a/alib2data/src/alphabet/StartSymbol.cpp
+++ b/alib2data/src/alphabet/StartSymbol.cpp
@@ -65,7 +65,7 @@ SymbolBase* StartSymbol::inc() && {
 
 namespace alib {
 
-xmlApi<alphabet::Symbol>::ParserRegister<alphabet::StartSymbol> startSymbolParserRegister = xmlApi<alphabet::Symbol>::ParserRegister<alphabet::StartSymbol>(alphabet::StartSymbol::XML_TAG_NAME, alphabet::StartSymbol::parse);
-xmlApi<alib::Object>::ParserRegister<alphabet::StartSymbol> startSymbolParserRegister2 = xmlApi<alib::Object>::ParserRegister<alphabet::StartSymbol>(alphabet::StartSymbol::XML_TAG_NAME, alphabet::StartSymbol::parse);
+auto startSymbolParserRegister = xmlApi<alphabet::Symbol>::ParserRegister<alphabet::StartSymbol>();
+auto startSymbolParserRegister2 = xmlApi<alib::Object>::ParserRegister<alphabet::StartSymbol>();
 
 } /* namespace alib */
diff --git a/alib2data/src/alphabet/SubtreeWildcardSymbol.cpp b/alib2data/src/alphabet/SubtreeWildcardSymbol.cpp
index 48066a997f..d450ef34ee 100644
--- a/alib2data/src/alphabet/SubtreeWildcardSymbol.cpp
+++ b/alib2data/src/alphabet/SubtreeWildcardSymbol.cpp
@@ -65,7 +65,7 @@ SymbolBase* SubtreeWildcardSymbol::inc() && {
 
 namespace alib {
 
-xmlApi<alphabet::Symbol>::ParserRegister<alphabet::SubtreeWildcardSymbol> subtreeWildcardSymbolParserRegister = xmlApi<alphabet::Symbol>::ParserRegister<alphabet::SubtreeWildcardSymbol>(alphabet::SubtreeWildcardSymbol::XML_TAG_NAME, alphabet::SubtreeWildcardSymbol::parse);
-xmlApi<alib::Object>::ParserRegister<alphabet::SubtreeWildcardSymbol> subtreeWildcardSymbolParserRegister2 = xmlApi<alib::Object>::ParserRegister<alphabet::SubtreeWildcardSymbol>(alphabet::SubtreeWildcardSymbol::XML_TAG_NAME, alphabet::SubtreeWildcardSymbol::parse);
+auto subtreeWildcardSymbolParserRegister = xmlApi<alphabet::Symbol>::ParserRegister<alphabet::SubtreeWildcardSymbol>();
+auto subtreeWildcardSymbolParserRegister2 = xmlApi<alib::Object>::ParserRegister<alphabet::SubtreeWildcardSymbol>();
 
 } /* namespace alib */
diff --git a/alib2data/src/alphabet/SymbolPairSymbol.cpp b/alib2data/src/alphabet/SymbolPairSymbol.cpp
index 7115f47487..74f5afa4ce 100644
--- a/alib2data/src/alphabet/SymbolPairSymbol.cpp
+++ b/alib2data/src/alphabet/SymbolPairSymbol.cpp
@@ -83,7 +83,7 @@ SymbolBase* SymbolPairSymbol::inc() && {
 
 namespace alib {
 
-xmlApi<alphabet::Symbol>::ParserRegister<alphabet::SymbolPairSymbol> symbolPairSymbolParserRegister = xmlApi<alphabet::Symbol>::ParserRegister<alphabet::SymbolPairSymbol>(alphabet::SymbolPairSymbol::XML_TAG_NAME, alphabet::SymbolPairSymbol::parse);
-xmlApi<alib::Object>::ParserRegister<alphabet::SymbolPairSymbol> symbolPairSymbolParserRegister2 = xmlApi<alib::Object>::ParserRegister<alphabet::SymbolPairSymbol>(alphabet::SymbolPairSymbol::XML_TAG_NAME, alphabet::SymbolPairSymbol::parse);
+auto symbolPairSymbolParserRegister = xmlApi<alphabet::Symbol>::ParserRegister<alphabet::SymbolPairSymbol>();
+auto symbolPairSymbolParserRegister2 = xmlApi<alib::Object>::ParserRegister<alphabet::SymbolPairSymbol>();
 
 } /* namespace alib */
diff --git a/alib2data/src/alphabet/SymbolSetSymbol.cpp b/alib2data/src/alphabet/SymbolSetSymbol.cpp
index 14ce18816c..f91af83a88 100644
--- a/alib2data/src/alphabet/SymbolSetSymbol.cpp
+++ b/alib2data/src/alphabet/SymbolSetSymbol.cpp
@@ -87,7 +87,7 @@ SymbolBase* SymbolSetSymbol::inc() && {
 
 namespace alib {
 
-xmlApi<alphabet::Symbol>::ParserRegister<alphabet::SymbolSetSymbol> symbolSetSymbolParserRegister = xmlApi<alphabet::Symbol>::ParserRegister<alphabet::SymbolSetSymbol>(alphabet::SymbolSetSymbol::XML_TAG_NAME, alphabet::SymbolSetSymbol::parse);
-xmlApi<alib::Object>::ParserRegister<alphabet::SymbolSetSymbol> symbolSetSymbolParserRegister2 = xmlApi<alib::Object>::ParserRegister<alphabet::SymbolSetSymbol>(alphabet::SymbolSetSymbol::XML_TAG_NAME, alphabet::SymbolSetSymbol::parse);
+auto symbolSetSymbolParserRegister = xmlApi<alphabet::Symbol>::ParserRegister<alphabet::SymbolSetSymbol>();
+auto symbolSetSymbolParserRegister2 = xmlApi<alib::Object>::ParserRegister<alphabet::SymbolSetSymbol>();
 
 } /* namespace alib */
diff --git a/alib2data/src/alphabet/UniqueSymbol.cpp b/alib2data/src/alphabet/UniqueSymbol.cpp
index 9c2917a8db..803b5ef392 100644
--- a/alib2data/src/alphabet/UniqueSymbol.cpp
+++ b/alib2data/src/alphabet/UniqueSymbol.cpp
@@ -91,7 +91,7 @@ SymbolBase* UniqueSymbol::inc() && {
 
 namespace alib {
 
-xmlApi<alphabet::Symbol>::ParserRegister<alphabet::UniqueSymbol> uniqueSymbolParserRegister = xmlApi<alphabet::Symbol>::ParserRegister<alphabet::UniqueSymbol>(alphabet::UniqueSymbol::XML_TAG_NAME, alphabet::UniqueSymbol::parse);
-xmlApi<alib::Object>::ParserRegister<alphabet::UniqueSymbol> uniqueSymbolParserRegister2 = xmlApi<alib::Object>::ParserRegister<alphabet::UniqueSymbol>(alphabet::UniqueSymbol::XML_TAG_NAME, alphabet::UniqueSymbol::parse);
+auto uniqueSymbolParserRegister = xmlApi<alphabet::Symbol>::ParserRegister<alphabet::UniqueSymbol>();
+auto uniqueSymbolParserRegister2 = xmlApi<alib::Object>::ParserRegister<alphabet::UniqueSymbol>();
 
 } /* namespace alib */
diff --git a/alib2data/src/alphabet/VariablesBarSymbol.cpp b/alib2data/src/alphabet/VariablesBarSymbol.cpp
index 322f586daf..316b8de05e 100644
--- a/alib2data/src/alphabet/VariablesBarSymbol.cpp
+++ b/alib2data/src/alphabet/VariablesBarSymbol.cpp
@@ -65,7 +65,7 @@ SymbolBase * VariablesBarSymbol::inc ( ) && {
 
 namespace alib {
 
-xmlApi < alphabet::Symbol >::ParserRegister < alphabet::VariablesBarSymbol > variablesBarSymbolParserRegister = xmlApi < alphabet::Symbol >::ParserRegister < alphabet::VariablesBarSymbol > ( alphabet::VariablesBarSymbol::XML_TAG_NAME, alphabet::VariablesBarSymbol::parse );
-xmlApi < alib::Object >::ParserRegister < alphabet::VariablesBarSymbol > variablesBarSymbolParserRegister2 = xmlApi < alib::Object >::ParserRegister < alphabet::VariablesBarSymbol > ( alphabet::VariablesBarSymbol::XML_TAG_NAME, alphabet::VariablesBarSymbol::parse );
+auto variablesBarSymbolParserRegister = xmlApi < alphabet::Symbol >::ParserRegister < alphabet::VariablesBarSymbol > ();
+auto variablesBarSymbolParserRegister2 = xmlApi < alib::Object >::ParserRegister < alphabet::VariablesBarSymbol > ();
 
 } /* namespace alib */
diff --git a/alib2data/src/automaton/FSM/CompactNFA.cpp b/alib2data/src/automaton/FSM/CompactNFA.cpp
index 16f06b909b..29fc5eddca 100644
--- a/alib2data/src/automaton/FSM/CompactNFA.cpp
+++ b/alib2data/src/automaton/FSM/CompactNFA.cpp
@@ -254,8 +254,8 @@ void CompactNFA::composeTransitions(std::deque<sax::Token>& out) const {
 
 namespace alib {
 
-xmlApi<automaton::Automaton>::ParserRegister<automaton::CompactNFA> compactNFAParserRegister = xmlApi<automaton::Automaton>::ParserRegister<automaton::CompactNFA>(automaton::CompactNFA::XML_TAG_NAME, automaton::CompactNFA::parse);
-xmlApi<alib::Object>::ParserRegister<automaton::CompactNFA> compactNFAParserRegister2 = xmlApi<alib::Object>::ParserRegister<automaton::CompactNFA>(automaton::CompactNFA::XML_TAG_NAME, automaton::CompactNFA::parse);
+auto compactNFAParserRegister = xmlApi<automaton::Automaton>::ParserRegister<automaton::CompactNFA>();
+auto compactNFAParserRegister2 = xmlApi<alib::Object>::ParserRegister<automaton::CompactNFA>();
 
 auto CompactNFAFromDFA = castApi::CastRegister<automaton::CompactNFA, automaton::DFA>();
 auto CompactNFAFromNFA = castApi::CastRegister<automaton::CompactNFA, automaton::NFA>();
diff --git a/alib2data/src/automaton/FSM/DFA.cpp b/alib2data/src/automaton/FSM/DFA.cpp
index 0f3761beef..a1c0f6b105 100644
--- a/alib2data/src/automaton/FSM/DFA.cpp
+++ b/alib2data/src/automaton/FSM/DFA.cpp
@@ -220,7 +220,7 @@ void DFA::composeTransitions(std::deque<sax::Token>& out) const {
 
 namespace alib {
 
-xmlApi<automaton::Automaton>::ParserRegister<automaton::DFA> DFAParserRegister = xmlApi<automaton::Automaton>::ParserRegister<automaton::DFA>(automaton::DFA::XML_TAG_NAME, automaton::DFA::parse);
-xmlApi<alib::Object>::ParserRegister<automaton::DFA> DFAParserRegister2 = xmlApi<alib::Object>::ParserRegister<automaton::DFA>(automaton::DFA::XML_TAG_NAME, automaton::DFA::parse);
+auto DFAParserRegister = xmlApi<automaton::Automaton>::ParserRegister<automaton::DFA>();
+auto DFAParserRegister2 = xmlApi<alib::Object>::ParserRegister<automaton::DFA>();
 
 } /* namespace alib */
diff --git a/alib2data/src/automaton/FSM/EpsilonNFA.cpp b/alib2data/src/automaton/FSM/EpsilonNFA.cpp
index 0233e29ccb..cf52129a4c 100644
--- a/alib2data/src/automaton/FSM/EpsilonNFA.cpp
+++ b/alib2data/src/automaton/FSM/EpsilonNFA.cpp
@@ -343,8 +343,8 @@ void EpsilonNFA::composeTransitions(std::deque<sax::Token>& out) const {
 
 namespace alib {
 
-xmlApi<automaton::Automaton>::ParserRegister<automaton::EpsilonNFA> epsilonNFAParserRegister = xmlApi<automaton::Automaton>::ParserRegister<automaton::EpsilonNFA>(automaton::EpsilonNFA::XML_TAG_NAME, automaton::EpsilonNFA::parse);
-xmlApi<alib::Object>::ParserRegister<automaton::EpsilonNFA> epsilonNFAParserRegister2 = xmlApi<alib::Object>::ParserRegister<automaton::EpsilonNFA>(automaton::EpsilonNFA::XML_TAG_NAME, automaton::EpsilonNFA::parse);
+auto epsilonNFAParserRegister = xmlApi<automaton::Automaton>::ParserRegister<automaton::EpsilonNFA>();
+auto epsilonNFAParserRegister2 = xmlApi<alib::Object>::ParserRegister<automaton::EpsilonNFA>();
 
 auto EpsilonNFAFromDFA = castApi::CastRegister<automaton::EpsilonNFA, automaton::DFA>();
 auto EpsilonNFAFromNFA = castApi::CastRegister<automaton::EpsilonNFA, automaton::NFA>();
diff --git a/alib2data/src/automaton/FSM/ExtendedNFA.cpp b/alib2data/src/automaton/FSM/ExtendedNFA.cpp
index 00de1706cb..0ff4edb513 100644
--- a/alib2data/src/automaton/FSM/ExtendedNFA.cpp
+++ b/alib2data/src/automaton/FSM/ExtendedNFA.cpp
@@ -265,8 +265,8 @@ void ExtendedNFA::composeTransitions(std::deque<sax::Token>& out) const {
 
 namespace alib {
 
-xmlApi<automaton::Automaton>::ParserRegister<automaton::ExtendedNFA> extendedNFAParserRegister = xmlApi<automaton::Automaton>::ParserRegister<automaton::ExtendedNFA>(automaton::ExtendedNFA::XML_TAG_NAME, automaton::ExtendedNFA::parse);
-xmlApi<alib::Object>::ParserRegister<automaton::ExtendedNFA> extendedNFAParserRegister2 = xmlApi<alib::Object>::ParserRegister<automaton::ExtendedNFA>(automaton::ExtendedNFA::XML_TAG_NAME, automaton::ExtendedNFA::parse);
+auto extendedNFAParserRegister = xmlApi<automaton::Automaton>::ParserRegister<automaton::ExtendedNFA>();
+auto extendedNFAParserRegister2 = xmlApi<alib::Object>::ParserRegister<automaton::ExtendedNFA>();
 
 auto ExtendedNFAFromDFA = castApi::CastRegister<automaton::ExtendedNFA, automaton::DFA>();
 auto ExtendedNFAFromNFA = castApi::CastRegister<automaton::ExtendedNFA, automaton::NFA>();
diff --git a/alib2data/src/automaton/FSM/MultiInitialStateNFA.cpp b/alib2data/src/automaton/FSM/MultiInitialStateNFA.cpp
index dafe752d8d..5e2ad55814 100644
--- a/alib2data/src/automaton/FSM/MultiInitialStateNFA.cpp
+++ b/alib2data/src/automaton/FSM/MultiInitialStateNFA.cpp
@@ -245,8 +245,8 @@ void MultiInitialStateNFA::composeTransitions(std::deque<sax::Token>& out) const
 
 namespace alib {
 
-xmlApi<automaton::Automaton>::ParserRegister<automaton::MultiInitialStateNFA> multiInitialStateNFAParserRegister = xmlApi<automaton::Automaton>::ParserRegister<automaton::MultiInitialStateNFA>(automaton::MultiInitialStateNFA::XML_TAG_NAME, automaton::MultiInitialStateNFA::parse);
-xmlApi<alib::Object>::ParserRegister<automaton::MultiInitialStateNFA> multiInitialStateNFAParserRegister2 = xmlApi<alib::Object>::ParserRegister<automaton::MultiInitialStateNFA>(automaton::MultiInitialStateNFA::XML_TAG_NAME, automaton::MultiInitialStateNFA::parse);
+auto multiInitialStateNFAParserRegister = xmlApi<automaton::Automaton>::ParserRegister<automaton::MultiInitialStateNFA>();
+auto multiInitialStateNFAParserRegister2 = xmlApi<alib::Object>::ParserRegister<automaton::MultiInitialStateNFA>();
 
 auto MultiInitialStateNFAFromDFA = castApi::CastRegister<automaton::MultiInitialStateNFA, automaton::DFA>();
 auto MultiInitialStateNFAFromNFA = castApi::CastRegister<automaton::MultiInitialStateNFA, automaton::NFA>();
diff --git a/alib2data/src/automaton/FSM/NFA.cpp b/alib2data/src/automaton/FSM/NFA.cpp
index 28eacec4eb..1e7f2cf488 100644
--- a/alib2data/src/automaton/FSM/NFA.cpp
+++ b/alib2data/src/automaton/FSM/NFA.cpp
@@ -227,8 +227,8 @@ void NFA::composeTransitions(std::deque<sax::Token>& out) const {
 
 namespace alib {
 
-xmlApi<automaton::Automaton>::ParserRegister<automaton::NFA> NFAParserRegister = xmlApi<automaton::Automaton>::ParserRegister<automaton::NFA>(automaton::NFA::XML_TAG_NAME, automaton::NFA::parse);
-xmlApi<alib::Object>::ParserRegister<automaton::NFA> NFAParserRegister2 = xmlApi<alib::Object>::ParserRegister<automaton::NFA>(automaton::NFA::XML_TAG_NAME, automaton::NFA::parse);
+auto NFAParserRegister = xmlApi<automaton::Automaton>::ParserRegister<automaton::NFA>();
+auto NFAParserRegister2 = xmlApi<alib::Object>::ParserRegister<automaton::NFA>();
 
 auto NFAFromDFA = castApi::CastRegister<automaton::NFA, automaton::DFA>();
 auto NFACastBinder = castApi::CastPoolStringBinder<automaton::NFA>(automaton::NFA::XML_TAG_NAME);
diff --git a/alib2data/src/automaton/PDA/DPDA.cpp b/alib2data/src/automaton/PDA/DPDA.cpp
index e5ab067461..5be6540278 100644
--- a/alib2data/src/automaton/PDA/DPDA.cpp
+++ b/alib2data/src/automaton/PDA/DPDA.cpp
@@ -325,8 +325,8 @@ void DPDA::composeTransitions(std::deque<sax::Token>& out) const {
 
 namespace alib {
 
-xmlApi<automaton::Automaton>::ParserRegister<automaton::DPDA> DPDAParserRegister = xmlApi<automaton::Automaton>::ParserRegister<automaton::DPDA>(automaton::DPDA::XML_TAG_NAME, automaton::DPDA::parse);
-xmlApi<alib::Object>::ParserRegister<automaton::DPDA> DPDAParserRegister2 = xmlApi<alib::Object>::ParserRegister<automaton::DPDA>(automaton::DPDA::XML_TAG_NAME, automaton::DPDA::parse);
+auto DPDAParserRegister = xmlApi<automaton::Automaton>::ParserRegister<automaton::DPDA>();
+auto DPDAParserRegister2 = xmlApi<alib::Object>::ParserRegister<automaton::DPDA>();
 
 auto DPDACastBinder = castApi::CastPoolStringBinder<automaton::DPDA>(automaton::DPDA::XML_TAG_NAME);
 
diff --git a/alib2data/src/automaton/PDA/InputDrivenDPDA.cpp b/alib2data/src/automaton/PDA/InputDrivenDPDA.cpp
index 591c417656..6c9346b58c 100644
--- a/alib2data/src/automaton/PDA/InputDrivenDPDA.cpp
+++ b/alib2data/src/automaton/PDA/InputDrivenDPDA.cpp
@@ -295,7 +295,7 @@ void InputDrivenDPDA::composeTransitions(std::deque<sax::Token>& out) const {
 
 namespace alib {
 
-xmlApi<automaton::Automaton>::ParserRegister<automaton::InputDrivenDPDA> inputDivenDPDAParserRegister = xmlApi<automaton::Automaton>::ParserRegister<automaton::InputDrivenDPDA>(automaton::InputDrivenDPDA::XML_TAG_NAME, automaton::InputDrivenDPDA::parse);
-xmlApi<alib::Object>::ParserRegister<automaton::InputDrivenDPDA> inputDivenDPDAParserRegister2 = xmlApi<alib::Object>::ParserRegister<automaton::InputDrivenDPDA>(automaton::InputDrivenDPDA::XML_TAG_NAME, automaton::InputDrivenDPDA::parse);
+auto inputDivenDPDAParserRegister = xmlApi<automaton::Automaton>::ParserRegister<automaton::InputDrivenDPDA>();
+auto inputDivenDPDAParserRegister2 = xmlApi<alib::Object>::ParserRegister<automaton::InputDrivenDPDA>();
 
 } /* namespace alib */
diff --git a/alib2data/src/automaton/PDA/InputDrivenNPDA.cpp b/alib2data/src/automaton/PDA/InputDrivenNPDA.cpp
index d3bf520127..46aa618fcd 100644
--- a/alib2data/src/automaton/PDA/InputDrivenNPDA.cpp
+++ b/alib2data/src/automaton/PDA/InputDrivenNPDA.cpp
@@ -288,7 +288,7 @@ void InputDrivenNPDA::composeTransitions(std::deque<sax::Token>& out) const {
 
 namespace alib {
 
-xmlApi<automaton::Automaton>::ParserRegister<automaton::InputDrivenNPDA> inputDrivenNPDAParserRegister = xmlApi<automaton::Automaton>::ParserRegister<automaton::InputDrivenNPDA>(automaton::InputDrivenNPDA::XML_TAG_NAME, automaton::InputDrivenNPDA::parse);
-xmlApi<alib::Object>::ParserRegister<automaton::InputDrivenNPDA> inputDrivenNPDAParserRegister2 = xmlApi<alib::Object>::ParserRegister<automaton::InputDrivenNPDA>(automaton::InputDrivenNPDA::XML_TAG_NAME, automaton::InputDrivenNPDA::parse);
+auto inputDrivenNPDAParserRegister = xmlApi<automaton::Automaton>::ParserRegister<automaton::InputDrivenNPDA>();
+auto inputDrivenNPDAParserRegister2 = xmlApi<alib::Object>::ParserRegister<automaton::InputDrivenNPDA>();
 
 } /* namespace alib */
diff --git a/alib2data/src/automaton/PDA/NPDA.cpp b/alib2data/src/automaton/PDA/NPDA.cpp
index dfbe86366d..a45429716a 100644
--- a/alib2data/src/automaton/PDA/NPDA.cpp
+++ b/alib2data/src/automaton/PDA/NPDA.cpp
@@ -242,8 +242,8 @@ void NPDA::composeTransitions(std::deque<sax::Token>& out) const {
 
 namespace alib {
 
-xmlApi<automaton::Automaton>::ParserRegister<automaton::NPDA> NPDAParserRegister = xmlApi<automaton::Automaton>::ParserRegister<automaton::NPDA>(automaton::NPDA::XML_TAG_NAME, automaton::NPDA::parse);
-xmlApi<alib::Object>::ParserRegister<automaton::NPDA> NPDAParserRegister2 = xmlApi<alib::Object>::ParserRegister<automaton::NPDA>(automaton::NPDA::XML_TAG_NAME, automaton::NPDA::parse);
+auto NPDAParserRegister = xmlApi<automaton::Automaton>::ParserRegister<automaton::NPDA>();
+auto NPDAParserRegister2 = xmlApi<alib::Object>::ParserRegister<automaton::NPDA>();
 
 auto NPDACastBinder = castApi::CastPoolStringBinder<automaton::NPDA>(automaton::NPDA::XML_TAG_NAME);
 
diff --git a/alib2data/src/automaton/PDA/RealTimeHeightDeterministicDPDA.cpp b/alib2data/src/automaton/PDA/RealTimeHeightDeterministicDPDA.cpp
index 153d788fbb..2503f27961 100644
--- a/alib2data/src/automaton/PDA/RealTimeHeightDeterministicDPDA.cpp
+++ b/alib2data/src/automaton/PDA/RealTimeHeightDeterministicDPDA.cpp
@@ -507,8 +507,8 @@ void RealTimeHeightDeterministicDPDA::composeTransitions(std::deque<sax::Token>&
 
 namespace alib {
 
-xmlApi<automaton::Automaton>::ParserRegister<automaton::RealTimeHeightDeterministicDPDA> realTimeHeightDeterministicDPDAParserRegister = xmlApi<automaton::Automaton>::ParserRegister<automaton::RealTimeHeightDeterministicDPDA>(automaton::RealTimeHeightDeterministicDPDA::XML_TAG_NAME, automaton::RealTimeHeightDeterministicDPDA::parse);
-xmlApi<alib::Object>::ParserRegister<automaton::RealTimeHeightDeterministicDPDA> realTimeHeightDeterministicDPDAParserRegister2 = xmlApi<alib::Object>::ParserRegister<automaton::RealTimeHeightDeterministicDPDA>(automaton::RealTimeHeightDeterministicDPDA::XML_TAG_NAME, automaton::RealTimeHeightDeterministicDPDA::parse);
+auto realTimeHeightDeterministicDPDAParserRegister = xmlApi<automaton::Automaton>::ParserRegister<automaton::RealTimeHeightDeterministicDPDA>();
+auto realTimeHeightDeterministicDPDAParserRegister2 = xmlApi<alib::Object>::ParserRegister<automaton::RealTimeHeightDeterministicDPDA>();
 
 auto RealTimeHeightDeterministicDPDACastBinder = castApi::CastPoolStringBinder<automaton::RealTimeHeightDeterministicDPDA>(automaton::RealTimeHeightDeterministicDPDA::XML_TAG_NAME);
 
diff --git a/alib2data/src/automaton/PDA/RealTimeHeightDeterministicNPDA.cpp b/alib2data/src/automaton/PDA/RealTimeHeightDeterministicNPDA.cpp
index 78c23a51c2..26408d1b69 100644
--- a/alib2data/src/automaton/PDA/RealTimeHeightDeterministicNPDA.cpp
+++ b/alib2data/src/automaton/PDA/RealTimeHeightDeterministicNPDA.cpp
@@ -405,8 +405,8 @@ void RealTimeHeightDeterministicNPDA::composeTransitions(std::deque<sax::Token>&
 
 namespace alib {
 
-xmlApi<automaton::Automaton>::ParserRegister<automaton::RealTimeHeightDeterministicNPDA> realTimeHeightDeterministicNPDAParserRegister = xmlApi<automaton::Automaton>::ParserRegister<automaton::RealTimeHeightDeterministicNPDA>(automaton::RealTimeHeightDeterministicNPDA::XML_TAG_NAME, automaton::RealTimeHeightDeterministicNPDA::parse);
-xmlApi<alib::Object>::ParserRegister<automaton::RealTimeHeightDeterministicNPDA> realTimeHeightDeterministicNPDAParserRegister2 = xmlApi<alib::Object>::ParserRegister<automaton::RealTimeHeightDeterministicNPDA>(automaton::RealTimeHeightDeterministicNPDA::XML_TAG_NAME, automaton::RealTimeHeightDeterministicNPDA::parse);
+auto realTimeHeightDeterministicNPDAParserRegister = xmlApi<automaton::Automaton>::ParserRegister<automaton::RealTimeHeightDeterministicNPDA>();
+auto realTimeHeightDeterministicNPDAParserRegister2 = xmlApi<alib::Object>::ParserRegister<automaton::RealTimeHeightDeterministicNPDA>();
 
 auto RealTimeHeightDeterministicNPDACastBinder = castApi::CastPoolStringBinder<automaton::RealTimeHeightDeterministicNPDA>(automaton::RealTimeHeightDeterministicNPDA::XML_TAG_NAME);
 
diff --git a/alib2data/src/automaton/PDA/SinglePopDPDA.cpp b/alib2data/src/automaton/PDA/SinglePopDPDA.cpp
index 96a19793b1..16aab1713e 100644
--- a/alib2data/src/automaton/PDA/SinglePopDPDA.cpp
+++ b/alib2data/src/automaton/PDA/SinglePopDPDA.cpp
@@ -270,7 +270,7 @@ void SinglePopDPDA::composeTransitions(std::deque<sax::Token>& out) const {
 
 namespace alib {
 
-xmlApi<automaton::Automaton>::ParserRegister<automaton::SinglePopDPDA> singlePopDPDAParserRegister = xmlApi<automaton::Automaton>::ParserRegister<automaton::SinglePopDPDA>(automaton::SinglePopDPDA::XML_TAG_NAME, automaton::SinglePopDPDA::parse);
-xmlApi<alib::Object>::ParserRegister<automaton::SinglePopDPDA> singlePopDPDAParserRegister2 = xmlApi<alib::Object>::ParserRegister<automaton::SinglePopDPDA>(automaton::SinglePopDPDA::XML_TAG_NAME, automaton::SinglePopDPDA::parse);
+auto singlePopDPDAParserRegister = xmlApi<automaton::Automaton>::ParserRegister<automaton::SinglePopDPDA>();
+auto singlePopDPDAParserRegister2 = xmlApi<alib::Object>::ParserRegister<automaton::SinglePopDPDA>();
 
 } /* namespace alib */
diff --git a/alib2data/src/automaton/PDA/SinglePopNPDA.cpp b/alib2data/src/automaton/PDA/SinglePopNPDA.cpp
index 1dc14b6f80..2d289bdbd5 100644
--- a/alib2data/src/automaton/PDA/SinglePopNPDA.cpp
+++ b/alib2data/src/automaton/PDA/SinglePopNPDA.cpp
@@ -238,7 +238,7 @@ void SinglePopNPDA::composeTransitions(std::deque<sax::Token>& out) const {
 
 namespace alib {
 
-xmlApi<automaton::Automaton>::ParserRegister<automaton::SinglePopNPDA> singlePopNPDAParserRegister = xmlApi<automaton::Automaton>::ParserRegister<automaton::SinglePopNPDA>(automaton::SinglePopNPDA::XML_TAG_NAME, automaton::SinglePopNPDA::parse);
-xmlApi<alib::Object>::ParserRegister<automaton::SinglePopNPDA> singlePopNPDAParserRegister2 = xmlApi<alib::Object>::ParserRegister<automaton::SinglePopNPDA>(automaton::SinglePopNPDA::XML_TAG_NAME, automaton::SinglePopNPDA::parse);
+auto singlePopNPDAParserRegister = xmlApi<automaton::Automaton>::ParserRegister<automaton::SinglePopNPDA>();
+auto singlePopNPDAParserRegister2 = xmlApi<alib::Object>::ParserRegister<automaton::SinglePopNPDA>();
 
 } /* namespace alib */
diff --git a/alib2data/src/automaton/PDA/VisiblyPushdownDPDA.cpp b/alib2data/src/automaton/PDA/VisiblyPushdownDPDA.cpp
index 7d2e48cd20..1fcc5959f4 100644
--- a/alib2data/src/automaton/PDA/VisiblyPushdownDPDA.cpp
+++ b/alib2data/src/automaton/PDA/VisiblyPushdownDPDA.cpp
@@ -412,7 +412,7 @@ void VisiblyPushdownDPDA::composeTransitions(std::deque<sax::Token>& out) const
 
 namespace alib {
 
-xmlApi<automaton::Automaton>::ParserRegister<automaton::VisiblyPushdownDPDA> visiblyPushdownDPDAParserRegister = xmlApi<automaton::Automaton>::ParserRegister<automaton::VisiblyPushdownDPDA>(automaton::VisiblyPushdownDPDA::XML_TAG_NAME, automaton::VisiblyPushdownDPDA::parse);
-xmlApi<alib::Object>::ParserRegister<automaton::VisiblyPushdownDPDA> visiblyPushdownDPDAParserRegister2 = xmlApi<alib::Object>::ParserRegister<automaton::VisiblyPushdownDPDA>(automaton::VisiblyPushdownDPDA::XML_TAG_NAME, automaton::VisiblyPushdownDPDA::parse);
+auto visiblyPushdownDPDAParserRegister = xmlApi<automaton::Automaton>::ParserRegister<automaton::VisiblyPushdownDPDA>();
+auto visiblyPushdownDPDAParserRegister2 = xmlApi<alib::Object>::ParserRegister<automaton::VisiblyPushdownDPDA>();
 
 } /* namespace alib */
diff --git a/alib2data/src/automaton/PDA/VisiblyPushdownNPDA.cpp b/alib2data/src/automaton/PDA/VisiblyPushdownNPDA.cpp
index 3d420771c1..88a149a5fc 100644
--- a/alib2data/src/automaton/PDA/VisiblyPushdownNPDA.cpp
+++ b/alib2data/src/automaton/PDA/VisiblyPushdownNPDA.cpp
@@ -352,7 +352,7 @@ void VisiblyPushdownNPDA::composeTransitions(std::deque<sax::Token>& out) const
 
 namespace alib {
 
-xmlApi<automaton::Automaton>::ParserRegister<automaton::VisiblyPushdownNPDA> visiblyPushdownNPDAParserRegister = xmlApi<automaton::Automaton>::ParserRegister<automaton::VisiblyPushdownNPDA>(automaton::VisiblyPushdownNPDA::XML_TAG_NAME, automaton::VisiblyPushdownNPDA::parse);
-xmlApi<alib::Object>::ParserRegister<automaton::VisiblyPushdownNPDA> visiblyPushdownNPDAParserRegister2 = xmlApi<alib::Object>::ParserRegister<automaton::VisiblyPushdownNPDA>(automaton::VisiblyPushdownNPDA::XML_TAG_NAME, automaton::VisiblyPushdownNPDA::parse);
+auto visiblyPushdownNPDAParserRegister = xmlApi<automaton::Automaton>::ParserRegister<automaton::VisiblyPushdownNPDA>();
+auto visiblyPushdownNPDAParserRegister2 = xmlApi<alib::Object>::ParserRegister<automaton::VisiblyPushdownNPDA>();
 
 } /* namespace alib */
diff --git a/alib2data/src/automaton/TA/DFTA.cpp b/alib2data/src/automaton/TA/DFTA.cpp
index 7a25eea285..064f80036f 100644
--- a/alib2data/src/automaton/TA/DFTA.cpp
+++ b/alib2data/src/automaton/TA/DFTA.cpp
@@ -174,7 +174,7 @@ void DFTA::composeTransitions(std::deque<sax::Token>& out) const {
 
 namespace alib {
 
-xmlApi<automaton::Automaton>::ParserRegister<automaton::DFTA> DFTAParserRegister = xmlApi<automaton::Automaton>::ParserRegister<automaton::DFTA>(automaton::DFTA::XML_TAG_NAME, automaton::DFTA::parse);
-xmlApi<alib::Object>::ParserRegister<automaton::DFTA> DFTAParserRegister2 = xmlApi<alib::Object>::ParserRegister<automaton::DFTA>(automaton::DFTA::XML_TAG_NAME, automaton::DFTA::parse);
+auto DFTAParserRegister = xmlApi<automaton::Automaton>::ParserRegister<automaton::DFTA>();
+auto DFTAParserRegister2 = xmlApi<alib::Object>::ParserRegister<automaton::DFTA>();
 
 } /* namespace alib */
diff --git a/alib2data/src/automaton/TA/NFTA.cpp b/alib2data/src/automaton/TA/NFTA.cpp
index 52b5c40240..d53a607efe 100644
--- a/alib2data/src/automaton/TA/NFTA.cpp
+++ b/alib2data/src/automaton/TA/NFTA.cpp
@@ -194,7 +194,7 @@ void NFTA::composeTransitions(std::deque<sax::Token>& out) const {
 
 namespace alib {
 
-xmlApi<automaton::Automaton>::ParserRegister<automaton::NFTA> NFTAParserRegister = xmlApi<automaton::Automaton>::ParserRegister<automaton::NFTA>(automaton::NFTA::XML_TAG_NAME, automaton::NFTA::parse);
-xmlApi<alib::Object>::ParserRegister<automaton::NFTA> NFTAParserRegister2 = xmlApi<alib::Object>::ParserRegister<automaton::NFTA>(automaton::NFTA::XML_TAG_NAME, automaton::NFTA::parse);
+auto NFTAParserRegister = xmlApi<automaton::Automaton>::ParserRegister<automaton::NFTA>();
+auto NFTAParserRegister2 = xmlApi<alib::Object>::ParserRegister<automaton::NFTA>();
 
 } /* namespace alib */
diff --git a/alib2data/src/automaton/TM/OneTapeDTM.cpp b/alib2data/src/automaton/TM/OneTapeDTM.cpp
index eb67bea810..e22ac1e320 100644
--- a/alib2data/src/automaton/TM/OneTapeDTM.cpp
+++ b/alib2data/src/automaton/TM/OneTapeDTM.cpp
@@ -218,7 +218,7 @@ void OneTapeDTM::composeTransitions(std::deque<sax::Token>& out) const {
 
 namespace alib {
 
-xmlApi<automaton::Automaton>::ParserRegister<automaton::OneTapeDTM> oneTapeDTMParserRegister = xmlApi<automaton::Automaton>::ParserRegister<automaton::OneTapeDTM>(automaton::OneTapeDTM::XML_TAG_NAME, automaton::OneTapeDTM::parse);
-xmlApi<alib::Object>::ParserRegister<automaton::OneTapeDTM> oneTapeDTMParserRegister2 = xmlApi<alib::Object>::ParserRegister<automaton::OneTapeDTM>(automaton::OneTapeDTM::XML_TAG_NAME, automaton::OneTapeDTM::parse);
+auto oneTapeDTMParserRegister = xmlApi<automaton::Automaton>::ParserRegister<automaton::OneTapeDTM>();
+auto oneTapeDTMParserRegister2 = xmlApi<alib::Object>::ParserRegister<automaton::OneTapeDTM>();
 
 } /* namespace alib */
diff --git a/alib2data/src/container/ObjectsDeque.cpp b/alib2data/src/container/ObjectsDeque.cpp
index 3e58d8cf87..e8cd516e22 100644
--- a/alib2data/src/container/ObjectsDeque.cpp
+++ b/alib2data/src/container/ObjectsDeque.cpp
@@ -57,7 +57,7 @@ void ObjectsDeque::compose ( std::deque < sax::Token > & out ) const {
 
 namespace alib {
 
-xmlApi < container::Container >::ParserRegister < container::ObjectsDeque > objectsDequeParserRegister = xmlApi < container::Container >::ParserRegister < container::ObjectsDeque > ( container::ObjectsDeque::XML_TAG_NAME, container::ObjectsDeque::parse );
-xmlApi < alib::Object >::ParserRegister < container::ObjectsDeque > objectsDequeParserRegister2 = xmlApi < alib::Object >::ParserRegister < container::ObjectsDeque > ( container::ObjectsDeque::XML_TAG_NAME, container::ObjectsDeque::parse );
+auto objectsDequeParserRegister = xmlApi < container::Container >::ParserRegister < container::ObjectsDeque > ();
+auto objectsDequeParserRegister2 = xmlApi < alib::Object >::ParserRegister < container::ObjectsDeque > ();
 
 } /* namespace alib */
diff --git a/alib2data/src/container/ObjectsList.cpp b/alib2data/src/container/ObjectsList.cpp
index df7b58509a..c55c5936a4 100644
--- a/alib2data/src/container/ObjectsList.cpp
+++ b/alib2data/src/container/ObjectsList.cpp
@@ -57,7 +57,7 @@ void ObjectsList::compose ( std::deque < sax::Token > & out ) const {
 
 namespace alib {
 
-xmlApi < container::Container >::ParserRegister < container::ObjectsList > objectsListParserRegister = xmlApi < container::Container >::ParserRegister < container::ObjectsList > ( container::ObjectsList::XML_TAG_NAME, container::ObjectsList::parse );
-xmlApi < alib::Object >::ParserRegister < container::ObjectsList > objectsListParserRegister2 = xmlApi < alib::Object >::ParserRegister < container::ObjectsList > ( container::ObjectsList::XML_TAG_NAME, container::ObjectsList::parse );
+auto objectsListParserRegister = xmlApi < container::Container >::ParserRegister < container::ObjectsList > ();
+auto objectsListParserRegister2 = xmlApi < alib::Object >::ParserRegister < container::ObjectsList > ();
 
 } /* namespace alib */
diff --git a/alib2data/src/container/ObjectsMap.cpp b/alib2data/src/container/ObjectsMap.cpp
index bef8847e19..35bb179915 100644
--- a/alib2data/src/container/ObjectsMap.cpp
+++ b/alib2data/src/container/ObjectsMap.cpp
@@ -60,7 +60,7 @@ void ObjectsMap::compose(std::deque<sax::Token>& out) const {
 
 namespace alib {
 
-xmlApi<container::Container>::ParserRegister<container::ObjectsMap> objectsMapParserRegister = xmlApi<container::Container>::ParserRegister<container::ObjectsMap>(container::ObjectsMap::XML_TAG_NAME, container::ObjectsMap::parse);
-xmlApi<alib::Object>::ParserRegister<container::ObjectsMap> objectsMapParserRegister2 = xmlApi<alib::Object>::ParserRegister<container::ObjectsMap>(container::ObjectsMap::XML_TAG_NAME, container::ObjectsMap::parse);
+auto objectsMapParserRegister = xmlApi<container::Container>::ParserRegister<container::ObjectsMap>();
+auto objectsMapParserRegister2 = xmlApi<alib::Object>::ParserRegister<container::ObjectsMap>();
 
 } /* namespace alib */
diff --git a/alib2data/src/container/ObjectsPair.cpp b/alib2data/src/container/ObjectsPair.cpp
index 8999730193..96bd7ef762 100644
--- a/alib2data/src/container/ObjectsPair.cpp
+++ b/alib2data/src/container/ObjectsPair.cpp
@@ -60,7 +60,7 @@ void ObjectsPair::compose(std::deque<sax::Token>& out) const {
 
 namespace alib {
 
-xmlApi<container::Container>::ParserRegister<container::ObjectsPair> objectsPairParserRegister = xmlApi<container::Container>::ParserRegister<container::ObjectsPair>(container::ObjectsPair::XML_TAG_NAME, container::ObjectsPair::parse);
-xmlApi<alib::Object>::ParserRegister<container::ObjectsPair> objectsPairParserRegister2 = xmlApi<alib::Object>::ParserRegister<container::ObjectsPair>(container::ObjectsPair::XML_TAG_NAME, container::ObjectsPair::parse);
+auto objectsPairParserRegister = xmlApi<container::Container>::ParserRegister<container::ObjectsPair>();
+auto objectsPairParserRegister2 = xmlApi<alib::Object>::ParserRegister<container::ObjectsPair>();
 
 } /* namespace alib */
diff --git a/alib2data/src/container/ObjectsSet.cpp b/alib2data/src/container/ObjectsSet.cpp
index 2cda27a1af..d2efe1a2e8 100644
--- a/alib2data/src/container/ObjectsSet.cpp
+++ b/alib2data/src/container/ObjectsSet.cpp
@@ -58,7 +58,7 @@ void ObjectsSet::compose(std::deque<sax::Token>& out) const {
 
 namespace alib {
 
-xmlApi<container::Container>::ParserRegister<container::ObjectsSet> objectsSetParserRegister = xmlApi<container::Container>::ParserRegister<container::ObjectsSet>(container::ObjectsSet::XML_TAG_NAME, container::ObjectsSet::parse);
-xmlApi<alib::Object>::ParserRegister<container::ObjectsSet> objectsSetParserRegister2 = xmlApi<alib::Object>::ParserRegister<container::ObjectsSet>(container::ObjectsSet::XML_TAG_NAME, container::ObjectsSet::parse);
+auto objectsSetParserRegister = xmlApi<container::Container>::ParserRegister<container::ObjectsSet>();
+auto objectsSetParserRegister2 = xmlApi<alib::Object>::ParserRegister<container::ObjectsSet>();
 
 } /* namespace alib */
diff --git a/alib2data/src/container/ObjectsVector.cpp b/alib2data/src/container/ObjectsVector.cpp
index 700508240d..6605b1449d 100644
--- a/alib2data/src/container/ObjectsVector.cpp
+++ b/alib2data/src/container/ObjectsVector.cpp
@@ -57,7 +57,7 @@ void ObjectsVector::compose ( std::deque < sax::Token > & out ) const {
 
 namespace alib {
 
-xmlApi < container::Container >::ParserRegister < container::ObjectsVector > objectsVectorParserRegister = xmlApi < container::Container >::ParserRegister < container::ObjectsVector > ( container::ObjectsVector::XML_TAG_NAME, container::ObjectsVector::parse );
-xmlApi < alib::Object >::ParserRegister < container::ObjectsVector > objectsVectorParserRegister2 = xmlApi < alib::Object >::ParserRegister < container::ObjectsVector > ( container::ObjectsVector::XML_TAG_NAME, container::ObjectsVector::parse );
+auto objectsVectorParserRegister = xmlApi < container::Container >::ParserRegister < container::ObjectsVector > ();
+auto objectsVectorParserRegister2 = xmlApi < alib::Object >::ParserRegister < container::ObjectsVector > ();
 
 } /* namespace alib */
diff --git a/alib2data/src/exception/AlibException.cpp b/alib2data/src/exception/AlibException.cpp
index 262c8454d5..4ff4afc4eb 100644
--- a/alib2data/src/exception/AlibException.cpp
+++ b/alib2data/src/exception/AlibException.cpp
@@ -120,6 +120,6 @@ void AlibException::compose(std::deque<sax::Token>& out) const {
 
 namespace alib {
 
-xmlApi<alib::Object>::ParserRegister<exception::AlibException> alibExceptionParserRegister2 = xmlApi<alib::Object>::ParserRegister<exception::AlibException>(exception::AlibException::XML_TAG_NAME, exception::AlibException::parse);
+auto alibExceptionParserRegister2 = xmlApi<alib::Object>::ParserRegister<exception::AlibException>();
 
 } /* namespace alib */
diff --git a/alib2data/src/grammar/ContextFree/CFG.cpp b/alib2data/src/grammar/ContextFree/CFG.cpp
index b28525c0c1..3e14be13e0 100644
--- a/alib2data/src/grammar/ContextFree/CFG.cpp
+++ b/alib2data/src/grammar/ContextFree/CFG.cpp
@@ -186,8 +186,8 @@ void CFG::composeRules(std::deque<sax::Token>& out) const {
 
 namespace alib {
 
-xmlApi<grammar::Grammar>::ParserRegister<grammar::CFG> CFGParserRegister = xmlApi<grammar::Grammar>::ParserRegister<grammar::CFG>(grammar::CFG::XML_TAG_NAME, grammar::CFG::parse);
-xmlApi<alib::Object>::ParserRegister<grammar::CFG> CFGParserRegister2 = xmlApi<alib::Object>::ParserRegister<grammar::CFG>(grammar::CFG::XML_TAG_NAME, grammar::CFG::parse);
+auto CFGParserRegister = xmlApi<grammar::Grammar>::ParserRegister<grammar::CFG>();
+auto CFGParserRegister2 = xmlApi<alib::Object>::ParserRegister<grammar::CFG>();
 
 auto CFGEpsilonFreeCFG = castApi::CastRegister<grammar::CFG, grammar::EpsilonFreeCFG>();
 auto CFGCastBinder = castApi::CastPoolStringBinder<grammar::CFG>(grammar::CFG::XML_TAG_NAME);
diff --git a/alib2data/src/grammar/ContextFree/CNF.cpp b/alib2data/src/grammar/ContextFree/CNF.cpp
index 4b2d2aa46e..75da5e741e 100644
--- a/alib2data/src/grammar/ContextFree/CNF.cpp
+++ b/alib2data/src/grammar/ContextFree/CNF.cpp
@@ -263,7 +263,7 @@ void CNF::composeRules(std::deque<sax::Token>& out) const {
 
 namespace alib {
 
-xmlApi<grammar::Grammar>::ParserRegister<grammar::CNF> CNFParserRegister = xmlApi<grammar::Grammar>::ParserRegister<grammar::CNF>(grammar::CNF::XML_TAG_NAME, grammar::CNF::parse);
-xmlApi<alib::Object>::ParserRegister<grammar::CNF> CNFParserRegister2 = xmlApi<alib::Object>::ParserRegister<grammar::CNF>(grammar::CNF::XML_TAG_NAME, grammar::CNF::parse);
+auto CNFParserRegister = xmlApi<grammar::Grammar>::ParserRegister<grammar::CNF>();
+auto CNFParserRegister2 = xmlApi<alib::Object>::ParserRegister<grammar::CNF>();
 
 } /* namespace alib */
diff --git a/alib2data/src/grammar/ContextFree/EpsilonFreeCFG.cpp b/alib2data/src/grammar/ContextFree/EpsilonFreeCFG.cpp
index f08c0b74a3..6b2c7c5770 100644
--- a/alib2data/src/grammar/ContextFree/EpsilonFreeCFG.cpp
+++ b/alib2data/src/grammar/ContextFree/EpsilonFreeCFG.cpp
@@ -214,7 +214,7 @@ void EpsilonFreeCFG::composeRules(std::deque<sax::Token>& out) const {
 
 namespace alib {
 
-xmlApi<grammar::Grammar>::ParserRegister<grammar::EpsilonFreeCFG> EpsilonFreeCFGParserRegister = xmlApi<grammar::Grammar>::ParserRegister<grammar::EpsilonFreeCFG>(grammar::EpsilonFreeCFG::XML_TAG_NAME, grammar::EpsilonFreeCFG::parse);
-xmlApi<alib::Object>::ParserRegister<grammar::EpsilonFreeCFG> EpsilonFreeCFGParserRegister2 = xmlApi<alib::Object>::ParserRegister<grammar::EpsilonFreeCFG>(grammar::EpsilonFreeCFG::XML_TAG_NAME, grammar::EpsilonFreeCFG::parse);
+auto EpsilonFreeCFGParserRegister = xmlApi<grammar::Grammar>::ParserRegister<grammar::EpsilonFreeCFG>();
+auto EpsilonFreeCFGParserRegister2 = xmlApi<alib::Object>::ParserRegister<grammar::EpsilonFreeCFG>();
 
 } /* namespace alib */
diff --git a/alib2data/src/grammar/ContextFree/GNF.cpp b/alib2data/src/grammar/ContextFree/GNF.cpp
index adb9bfff4b..98305f39f9 100644
--- a/alib2data/src/grammar/ContextFree/GNF.cpp
+++ b/alib2data/src/grammar/ContextFree/GNF.cpp
@@ -221,7 +221,7 @@ void GNF::composeRules(std::deque<sax::Token>& out) const {
 
 namespace alib {
 
-xmlApi<grammar::Grammar>::ParserRegister<grammar::GNF> GNFParserRegister = xmlApi<grammar::Grammar>::ParserRegister<grammar::GNF>(grammar::GNF::XML_TAG_NAME, grammar::GNF::parse);
-xmlApi<alib::Object>::ParserRegister<grammar::GNF> GNFParserRegister2 = xmlApi<alib::Object>::ParserRegister<grammar::GNF>(grammar::GNF::XML_TAG_NAME, grammar::GNF::parse);
+auto GNFParserRegister = xmlApi<grammar::Grammar>::ParserRegister<grammar::GNF>();
+auto GNFParserRegister2 = xmlApi<alib::Object>::ParserRegister<grammar::GNF>();
 
 } /* namespace alib */
diff --git a/alib2data/src/grammar/ContextFree/LG.cpp b/alib2data/src/grammar/ContextFree/LG.cpp
index 967bbab4ca..36ef1bbdd6 100644
--- a/alib2data/src/grammar/ContextFree/LG.cpp
+++ b/alib2data/src/grammar/ContextFree/LG.cpp
@@ -267,7 +267,7 @@ void LG::composeRules(std::deque<sax::Token>& out) const {
 
 namespace alib {
 
-xmlApi<grammar::Grammar>::ParserRegister<grammar::LG> LGParserRegister = xmlApi<grammar::Grammar>::ParserRegister<grammar::LG>(grammar::LG::XML_TAG_NAME, grammar::LG::parse);
-xmlApi<alib::Object>::ParserRegister<grammar::LG> LGParserRegister2 = xmlApi<alib::Object>::ParserRegister<grammar::LG>(grammar::LG::XML_TAG_NAME, grammar::LG::parse);
+auto LGParserRegister = xmlApi<grammar::Grammar>::ParserRegister<grammar::LG>();
+auto LGParserRegister2 = xmlApi<alib::Object>::ParserRegister<grammar::LG>();
 
 } /* namespace alib */
diff --git a/alib2data/src/grammar/ContextSensitive/CSG.cpp b/alib2data/src/grammar/ContextSensitive/CSG.cpp
index 0f87e639bd..222aac1d2d 100644
--- a/alib2data/src/grammar/ContextSensitive/CSG.cpp
+++ b/alib2data/src/grammar/ContextSensitive/CSG.cpp
@@ -214,7 +214,7 @@ void CSG::composeRules(std::deque<sax::Token>& out) const {
 
 namespace alib {
 
-xmlApi<grammar::Grammar>::ParserRegister<grammar::CSG> CSGParserRegister = xmlApi<grammar::Grammar>::ParserRegister<grammar::CSG>(grammar::CSG::XML_TAG_NAME, grammar::CSG::parse);
-xmlApi<alib::Object>::ParserRegister<grammar::CSG> CSGParserRegister2 = xmlApi<alib::Object>::ParserRegister<grammar::CSG>(grammar::CSG::XML_TAG_NAME, grammar::CSG::parse);
+auto CSGParserRegister = xmlApi<grammar::Grammar>::ParserRegister<grammar::CSG>();
+auto CSGParserRegister2 = xmlApi<alib::Object>::ParserRegister<grammar::CSG>();
 
 } /* namespace alib */
diff --git a/alib2data/src/grammar/ContextSensitive/NonContractingGrammar.cpp b/alib2data/src/grammar/ContextSensitive/NonContractingGrammar.cpp
index c1d8816f6b..36e6ce0f5a 100644
--- a/alib2data/src/grammar/ContextSensitive/NonContractingGrammar.cpp
+++ b/alib2data/src/grammar/ContextSensitive/NonContractingGrammar.cpp
@@ -191,7 +191,7 @@ void NonContractingGrammar::composeRules(std::deque<sax::Token>& out) const {
 
 namespace alib {
 
-xmlApi<grammar::Grammar>::ParserRegister<grammar::NonContractingGrammar> nonContractingGrammarParserRegister = xmlApi<grammar::Grammar>::ParserRegister<grammar::NonContractingGrammar>(grammar::NonContractingGrammar::XML_TAG_NAME, grammar::NonContractingGrammar::parse);
-xmlApi<alib::Object>::ParserRegister<grammar::NonContractingGrammar> nonContractingGrammarParserRegister2 = xmlApi<alib::Object>::ParserRegister<grammar::NonContractingGrammar>(grammar::NonContractingGrammar::XML_TAG_NAME, grammar::NonContractingGrammar::parse);
+auto nonContractingGrammarParserRegister = xmlApi<grammar::Grammar>::ParserRegister<grammar::NonContractingGrammar>();
+auto nonContractingGrammarParserRegister2 = xmlApi<alib::Object>::ParserRegister<grammar::NonContractingGrammar>();
 
 } /* namespace alib */
diff --git a/alib2data/src/grammar/Regular/LeftLG.cpp b/alib2data/src/grammar/Regular/LeftLG.cpp
index 69638d3005..f985734f19 100644
--- a/alib2data/src/grammar/Regular/LeftLG.cpp
+++ b/alib2data/src/grammar/Regular/LeftLG.cpp
@@ -251,7 +251,7 @@ void LeftLG::composeRules(std::deque<sax::Token>& out) const {
 
 namespace alib {
 
-xmlApi<grammar::Grammar>::ParserRegister<grammar::LeftLG> LeftLGParserRegister = xmlApi<grammar::Grammar>::ParserRegister<grammar::LeftLG>(grammar::LeftLG::XML_TAG_NAME, grammar::LeftLG::parse);
-xmlApi<alib::Object>::ParserRegister<grammar::LeftLG> LeftLGParserRegister2 = xmlApi<alib::Object>::ParserRegister<grammar::LeftLG>(grammar::LeftLG::XML_TAG_NAME, grammar::LeftLG::parse);
+auto LeftLGParserRegister = xmlApi<grammar::Grammar>::ParserRegister<grammar::LeftLG>();
+auto LeftLGParserRegister2 = xmlApi<alib::Object>::ParserRegister<grammar::LeftLG>();
 
 } /* namespace alib */
diff --git a/alib2data/src/grammar/Regular/LeftRG.cpp b/alib2data/src/grammar/Regular/LeftRG.cpp
index 5a226caf0f..66569827fc 100644
--- a/alib2data/src/grammar/Regular/LeftRG.cpp
+++ b/alib2data/src/grammar/Regular/LeftRG.cpp
@@ -260,7 +260,7 @@ void LeftRG::composeRules(std::deque<sax::Token>& out) const {
 
 namespace alib {
 
-xmlApi<grammar::Grammar>::ParserRegister<grammar::LeftRG> LeftRGParserRegister = xmlApi<grammar::Grammar>::ParserRegister<grammar::LeftRG>(grammar::LeftRG::XML_TAG_NAME, grammar::LeftRG::parse);
-xmlApi<alib::Object>::ParserRegister<grammar::LeftRG> LeftRGParserRegister2 = xmlApi<alib::Object>::ParserRegister<grammar::LeftRG>(grammar::LeftRG::XML_TAG_NAME, grammar::LeftRG::parse);
+auto LeftRGParserRegister = xmlApi<grammar::Grammar>::ParserRegister<grammar::LeftRG>();
+auto LeftRGParserRegister2 = xmlApi<alib::Object>::ParserRegister<grammar::LeftRG>();
 
 } /* namespace alib */
diff --git a/alib2data/src/grammar/Regular/RightLG.cpp b/alib2data/src/grammar/Regular/RightLG.cpp
index 0c4a3b5a50..9b87b17dbc 100644
--- a/alib2data/src/grammar/Regular/RightLG.cpp
+++ b/alib2data/src/grammar/Regular/RightLG.cpp
@@ -251,7 +251,7 @@ void RightLG::composeRules(std::deque<sax::Token>& out) const {
 
 namespace alib {
 
-xmlApi<grammar::Grammar>::ParserRegister<grammar::RightLG> RightLGParserRegister = xmlApi<grammar::Grammar>::ParserRegister<grammar::RightLG>(grammar::RightLG::XML_TAG_NAME, grammar::RightLG::parse);
-xmlApi<alib::Object>::ParserRegister<grammar::RightLG> RightLGParserRegister2 = xmlApi<alib::Object>::ParserRegister<grammar::RightLG>(grammar::RightLG::XML_TAG_NAME, grammar::RightLG::parse);
+auto RightLGParserRegister = xmlApi<grammar::Grammar>::ParserRegister<grammar::RightLG>();
+auto RightLGParserRegister2 = xmlApi<alib::Object>::ParserRegister<grammar::RightLG>();
 
 } /* namespace alib */
diff --git a/alib2data/src/grammar/Regular/RightRG.cpp b/alib2data/src/grammar/Regular/RightRG.cpp
index d2d32d11db..9987cbaa62 100644
--- a/alib2data/src/grammar/Regular/RightRG.cpp
+++ b/alib2data/src/grammar/Regular/RightRG.cpp
@@ -260,7 +260,7 @@ void RightRG::composeRules(std::deque<sax::Token>& out) const {
 
 namespace alib {
 
-xmlApi<grammar::Grammar>::ParserRegister<grammar::RightRG> RightRGParserRegister = xmlApi<grammar::Grammar>::ParserRegister<grammar::RightRG>(grammar::RightRG::XML_TAG_NAME, grammar::RightRG::parse);
-xmlApi<alib::Object>::ParserRegister<grammar::RightRG> RightRGParserRegister2 = xmlApi<alib::Object>::ParserRegister<grammar::RightRG>(grammar::RightRG::XML_TAG_NAME, grammar::RightRG::parse);
+auto RightRGParserRegister = xmlApi<grammar::Grammar>::ParserRegister<grammar::RightRG>();
+auto RightRGParserRegister2 = xmlApi<alib::Object>::ParserRegister<grammar::RightRG>();
 
 } /* namespace alib */
diff --git a/alib2data/src/grammar/Unrestricted/ContextPreservingUnrestrictedGrammar.cpp b/alib2data/src/grammar/Unrestricted/ContextPreservingUnrestrictedGrammar.cpp
index f250012583..1b181e04f2 100644
--- a/alib2data/src/grammar/Unrestricted/ContextPreservingUnrestrictedGrammar.cpp
+++ b/alib2data/src/grammar/Unrestricted/ContextPreservingUnrestrictedGrammar.cpp
@@ -195,7 +195,7 @@ void ContextPreservingUnrestrictedGrammar::composeRules(std::deque<sax::Token>&
 
 namespace alib {
 
-xmlApi<grammar::Grammar>::ParserRegister<grammar::ContextPreservingUnrestrictedGrammar> ContextPreservingUnrestrictedGrammarParserRegister = xmlApi<grammar::Grammar>::ParserRegister<grammar::ContextPreservingUnrestrictedGrammar>(grammar::ContextPreservingUnrestrictedGrammar::XML_TAG_NAME, grammar::ContextPreservingUnrestrictedGrammar::parse);
-xmlApi<alib::Object>::ParserRegister<grammar::ContextPreservingUnrestrictedGrammar> ContextPreservingUnrestrictedGrammarParserRegister2 = xmlApi<alib::Object>::ParserRegister<grammar::ContextPreservingUnrestrictedGrammar>(grammar::ContextPreservingUnrestrictedGrammar::XML_TAG_NAME, grammar::ContextPreservingUnrestrictedGrammar::parse);
+auto ContextPreservingUnrestrictedGrammarParserRegister = xmlApi<grammar::Grammar>::ParserRegister<grammar::ContextPreservingUnrestrictedGrammar>();
+auto ContextPreservingUnrestrictedGrammarParserRegister2 = xmlApi<alib::Object>::ParserRegister<grammar::ContextPreservingUnrestrictedGrammar>();
 
 } /* namespace alib */
diff --git a/alib2data/src/grammar/Unrestricted/UnrestrictedGrammar.cpp b/alib2data/src/grammar/Unrestricted/UnrestrictedGrammar.cpp
index 46f86d0744..d765dc2767 100644
--- a/alib2data/src/grammar/Unrestricted/UnrestrictedGrammar.cpp
+++ b/alib2data/src/grammar/Unrestricted/UnrestrictedGrammar.cpp
@@ -172,7 +172,7 @@ void UnrestrictedGrammar::composeRules(std::deque<sax::Token>& out) const {
 
 namespace alib {
 
-xmlApi<grammar::Grammar>::ParserRegister<grammar::UnrestrictedGrammar> UnrestrictedGrammarParserRegister = xmlApi<grammar::Grammar>::ParserRegister<grammar::UnrestrictedGrammar>(grammar::UnrestrictedGrammar::XML_TAG_NAME, grammar::UnrestrictedGrammar::parse);
-xmlApi<alib::Object>::ParserRegister<grammar::UnrestrictedGrammar> UnrestrictedGrammarParserRegister2 = xmlApi<alib::Object>::ParserRegister<grammar::UnrestrictedGrammar>(grammar::UnrestrictedGrammar::XML_TAG_NAME, grammar::UnrestrictedGrammar::parse);
+auto UnrestrictedGrammarParserRegister = xmlApi<grammar::Grammar>::ParserRegister<grammar::UnrestrictedGrammar>();
+auto UnrestrictedGrammarParserRegister2 = xmlApi<alib::Object>::ParserRegister<grammar::UnrestrictedGrammar>();
 
 } /* namespace alib */
diff --git a/alib2data/src/graph/directed/DirectedGraph.cpp b/alib2data/src/graph/directed/DirectedGraph.cpp
index b8e0ac3e54..12ae66f3ba 100644
--- a/alib2data/src/graph/directed/DirectedGraph.cpp
+++ b/alib2data/src/graph/directed/DirectedGraph.cpp
@@ -272,7 +272,7 @@ void DirectedGraph::compose(std::deque<sax::Token>& out) const {
 
 namespace alib {
 
-xmlApi<graph::Graph>::ParserRegister<graph::DirectedGraph> directedGraphParserRegister = xmlApi<graph::Graph>::ParserRegister<graph::DirectedGraph>(graph::DirectedGraph::XML_TAG_NAME, graph::DirectedGraph::parse);
-xmlApi<alib::Object>::ParserRegister<graph::DirectedGraph> directedGraphParserRegister2 = xmlApi<alib::Object>::ParserRegister<graph::DirectedGraph>(graph::DirectedGraph::XML_TAG_NAME, graph::DirectedGraph::parse);
+auto directedGraphParserRegister = xmlApi<graph::Graph>::ParserRegister<graph::DirectedGraph>();
+auto directedGraphParserRegister2 = xmlApi<alib::Object>::ParserRegister<graph::DirectedGraph>();
 
 } /* namespace alib */
diff --git a/alib2data/src/graph/undirected/UndirectedGraph.cpp b/alib2data/src/graph/undirected/UndirectedGraph.cpp
index 596ad5fca6..3a0ebc79bb 100644
--- a/alib2data/src/graph/undirected/UndirectedGraph.cpp
+++ b/alib2data/src/graph/undirected/UndirectedGraph.cpp
@@ -272,7 +272,7 @@ void UndirectedGraph::compose(std::deque<sax::Token>& out) const {
 
 namespace alib {
 
-xmlApi<graph::Graph>::ParserRegister<graph::UndirectedGraph> undirectedGraphParserRegister = xmlApi<graph::Graph>::ParserRegister<graph::UndirectedGraph>(graph::UndirectedGraph::XML_TAG_NAME, graph::UndirectedGraph::parse);
-xmlApi<alib::Object>::ParserRegister<graph::UndirectedGraph> undirectedGraphParserRegister2 = xmlApi<alib::Object>::ParserRegister<graph::UndirectedGraph>(graph::UndirectedGraph::XML_TAG_NAME, graph::UndirectedGraph::parse);
+auto undirectedGraphParserRegister = xmlApi<graph::Graph>::ParserRegister<graph::UndirectedGraph>();
+auto undirectedGraphParserRegister2 = xmlApi<alib::Object>::ParserRegister<graph::UndirectedGraph>();
 
 } /* namespace alib */
diff --git a/alib2data/src/indexes/suffixTrie/SuffixTrieFinalMark.cpp b/alib2data/src/indexes/suffixTrie/SuffixTrieFinalMark.cpp
index bf5248d27a..47f6c5dc35 100644
--- a/alib2data/src/indexes/suffixTrie/SuffixTrieFinalMark.cpp
+++ b/alib2data/src/indexes/suffixTrie/SuffixTrieFinalMark.cpp
@@ -159,6 +159,6 @@ void SuffixTrieFinalMark::compose ( std::deque < sax::Token > & out ) const {
 
 namespace alib {
 
-xmlApi < alib::Object >::ParserRegister < indexes::SuffixTrieFinalMark > suffixTreeFinalMarkParserRegister = xmlApi < alib::Object >::ParserRegister < indexes::SuffixTrieFinalMark > ( indexes::SuffixTrieFinalMark::XML_TAG_NAME, indexes::SuffixTrieFinalMark::parse );
+auto suffixTreeFinalMarkParserRegister = xmlApi < alib::Object >::ParserRegister < indexes::SuffixTrieFinalMark > ();
 
 } /* namespace alib */
diff --git a/alib2data/src/indexes/suffixTrie/SuffixTrieTerminatingSymbol.cpp b/alib2data/src/indexes/suffixTrie/SuffixTrieTerminatingSymbol.cpp
index 8799c20acf..a8cadd22f5 100644
--- a/alib2data/src/indexes/suffixTrie/SuffixTrieTerminatingSymbol.cpp
+++ b/alib2data/src/indexes/suffixTrie/SuffixTrieTerminatingSymbol.cpp
@@ -153,6 +153,6 @@ void SuffixTrieTerminatingSymbol::compose ( std::deque < sax::Token > & out ) co
 
 namespace alib {
 
-xmlApi < alib::Object >::ParserRegister < indexes::SuffixTrieTerminatingSymbol > suffixTreeTerminatingSymbolParserRegister = xmlApi < alib::Object >::ParserRegister < indexes::SuffixTrieTerminatingSymbol > ( indexes::SuffixTrieTerminatingSymbol::XML_TAG_NAME, indexes::SuffixTrieTerminatingSymbol::parse );
+auto suffixTreeTerminatingSymbolParserRegister = xmlApi < alib::Object >::ParserRegister < indexes::SuffixTrieTerminatingSymbol > ();
 
 } /* namespace alib */
diff --git a/alib2data/src/label/HexavigesimalLabel.cpp b/alib2data/src/label/HexavigesimalLabel.cpp
index 272fa1a7df..d9c426dddd 100644
--- a/alib2data/src/label/HexavigesimalLabel.cpp
+++ b/alib2data/src/label/HexavigesimalLabel.cpp
@@ -73,7 +73,7 @@ LabelBase* HexavigesimalLabel::inc() && {
 
 namespace alib {
 
-xmlApi<label::Label>::ParserRegister<label::HexavigesimalLabel> hexavigesimalLabelParserRegister = xmlApi<label::Label>::ParserRegister<label::HexavigesimalLabel>(label::HexavigesimalLabel::XML_TAG_NAME, label::HexavigesimalLabel::parse);
-xmlApi<alib::Object>::ParserRegister<label::HexavigesimalLabel> hexavigesimalLabelParserRegister2 = xmlApi<alib::Object>::ParserRegister<label::HexavigesimalLabel>(label::HexavigesimalLabel::XML_TAG_NAME, label::HexavigesimalLabel::parse);
+auto hexavigesimalLabelParserRegister = xmlApi<label::Label>::ParserRegister<label::HexavigesimalLabel>();
+auto hexavigesimalLabelParserRegister2 = xmlApi<alib::Object>::ParserRegister<label::HexavigesimalLabel>();
 
 } /* namespace alib */
diff --git a/alib2data/src/label/LabelPairLabel.cpp b/alib2data/src/label/LabelPairLabel.cpp
index 424cfd5bee..5d259bc66f 100644
--- a/alib2data/src/label/LabelPairLabel.cpp
+++ b/alib2data/src/label/LabelPairLabel.cpp
@@ -83,7 +83,7 @@ LabelBase* LabelPairLabel::inc() && {
 
 namespace alib {
 
-xmlApi<label::Label>::ParserRegister<label::LabelPairLabel> labelPairLabelParserRegister = xmlApi<label::Label>::ParserRegister<label::LabelPairLabel>(label::LabelPairLabel::XML_TAG_NAME, label::LabelPairLabel::parse);
-xmlApi<alib::Object>::ParserRegister<label::LabelPairLabel> labelPairLabelParserRegister2 = xmlApi<alib::Object>::ParserRegister<label::LabelPairLabel>(label::LabelPairLabel::XML_TAG_NAME, label::LabelPairLabel::parse);
+auto labelPairLabelParserRegister = xmlApi<label::Label>::ParserRegister<label::LabelPairLabel>();
+auto labelPairLabelParserRegister2 = xmlApi<alib::Object>::ParserRegister<label::LabelPairLabel>();
 
 } /* namespace alib */
diff --git a/alib2data/src/label/LabelSetLabel.cpp b/alib2data/src/label/LabelSetLabel.cpp
index cdc5277786..672991aa2a 100644
--- a/alib2data/src/label/LabelSetLabel.cpp
+++ b/alib2data/src/label/LabelSetLabel.cpp
@@ -88,7 +88,7 @@ LabelBase* LabelSetLabel::inc() && {
 
 namespace alib {
 
-xmlApi<label::Label>::ParserRegister<label::LabelSetLabel> labelSetLabelParserRegister = xmlApi<label::Label>::ParserRegister<label::LabelSetLabel>(label::LabelSetLabel::XML_TAG_NAME, label::LabelSetLabel::parse);
-xmlApi<alib::Object>::ParserRegister<label::LabelSetLabel> labelSetLabelParserRegister2 = xmlApi<alib::Object>::ParserRegister<label::LabelSetLabel>(label::LabelSetLabel::XML_TAG_NAME, label::LabelSetLabel::parse);
+auto labelSetLabelParserRegister = xmlApi<label::Label>::ParserRegister<label::LabelSetLabel>();
+auto labelSetLabelParserRegister2 = xmlApi<alib::Object>::ParserRegister<label::LabelSetLabel>();
 
 } /* namespace alib */
diff --git a/alib2data/src/label/ObjectLabel.cpp b/alib2data/src/label/ObjectLabel.cpp
index 5d40ef75a4..bee9031b2b 100644
--- a/alib2data/src/label/ObjectLabel.cpp
+++ b/alib2data/src/label/ObjectLabel.cpp
@@ -69,7 +69,7 @@ LabelBase* ObjectLabel::inc() && {
 
 namespace alib {
 
-xmlApi<label::Label>::ParserRegister<label::ObjectLabel> objectLabelParserRegister = xmlApi<label::Label>::ParserRegister<label::ObjectLabel>(label::ObjectLabel::XML_TAG_NAME, label::ObjectLabel::parse);
-xmlApi<alib::Object>::ParserRegister<label::ObjectLabel> objectLabelParserRegister2 = xmlApi<alib::Object>::ParserRegister<label::ObjectLabel>(label::ObjectLabel::XML_TAG_NAME, label::ObjectLabel::parse);
+auto objectLabelParserRegister = xmlApi<label::Label>::ParserRegister<label::ObjectLabel>();
+auto objectLabelParserRegister2 = xmlApi<alib::Object>::ParserRegister<label::ObjectLabel>();
 
 } /* namespace alib */
diff --git a/alib2data/src/label/PrimitiveLabel.cpp b/alib2data/src/label/PrimitiveLabel.cpp
index a895a07b84..9ab1785653 100644
--- a/alib2data/src/label/PrimitiveLabel.cpp
+++ b/alib2data/src/label/PrimitiveLabel.cpp
@@ -74,7 +74,7 @@ LabelBase* PrimitiveLabel::inc() && {
 
 namespace alib {
 
-xmlApi<label::Label>::ParserRegister<label::PrimitiveLabel> primitiveLabelParserRegister = xmlApi<label::Label>::ParserRegister<label::PrimitiveLabel>(label::PrimitiveLabel::XML_TAG_NAME, label::PrimitiveLabel::parse);
-xmlApi<alib::Object>::ParserRegister<label::PrimitiveLabel> primitiveLabelParserRegister2 = xmlApi<alib::Object>::ParserRegister<label::PrimitiveLabel>(label::PrimitiveLabel::XML_TAG_NAME, label::PrimitiveLabel::parse);
+auto primitiveLabelParserRegister = xmlApi<label::Label>::ParserRegister<label::PrimitiveLabel>();
+auto primitiveLabelParserRegister2 = xmlApi<alib::Object>::ParserRegister<label::PrimitiveLabel>();
 
 } /* namespace alib */
diff --git a/alib2data/src/label/UniqueLabel.cpp b/alib2data/src/label/UniqueLabel.cpp
index eb5c4e378a..990f46e8a3 100644
--- a/alib2data/src/label/UniqueLabel.cpp
+++ b/alib2data/src/label/UniqueLabel.cpp
@@ -91,7 +91,7 @@ LabelBase* UniqueLabel::inc() && {
 
 namespace alib {
 
-xmlApi<label::Label>::ParserRegister<label::UniqueLabel> uniqueLabelParserRegister = xmlApi<label::Label>::ParserRegister<label::UniqueLabel>(label::UniqueLabel::XML_TAG_NAME, label::UniqueLabel::parse);
-xmlApi<alib::Object>::ParserRegister<label::UniqueLabel> uniqueLabelParserRegister2 = xmlApi<alib::Object>::ParserRegister<label::UniqueLabel>(label::UniqueLabel::XML_TAG_NAME, label::UniqueLabel::parse);
+auto uniqueLabelParserRegister = xmlApi<label::Label>::ParserRegister<label::UniqueLabel>();
+auto uniqueLabelParserRegister2 = xmlApi<alib::Object>::ParserRegister<label::UniqueLabel>();
 
 } /* namespace alib */
diff --git a/alib2data/src/object/Void.cpp b/alib2data/src/object/Void.cpp
index f1c32c559b..b3b7a31e0c 100644
--- a/alib2data/src/object/Void.cpp
+++ b/alib2data/src/object/Void.cpp
@@ -55,7 +55,7 @@ void Void::compose(std::deque<sax::Token>& out) const {
 
 namespace alib {
 
-xmlApi<alib::Object>::ParserRegister<alib::Void> voidParserRegister2 = xmlApi<alib::Object>::ParserRegister<alib::Void>(alib::Void::XML_TAG_NAME, alib::Void::parse);
+auto voidParserRegister = xmlApi<alib::Object>::ParserRegister<alib::Void>();
 
 } /* namespace alib */
 
diff --git a/alib2data/src/primitive/Bool.cpp b/alib2data/src/primitive/Bool.cpp
index 2c541e97dc..41bef5e8b4 100644
--- a/alib2data/src/primitive/Bool.cpp
+++ b/alib2data/src/primitive/Bool.cpp
@@ -102,7 +102,7 @@ void xmlApi<bool>::compose(std::deque<sax::Token>& output, bool data) {
 	primitive::Bool::compose(output, data);
 }
 
-xmlApi<primitive::Primitive>::ParserRegister<primitive::Bool> boolParserRegister = xmlApi<primitive::Primitive>::ParserRegister<primitive::Bool>(primitive::Bool::XML_TAG_NAME, primitive::Bool::parse);
-xmlApi<alib::Object>::ParserRegister<primitive::Bool> boolParserRegister2 = xmlApi<alib::Object>::ParserRegister<primitive::Bool>(primitive::Bool::XML_TAG_NAME, primitive::Bool::parse);
+auto boolParserRegister = xmlApi<primitive::Primitive>::ParserRegister<primitive::Bool>();
+auto boolParserRegister2 = xmlApi<alib::Object>::ParserRegister<primitive::Bool>();
 
 } /* namespace alib */
diff --git a/alib2data/src/primitive/Character.cpp b/alib2data/src/primitive/Character.cpp
index e2c81ff903..f74c33f516 100644
--- a/alib2data/src/primitive/Character.cpp
+++ b/alib2data/src/primitive/Character.cpp
@@ -91,8 +91,8 @@ void xmlApi<char>::compose(std::deque<sax::Token>& output, char data) {
 	primitive::Character::compose(output, data);
 }
 
-xmlApi<primitive::Primitive>::ParserRegister<primitive::Character> characterParserRegister = xmlApi<primitive::Primitive>::ParserRegister<primitive::Character>(primitive::Character::XML_TAG_NAME, primitive::Character::parse);
-xmlApi<alib::Object>::ParserRegister<primitive::Character> characterParserRegister2 = xmlApi<alib::Object>::ParserRegister<primitive::Character>(primitive::Character::XML_TAG_NAME, primitive::Character::parse);
+auto characterParserRegister = xmlApi<primitive::Primitive>::ParserRegister<primitive::Character>();
+auto characterParserRegister2 = xmlApi<alib::Object>::ParserRegister<primitive::Character>();
 
 } /* namespace alib */
 
diff --git a/alib2data/src/primitive/Integer.cpp b/alib2data/src/primitive/Integer.cpp
index e0af002d43..918e3062e7 100644
--- a/alib2data/src/primitive/Integer.cpp
+++ b/alib2data/src/primitive/Integer.cpp
@@ -91,8 +91,8 @@ void xmlApi<int>::compose(std::deque<sax::Token>& output, int data) {
 	primitive::Integer::compose(output, data);
 }
 
-xmlApi<primitive::Primitive>::ParserRegister<primitive::Integer> integerParserRegister = xmlApi<primitive::Primitive>::ParserRegister<primitive::Integer>(primitive::Integer::XML_TAG_NAME, primitive::Integer::parse);
-xmlApi<alib::Object>::ParserRegister<primitive::Integer> integerParserRegister2 = xmlApi<alib::Object>::ParserRegister<primitive::Integer>(primitive::Integer::XML_TAG_NAME, primitive::Integer::parse);
+auto integerParserRegister = xmlApi<primitive::Primitive>::ParserRegister<primitive::Integer>();
+auto integerParserRegister2 = xmlApi<alib::Object>::ParserRegister<primitive::Integer>();
 
 } /* namespace alib */
 
diff --git a/alib2data/src/primitive/String.cpp b/alib2data/src/primitive/String.cpp
index 1bec50f1f6..2e4eb5dfea 100644
--- a/alib2data/src/primitive/String.cpp
+++ b/alib2data/src/primitive/String.cpp
@@ -98,8 +98,8 @@ void xmlApi<std::string>::compose(std::deque<sax::Token>& output, std::string da
 	primitive::String::compose(output, data);
 }
 
-xmlApi<primitive::Primitive>::ParserRegister<primitive::String> stringParserRegister = xmlApi<primitive::Primitive>::ParserRegister<primitive::String>(primitive::String::XML_TAG_NAME, primitive::String::parse);
-xmlApi<alib::Object>::ParserRegister<primitive::String> stringParserRegister2 = xmlApi<alib::Object>::ParserRegister<primitive::String>(primitive::String::XML_TAG_NAME, primitive::String::parse);
+auto stringParserRegister = xmlApi<primitive::Primitive>::ParserRegister<primitive::String>();
+auto stringParserRegister2 = xmlApi<alib::Object>::ParserRegister<primitive::String>();
 
 } /* namespace alib */
 
diff --git a/alib2data/src/primitive/Unsigned.cpp b/alib2data/src/primitive/Unsigned.cpp
index ed56fc372d..05e0764b25 100644
--- a/alib2data/src/primitive/Unsigned.cpp
+++ b/alib2data/src/primitive/Unsigned.cpp
@@ -91,8 +91,8 @@ void xmlApi<unsigned>::compose(std::deque<sax::Token>& output, unsigned data) {
 	primitive::Unsigned::compose(output, data);
 }
 
-xmlApi<primitive::Primitive>::ParserRegister<primitive::Unsigned> unsignedParserRegister = xmlApi<primitive::Primitive>::ParserRegister<primitive::Unsigned>(primitive::Unsigned::XML_TAG_NAME, primitive::Unsigned::parse);
-xmlApi<alib::Object>::ParserRegister<primitive::Unsigned> unsignedParserRegister2 = xmlApi<alib::Object>::ParserRegister<primitive::Unsigned>(primitive::Unsigned::XML_TAG_NAME, primitive::Unsigned::parse);
+auto unsignedParserRegister = xmlApi<primitive::Primitive>::ParserRegister<primitive::Unsigned>();
+auto unsignedParserRegister2 = xmlApi<alib::Object>::ParserRegister<primitive::Unsigned>();
 
 } /* namespace alib */
 
diff --git a/alib2data/src/regexp/formal/FormalRegExp.cpp b/alib2data/src/regexp/formal/FormalRegExp.cpp
index bf94ce6c55..3b8f223489 100644
--- a/alib2data/src/regexp/formal/FormalRegExp.cpp
+++ b/alib2data/src/regexp/formal/FormalRegExp.cpp
@@ -181,8 +181,8 @@ void FormalRegExp::compose ( std::deque < sax::Token > & out ) const {
 
 namespace alib {
 
-xmlApi < regexp::RegExp >::ParserRegister < regexp::FormalRegExp > formalRegExpParserRegister = xmlApi < regexp::RegExp >::ParserRegister < regexp::FormalRegExp > ( regexp::FormalRegExp::XML_TAG_NAME, regexp::FormalRegExp::parse );
-xmlApi < alib::Object >::ParserRegister < regexp::FormalRegExp > formalRegExpParserRegister2  = xmlApi < alib::Object >::ParserRegister < regexp::FormalRegExp > ( regexp::FormalRegExp::XML_TAG_NAME, regexp::FormalRegExp::parse );
+auto formalRegExpParserRegister = xmlApi < regexp::RegExp >::ParserRegister < regexp::FormalRegExp > ();
+auto formalRegExpParserRegister2  = xmlApi < alib::Object >::ParserRegister < regexp::FormalRegExp > ();
 
 auto FormalRegExpFromUnboundedRegExp = castApi::CastRegister < regexp::FormalRegExp, regexp::UnboundedRegExp > ( );
 auto FormalRegExpCastBinder = castApi::CastPoolStringBinder < regexp::FormalRegExp > ( regexp::FormalRegExp::XML_TAG_NAME );
diff --git a/alib2data/src/regexp/unbounded/UnboundedRegExp.cpp b/alib2data/src/regexp/unbounded/UnboundedRegExp.cpp
index c01f1e011b..d2e6258466 100644
--- a/alib2data/src/regexp/unbounded/UnboundedRegExp.cpp
+++ b/alib2data/src/regexp/unbounded/UnboundedRegExp.cpp
@@ -182,8 +182,8 @@ void UnboundedRegExp::compose ( std::deque < sax::Token > & out ) const {
 
 namespace alib {
 
-xmlApi < regexp::RegExp >::ParserRegister < regexp::UnboundedRegExp > unboundedRegExpParserRegister = xmlApi < regexp::RegExp >::ParserRegister < regexp::UnboundedRegExp > ( regexp::UnboundedRegExp::XML_TAG_NAME, regexp::UnboundedRegExp::parse );
-xmlApi < alib::Object >::ParserRegister < regexp::UnboundedRegExp > unboundedRegExpParserRegister2	= xmlApi < alib::Object >::ParserRegister < regexp::UnboundedRegExp > ( regexp::UnboundedRegExp::XML_TAG_NAME, regexp::UnboundedRegExp::parse );
+auto unboundedRegExpParserRegister = xmlApi < regexp::RegExp >::ParserRegister < regexp::UnboundedRegExp > ();
+auto unboundedRegExpParserRegister2 = xmlApi < alib::Object >::ParserRegister < regexp::UnboundedRegExp > ();
 
 auto UnboundedRegExpFromFormalRegExp = castApi::CastRegister < regexp::UnboundedRegExp, regexp::FormalRegExp > ( );
 auto UnboundedRegExpCastBinder = castApi::CastPoolStringBinder < regexp::UnboundedRegExp > ( regexp::UnboundedRegExp::XML_TAG_NAME );
diff --git a/alib2data/src/string/CyclicString.cpp b/alib2data/src/string/CyclicString.cpp
index 6808021235..af20e72676 100644
--- a/alib2data/src/string/CyclicString.cpp
+++ b/alib2data/src/string/CyclicString.cpp
@@ -130,8 +130,8 @@ void CyclicString::compose(std::deque<sax::Token>& out) const {
 
 namespace alib {
 
-xmlApi<string::String>::ParserRegister<string::CyclicString> cyclicStringParserRegister = xmlApi<string::String>::ParserRegister<string::CyclicString>(string::CyclicString::XML_TAG_NAME, string::CyclicString::parse);
-xmlApi<alib::Object>::ParserRegister<string::CyclicString> cyclicStringParserRegister2 = xmlApi<alib::Object>::ParserRegister<string::CyclicString>(string::CyclicString::XML_TAG_NAME, string::CyclicString::parse);
+auto cyclicStringParserRegister = xmlApi<string::String>::ParserRegister<string::CyclicString>();
+auto cyclicStringParserRegister2 = xmlApi<alib::Object>::ParserRegister<string::CyclicString>();
 
 auto CyclicStringFromEpsilon = castApi::CastRegister<string::CyclicString, string::Epsilon>();
 auto CyclicStringCastBinder = castApi::CastPoolStringBinder<string::CyclicString>(string::CyclicString::XML_TAG_NAME);
diff --git a/alib2data/src/string/Epsilon.cpp b/alib2data/src/string/Epsilon.cpp
index e06acde4ce..ca7c49f175 100644
--- a/alib2data/src/string/Epsilon.cpp
+++ b/alib2data/src/string/Epsilon.cpp
@@ -76,7 +76,7 @@ void Epsilon::compose(std::deque<sax::Token>& out) const {
 
 namespace alib {
 
-xmlApi<string::String>::ParserRegister<string::Epsilon> epsilonParserRegister = xmlApi<string::String>::ParserRegister<string::Epsilon>(string::Epsilon::XML_TAG_NAME, string::Epsilon::parse);
-xmlApi<alib::Object>::ParserRegister<string::Epsilon> epsilonParserRegister2 = xmlApi<alib::Object>::ParserRegister<string::Epsilon>(string::Epsilon::XML_TAG_NAME, string::Epsilon::parse);
+auto epsilonParserRegister = xmlApi<string::String>::ParserRegister<string::Epsilon>();
+auto epsilonParserRegister2 = xmlApi<alib::Object>::ParserRegister<string::Epsilon>();
 
 } /* namespace alib */
diff --git a/alib2data/src/string/LinearString.cpp b/alib2data/src/string/LinearString.cpp
index e945ee8d60..66578f7869 100644
--- a/alib2data/src/string/LinearString.cpp
+++ b/alib2data/src/string/LinearString.cpp
@@ -185,8 +185,8 @@ void LinearString::compose ( std::deque < sax::Token > & out ) const {
 
 namespace alib {
 
-xmlApi < string::String >::ParserRegister < string::LinearString > linearStringParserRegister = xmlApi < string::String >::ParserRegister < string::LinearString > ( string::LinearString::XML_TAG_NAME, string::LinearString::parse );
-xmlApi < alib::Object >::ParserRegister < string::LinearString > linearStringParserRegister2  = xmlApi < alib::Object >::ParserRegister < string::LinearString > ( string::LinearString::XML_TAG_NAME, string::LinearString::parse );
+auto linearStringParserRegister = xmlApi < string::String >::ParserRegister < string::LinearString > ();
+auto linearStringParserRegister2  = xmlApi < alib::Object >::ParserRegister < string::LinearString > ();
 
 auto LinearStringFromEpsilon = castApi::CastRegister < string::LinearString, string::Epsilon > ( );
 auto LinearStringFromPrefixRankedTree = castApi::CastRegister < string::LinearString, tree::PrefixRankedTree > ( );
diff --git a/alib2data/src/string/LinearStringTerminatingSymbol.cpp b/alib2data/src/string/LinearStringTerminatingSymbol.cpp
index f1b596a3f4..24de65e409 100644
--- a/alib2data/src/string/LinearStringTerminatingSymbol.cpp
+++ b/alib2data/src/string/LinearStringTerminatingSymbol.cpp
@@ -136,7 +136,7 @@ void LinearStringTerminatingSymbol::compose ( std::deque < sax::Token > & out )
 
 namespace alib {
 
-xmlApi < string::String >::ParserRegister < string::LinearStringTerminatingSymbol > linearStringTerminatingSymbolParserRegister = xmlApi < string::String >::ParserRegister < string::LinearStringTerminatingSymbol > ( string::LinearStringTerminatingSymbol::XML_TAG_NAME, string::LinearStringTerminatingSymbol::parse );
-xmlApi < alib::Object >::ParserRegister < string::LinearStringTerminatingSymbol > linearStringTerminatingSymbolParserRegister2	= xmlApi < alib::Object >::ParserRegister < string::LinearStringTerminatingSymbol > ( string::LinearStringTerminatingSymbol::XML_TAG_NAME, string::LinearStringTerminatingSymbol::parse );
+auto linearStringTerminatingSymbolParserRegister = xmlApi < string::String >::ParserRegister < string::LinearStringTerminatingSymbol > ();
+auto linearStringTerminatingSymbolParserRegister2 = xmlApi < alib::Object >::ParserRegister < string::LinearStringTerminatingSymbol > ();
 
 } /* namespace alib */
diff --git a/alib2data/src/tree/ranked/PrefixRankedBarPattern.cpp b/alib2data/src/tree/ranked/PrefixRankedBarPattern.cpp
index be331694b4..8f07934685 100644
--- a/alib2data/src/tree/ranked/PrefixRankedBarPattern.cpp
+++ b/alib2data/src/tree/ranked/PrefixRankedBarPattern.cpp
@@ -213,9 +213,9 @@ void PrefixRankedBarPattern::compose ( std::deque < sax::Token > & out ) const {
 
 namespace alib {
 
-xmlApi < tree::Tree >::ParserRegister < tree::PrefixRankedBarPattern > prefixRankedBarPatternParserRegister = xmlApi < tree::Tree >::ParserRegister < tree::PrefixRankedBarPattern > ( tree::PrefixRankedBarPattern::XML_TAG_NAME, tree::PrefixRankedBarPattern::parse );
-xmlApi < tree::RankedTreeWrapper >::ParserRegister < tree::PrefixRankedBarPattern > prefixRankedBarPatternParserRegister2 = xmlApi < tree::RankedTreeWrapper >::ParserRegister < tree::PrefixRankedBarPattern > ( tree::PrefixRankedBarPattern::XML_TAG_NAME, tree::PrefixRankedBarPattern::parse );
-xmlApi < alib::Object >::ParserRegister < tree::PrefixRankedBarPattern > prefixRankedBarPatternParserRegister3 = xmlApi < alib::Object >::ParserRegister < tree::PrefixRankedBarPattern > ( tree::PrefixRankedBarPattern::XML_TAG_NAME, tree::PrefixRankedBarPattern::parse );
+auto prefixRankedBarPatternParserRegister = xmlApi < tree::Tree >::ParserRegister < tree::PrefixRankedBarPattern > ();
+auto prefixRankedBarPatternParserRegister2 = xmlApi < tree::RankedTreeWrapper >::ParserRegister < tree::PrefixRankedBarPattern > ();
+auto prefixRankedBarPatternParserRegister3 = xmlApi < alib::Object >::ParserRegister < tree::PrefixRankedBarPattern > ();
 
 auto PrefixRankedBarPatternFromRankedPattern = castApi::CastRegister < tree::PrefixRankedBarPattern, tree::RankedPattern > ( );
 auto PrefixRankedBarPatternFromRankedTree = castApi::CastRegister < tree::PrefixRankedBarPattern, tree::PrefixRankedBarTree > ( );
diff --git a/alib2data/src/tree/ranked/PrefixRankedBarTree.cpp b/alib2data/src/tree/ranked/PrefixRankedBarTree.cpp
index 1a3cb4f373..9edd1e8e70 100644
--- a/alib2data/src/tree/ranked/PrefixRankedBarTree.cpp
+++ b/alib2data/src/tree/ranked/PrefixRankedBarTree.cpp
@@ -185,9 +185,9 @@ void PrefixRankedBarTree::compose ( std::deque < sax::Token > & out ) const {
 
 namespace alib {
 
-xmlApi < tree::Tree >::ParserRegister < tree::PrefixRankedBarTree > prefixRankedBarTreeParserRegister = xmlApi < tree::Tree >::ParserRegister < tree::PrefixRankedBarTree > ( tree::PrefixRankedBarTree::XML_TAG_NAME, tree::PrefixRankedBarTree::parse );
-xmlApi < tree::RankedTreeWrapper >::ParserRegister < tree::PrefixRankedBarTree > prefixRankedBarTreeParserRegister2 = xmlApi < tree::RankedTreeWrapper >::ParserRegister < tree::PrefixRankedBarTree > ( tree::PrefixRankedBarTree::XML_TAG_NAME, tree::PrefixRankedBarTree::parse );
-xmlApi < alib::Object >::ParserRegister < tree::PrefixRankedBarTree > prefixRankedBarTreeParserRegister3 = xmlApi < alib::Object >::ParserRegister < tree::PrefixRankedBarTree > ( tree::PrefixRankedBarTree::XML_TAG_NAME, tree::PrefixRankedBarTree::parse );
+auto prefixRankedBarTreeParserRegister = xmlApi < tree::Tree >::ParserRegister < tree::PrefixRankedBarTree > ();
+auto prefixRankedBarTreeParserRegister2 = xmlApi < tree::RankedTreeWrapper >::ParserRegister < tree::PrefixRankedBarTree > ();
+auto prefixRankedBarTreeParserRegister3 = xmlApi < alib::Object >::ParserRegister < tree::PrefixRankedBarTree > ();
 
 auto PrefixRankedBarTreeFromRankedTree = castApi::CastRegister < tree::PrefixRankedBarTree, tree::RankedTree > ( );
 auto PrefixRankedBarTreeCastBinder = castApi::CastPoolStringBinder < tree::PrefixRankedBarTree > ( tree::PrefixRankedBarTree::XML_TAG_NAME );
diff --git a/alib2data/src/tree/ranked/PrefixRankedPattern.cpp b/alib2data/src/tree/ranked/PrefixRankedPattern.cpp
index 549d87f2e2..7d068a3929 100644
--- a/alib2data/src/tree/ranked/PrefixRankedPattern.cpp
+++ b/alib2data/src/tree/ranked/PrefixRankedPattern.cpp
@@ -174,9 +174,9 @@ void PrefixRankedPattern::compose ( std::deque < sax::Token > & out ) const {
 
 namespace alib {
 
-xmlApi < tree::Tree >::ParserRegister < tree::PrefixRankedPattern > prefixRankedPatternParserRegister = xmlApi < tree::Tree >::ParserRegister < tree::PrefixRankedPattern > ( tree::PrefixRankedPattern::XML_TAG_NAME, tree::PrefixRankedPattern::parse );
-xmlApi < tree::RankedTreeWrapper >::ParserRegister < tree::PrefixRankedPattern > prefixRankedPatternParserRegister2 = xmlApi < tree::RankedTreeWrapper >::ParserRegister < tree::PrefixRankedPattern > ( tree::PrefixRankedPattern::XML_TAG_NAME, tree::PrefixRankedPattern::parse );
-xmlApi < alib::Object >::ParserRegister < tree::PrefixRankedPattern > prefixRankedPatternParserRegister3 = xmlApi < alib::Object >::ParserRegister < tree::PrefixRankedPattern > ( tree::PrefixRankedPattern::XML_TAG_NAME, tree::PrefixRankedPattern::parse );
+auto prefixRankedPatternParserRegister = xmlApi < tree::Tree >::ParserRegister < tree::PrefixRankedPattern > ();
+auto prefixRankedPatternParserRegister2 = xmlApi < tree::RankedTreeWrapper >::ParserRegister < tree::PrefixRankedPattern > ();
+auto prefixRankedPatternParserRegister3 = xmlApi < alib::Object >::ParserRegister < tree::PrefixRankedPattern > ();
 
 auto PrefixRankedPatternFromRankedPattern = castApi::CastRegister < tree::PrefixRankedPattern, tree::RankedPattern > ( );
 auto PrefixRankedPatternCastBinder = castApi::CastPoolStringBinder < tree::PrefixRankedPattern > ( tree::PrefixRankedPattern::XML_TAG_NAME );
diff --git a/alib2data/src/tree/ranked/PrefixRankedTree.cpp b/alib2data/src/tree/ranked/PrefixRankedTree.cpp
index 0f0d28e503..d00f2f2bae 100644
--- a/alib2data/src/tree/ranked/PrefixRankedTree.cpp
+++ b/alib2data/src/tree/ranked/PrefixRankedTree.cpp
@@ -159,9 +159,9 @@ void PrefixRankedTree::compose ( std::deque < sax::Token > & out ) const {
 
 namespace alib {
 
-xmlApi < tree::Tree >::ParserRegister < tree::PrefixRankedTree > prefixRankedTreeParserRegister = xmlApi < tree::Tree >::ParserRegister < tree::PrefixRankedTree > ( tree::PrefixRankedTree::XML_TAG_NAME, tree::PrefixRankedTree::parse );
-xmlApi < tree::RankedTreeWrapper >::ParserRegister < tree::PrefixRankedTree > prefixRankedTreeParserRegister2 = xmlApi < tree::RankedTreeWrapper >::ParserRegister < tree::PrefixRankedTree > ( tree::PrefixRankedTree::XML_TAG_NAME, tree::PrefixRankedTree::parse );
-xmlApi < alib::Object >::ParserRegister < tree::PrefixRankedTree > prefixRankedTreeParserRegister3 = xmlApi < alib::Object >::ParserRegister < tree::PrefixRankedTree > ( tree::PrefixRankedTree::XML_TAG_NAME, tree::PrefixRankedTree::parse );
+auto prefixRankedTreeParserRegister = xmlApi < tree::Tree >::ParserRegister < tree::PrefixRankedTree > ();
+auto prefixRankedTreeParserRegister2 = xmlApi < tree::RankedTreeWrapper >::ParserRegister < tree::PrefixRankedTree > ();
+auto prefixRankedTreeParserRegister3 = xmlApi < alib::Object >::ParserRegister < tree::PrefixRankedTree > ();
 
 auto PrefixRankedTreeFromRankedTree = castApi::CastRegister < tree::PrefixRankedTree, tree::RankedTree > ( );
 auto PrefixRankedTreeCastBinder = castApi::CastPoolStringBinder < tree::PrefixRankedTree > ( tree::PrefixRankedTree::XML_TAG_NAME );
diff --git a/alib2data/src/tree/ranked/RankedPattern.cpp b/alib2data/src/tree/ranked/RankedPattern.cpp
index cb0a9b504b..11c94cb324 100644
--- a/alib2data/src/tree/ranked/RankedPattern.cpp
+++ b/alib2data/src/tree/ranked/RankedPattern.cpp
@@ -167,9 +167,9 @@ void RankedPattern::compose ( std::deque < sax::Token > & out ) const {
 
 namespace alib {
 
-xmlApi < tree::Tree >::ParserRegister < tree::RankedPattern > rankedPatternParserRegister = xmlApi < tree::Tree >::ParserRegister < tree::RankedPattern > ( tree::RankedPattern::XML_TAG_NAME, tree::RankedPattern::parse );
-xmlApi < tree::RankedTreeWrapper >::ParserRegister < tree::RankedPattern > rankedPatternParserRegister2 = xmlApi < tree::RankedTreeWrapper >::ParserRegister < tree::RankedPattern > ( tree::RankedPattern::XML_TAG_NAME, tree::RankedPattern::parse );
-xmlApi < alib::Object >::ParserRegister < tree::RankedPattern > rankedPatternParserRegister3 = xmlApi < alib::Object >::ParserRegister < tree::RankedPattern > ( tree::RankedPattern::XML_TAG_NAME, tree::RankedPattern::parse );
+auto rankedPatternParserRegister = xmlApi < tree::Tree >::ParserRegister < tree::RankedPattern > ();
+auto rankedPatternParserRegister2 = xmlApi < tree::RankedTreeWrapper >::ParserRegister < tree::RankedPattern > ();
+auto rankedPatternParserRegister3 = xmlApi < alib::Object >::ParserRegister < tree::RankedPattern > ();
 
 auto RankedPatternFromUnrankedPattern = castApi::CastRegister < tree::RankedPattern, tree::UnrankedPattern > ( );
 auto RankedPatternCastBinder = castApi::CastPoolStringBinder < tree::RankedPattern > ( tree::RankedPattern::XML_TAG_NAME );
diff --git a/alib2data/src/tree/ranked/RankedTree.cpp b/alib2data/src/tree/ranked/RankedTree.cpp
index b372b10541..d5bbe91d20 100644
--- a/alib2data/src/tree/ranked/RankedTree.cpp
+++ b/alib2data/src/tree/ranked/RankedTree.cpp
@@ -158,9 +158,9 @@ void RankedTree::compose ( std::deque < sax::Token > & out ) const {
 
 namespace alib {
 
-xmlApi < tree::Tree >::ParserRegister < tree::RankedTree > rankedTreeParserRegister = xmlApi < tree::Tree >::ParserRegister < tree::RankedTree > ( tree::RankedTree::XML_TAG_NAME, tree::RankedTree::parse );
-xmlApi < tree::RankedTreeWrapper >::ParserRegister < tree::RankedTree > rankedTreeParserRegister2 = xmlApi < tree::RankedTreeWrapper >::ParserRegister < tree::RankedTree > ( tree::RankedTree::XML_TAG_NAME, tree::RankedTree::parse );
-xmlApi < alib::Object >::ParserRegister < tree::RankedTree > rankedTreeParserRegister3 = xmlApi < alib::Object >::ParserRegister < tree::RankedTree > ( tree::RankedTree::XML_TAG_NAME, tree::RankedTree::parse );
+auto rankedTreeParserRegister = xmlApi < tree::Tree >::ParserRegister < tree::RankedTree > ();
+auto rankedTreeParserRegister2 = xmlApi < tree::RankedTreeWrapper >::ParserRegister < tree::RankedTree > ();
+auto rankedTreeParserRegister3 = xmlApi < alib::Object >::ParserRegister < tree::RankedTree > ();
 
 auto RankedTreeFromUnrankedTree = castApi::CastRegister < tree::RankedTree, tree::UnrankedTree > ( );
 auto RankedTreeCastBinder = castApi::CastPoolStringBinder < tree::RankedTree > ( tree::RankedTree::XML_TAG_NAME );
diff --git a/alib2data/src/tree/unranked/PrefixBarTree.cpp b/alib2data/src/tree/unranked/PrefixBarTree.cpp
index 57e4cb7c77..14eff02090 100644
--- a/alib2data/src/tree/unranked/PrefixBarTree.cpp
+++ b/alib2data/src/tree/unranked/PrefixBarTree.cpp
@@ -176,9 +176,9 @@ void PrefixBarTree::compose ( std::deque < sax::Token > & out ) const {
 
 namespace alib {
 
-xmlApi < tree::Tree >::ParserRegister < tree::PrefixBarTree > prefixBarTreeParserRegister = xmlApi < tree::Tree >::ParserRegister < tree::PrefixBarTree > ( tree::PrefixBarTree::XML_TAG_NAME, tree::PrefixBarTree::parse );
-xmlApi < tree::UnrankedTreeWrapper >::ParserRegister < tree::PrefixBarTree > prefixBarTreeParserRegister2 = xmlApi < tree::UnrankedTreeWrapper >::ParserRegister < tree::PrefixBarTree > ( tree::PrefixBarTree::XML_TAG_NAME, tree::PrefixBarTree::parse );
-xmlApi < alib::Object >::ParserRegister < tree::PrefixBarTree > prefixBarTreeParserRegister3 = xmlApi < alib::Object >::ParserRegister < tree::PrefixBarTree > ( tree::PrefixBarTree::XML_TAG_NAME, tree::PrefixBarTree::parse );
+auto prefixBarTreeParserRegister = xmlApi < tree::Tree >::ParserRegister < tree::PrefixBarTree > ();
+auto prefixBarTreeParserRegister2 = xmlApi < tree::UnrankedTreeWrapper >::ParserRegister < tree::PrefixBarTree > ();
+auto prefixBarTreeParserRegister3 = xmlApi < alib::Object >::ParserRegister < tree::PrefixBarTree > ();
 
 auto PrefixBarTreeFromUnrankedTree = castApi::CastRegister < tree::PrefixBarTree, tree::UnrankedTree > ( );
 auto PrefixBarTreeCastBinder = castApi::CastPoolStringBinder < tree::PrefixBarTree > ( tree::PrefixBarTree::XML_TAG_NAME );
diff --git a/alib2data/src/tree/unranked/UnrankedPattern.cpp b/alib2data/src/tree/unranked/UnrankedPattern.cpp
index 48f1cc1777..09bf2823bc 100644
--- a/alib2data/src/tree/unranked/UnrankedPattern.cpp
+++ b/alib2data/src/tree/unranked/UnrankedPattern.cpp
@@ -167,9 +167,9 @@ void UnrankedPattern::compose ( std::deque < sax::Token > & out ) const {
 
 namespace alib {
 
-xmlApi < tree::Tree >::ParserRegister < tree::UnrankedPattern > unrankedPatternParserRegister = xmlApi < tree::Tree >::ParserRegister < tree::UnrankedPattern > ( tree::UnrankedPattern::XML_TAG_NAME, tree::UnrankedPattern::parse );
-xmlApi < tree::UnrankedTreeWrapper >::ParserRegister < tree::UnrankedPattern > unrankedPatternParserRegister2 = xmlApi < tree::UnrankedTreeWrapper >::ParserRegister < tree::UnrankedPattern > ( tree::UnrankedPattern::XML_TAG_NAME, tree::UnrankedPattern::parse );
-xmlApi < alib::Object >::ParserRegister < tree::UnrankedPattern > unrankedPatternParserRegister3 = xmlApi < alib::Object >::ParserRegister < tree::UnrankedPattern > ( tree::UnrankedPattern::XML_TAG_NAME, tree::UnrankedPattern::parse );
+auto unrankedPatternParserRegister = xmlApi < tree::Tree >::ParserRegister < tree::UnrankedPattern > ();
+auto unrankedPatternParserRegister2 = xmlApi < tree::UnrankedTreeWrapper >::ParserRegister < tree::UnrankedPattern > ();
+auto unrankedPatternParserRegister3 = xmlApi < alib::Object >::ParserRegister < tree::UnrankedPattern > ();
 
 auto UnrankedPatternFromRankedPattern = castApi::CastRegister < tree::UnrankedPattern, tree::RankedPattern > ( );
 auto UnrankedPatternCastBinder = castApi::CastPoolStringBinder < tree::UnrankedPattern > ( tree::UnrankedPattern::XML_TAG_NAME );
diff --git a/alib2data/src/tree/unranked/UnrankedTree.cpp b/alib2data/src/tree/unranked/UnrankedTree.cpp
index 1e8102d773..b701d229bf 100644
--- a/alib2data/src/tree/unranked/UnrankedTree.cpp
+++ b/alib2data/src/tree/unranked/UnrankedTree.cpp
@@ -158,9 +158,9 @@ void UnrankedTree::compose ( std::deque < sax::Token > & out ) const {
 
 namespace alib {
 
-xmlApi < tree::Tree >::ParserRegister < tree::UnrankedTree > unrankedTreeParserRegister = xmlApi < tree::Tree >::ParserRegister < tree::UnrankedTree > ( tree::UnrankedTree::XML_TAG_NAME, tree::UnrankedTree::parse );
-xmlApi < tree::UnrankedTreeWrapper >::ParserRegister < tree::UnrankedTree > unrankedTreeParserRegister2 = xmlApi < tree::UnrankedTreeWrapper >::ParserRegister < tree::UnrankedTree > ( tree::UnrankedTree::XML_TAG_NAME, tree::UnrankedTree::parse );
-xmlApi < alib::Object >::ParserRegister < tree::UnrankedTree > unrankedTreeParserRegister3 = xmlApi < alib::Object >::ParserRegister < tree::UnrankedTree > ( tree::UnrankedTree::XML_TAG_NAME, tree::UnrankedTree::parse );
+auto unrankedTreeParserRegister = xmlApi < tree::Tree >::ParserRegister < tree::UnrankedTree > ();
+auto unrankedTreeParserRegister2 = xmlApi < tree::UnrankedTreeWrapper >::ParserRegister < tree::UnrankedTree > ();
+auto unrankedTreeParserRegister3 = xmlApi < alib::Object >::ParserRegister < tree::UnrankedTree > ();
 
 auto UnrankedTreeFromRankedTree = castApi::CastRegister < tree::UnrankedTree, tree::RankedTree > ( );
 auto UnrankedTreeCastBinder = castApi::CastPoolStringBinder < tree::UnrankedTree > ( tree::UnrankedTree::XML_TAG_NAME );
-- 
GitLab