12 #ifndef ROOT_TXMLSetup
13 #define ROOT_TXMLSetup
29 extern const char *Root;
30 extern const char *Setup;
31 extern const char *ClassVersion;
32 extern const char *IOVersion;
33 extern const char *OnlyVersion;
34 extern const char *Ptr;
35 extern const char *Ref;
36 extern const char *Null;
37 extern const char *IdBase;
38 extern const char *Size;
39 extern const char *Xmlobject;
40 extern const char *Xmlkey;
41 extern const char *Cycle;
42 extern const char *XmlBlock;
43 extern const char *Zip;
44 extern const char *Object;
45 extern const char *ObjClass;
46 extern const char *Class;
47 extern const char *Member;
48 extern const char *Item;
49 extern const char *Name;
50 extern const char *Title;
51 extern const char *CreateTm;
52 extern const char *ModifyTm;
53 extern const char *ObjectUUID;
54 extern const char *Type;
55 extern const char *Value;
57 extern const char *cnt;
58 extern const char *True;
59 extern const char *False;
60 extern const char *SInfos;
62 extern const char *Array;
63 extern const char *Bool;
64 extern const char *Char;
65 extern const char *Short;
66 extern const char *Int;
67 extern const char *Long;
68 extern const char *Long64;
69 extern const char *Float;
70 extern const char *Double;
71 extern const char *UChar;
72 extern const char *UShort;
73 extern const char *UInt;
74 extern const char *ULong;
75 extern const char *ULong64;
76 extern const char *String;
77 extern const char *CharStar;
80 class TStreamerElement;
84 enum EXMLLayout { kSpecialized = 2, kGeneralized = 3 };
86 TXMLSetup() =
default;
87 TXMLSetup(
const char *opt);
88 TXMLSetup(
const TXMLSetup &src);
89 virtual ~TXMLSetup() =
default;
91 TXMLSetup &operator=(
const TXMLSetup &rhs);
93 TString GetSetupAsString();
97 EXMLLayout GetXmlLayout()
const {
return fXmlLayout; }
98 Bool_t IsStoreStreamerInfos()
const {
return fStoreStreamerInfos; }
99 Bool_t IsUseDtd()
const {
return fUseDtd; }
100 Bool_t IsUseNamespaces()
const {
return fUseNamespaces; }
102 virtual void SetXmlLayout(EXMLLayout layout) { fXmlLayout = layout; }
103 virtual void SetStoreStreamerInfos(Bool_t iConvert = kTRUE) { fStoreStreamerInfos = iConvert; }
104 virtual void SetUsedDtd(Bool_t use = kTRUE) { fUseDtd = use; }
105 virtual void SetUseNamespaces(Bool_t iUseNamespaces = kTRUE) { fUseNamespaces = iUseNamespaces; }
107 const char *XmlConvertClassName(
const char *name);
108 const char *XmlClassNameSpaceRef(
const TClass *cl);
109 const char *XmlGetElementName(
const TStreamerElement *el);
111 Int_t GetNextRefCounter() {
return fRefCounter++; }
113 static TString DefaultXmlSetup();
114 static void SetNameSpaceBase(
const char *namespacebase);
117 TClass *XmlDefineClass(
const char *xmlClassName);
118 const char *GetElItemName(TStreamerElement *el);
120 Bool_t IsValidXmlSetup(
const char *setupstr);
121 Bool_t ReadSetupFromStr(
const char *setupstr);
123 Int_t AtoI(
const char *sbuf, Int_t def = 0,
const char *errinfo =
nullptr);
125 EXMLLayout fXmlLayout{kSpecialized};
126 Bool_t fStoreStreamerInfos{kTRUE};
127 Bool_t fUseDtd{kFALSE};
128 Bool_t fUseNamespaces{kFALSE};
130 Int_t fRefCounter{0};
134 static TString fgNameSpaceBase;
136 ClassDef(TXMLSetup, 1)