1*11c03c6dSDamjan Jovanovic /**************************************************************
2*11c03c6dSDamjan Jovanovic *
3*11c03c6dSDamjan Jovanovic * Licensed to the Apache Software Foundation (ASF) under one
4*11c03c6dSDamjan Jovanovic * or more contributor license agreements. See the NOTICE file
5*11c03c6dSDamjan Jovanovic * distributed with this work for additional information
6*11c03c6dSDamjan Jovanovic * regarding copyright ownership. The ASF licenses this file
7*11c03c6dSDamjan Jovanovic * to you under the Apache License, Version 2.0 (the
8*11c03c6dSDamjan Jovanovic * "License"); you may not use this file except in compliance
9*11c03c6dSDamjan Jovanovic * with the License. You may obtain a copy of the License at
10*11c03c6dSDamjan Jovanovic *
11*11c03c6dSDamjan Jovanovic * http://www.apache.org/licenses/LICENSE-2.0
12*11c03c6dSDamjan Jovanovic *
13*11c03c6dSDamjan Jovanovic * Unless required by applicable law or agreed to in writing,
14*11c03c6dSDamjan Jovanovic * software distributed under the License is distributed on an
15*11c03c6dSDamjan Jovanovic * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*11c03c6dSDamjan Jovanovic * KIND, either express or implied. See the License for the
17*11c03c6dSDamjan Jovanovic * specific language governing permissions and limitations
18*11c03c6dSDamjan Jovanovic * under the License.
19*11c03c6dSDamjan Jovanovic *
20*11c03c6dSDamjan Jovanovic *************************************************************/
21*11c03c6dSDamjan Jovanovic
22*11c03c6dSDamjan Jovanovic
23*11c03c6dSDamjan Jovanovic
24*11c03c6dSDamjan Jovanovic #ifndef CSI_XML_XMLITEM_HXX
25*11c03c6dSDamjan Jovanovic #define CSI_XML_XMLITEM_HXX
26*11c03c6dSDamjan Jovanovic
27*11c03c6dSDamjan Jovanovic // USED SERVICES
28*11c03c6dSDamjan Jovanovic // BASE CLASSES
29*11c03c6dSDamjan Jovanovic // COMPONENTS
30*11c03c6dSDamjan Jovanovic #include <cosv/tpl/swelist.hxx>
31*11c03c6dSDamjan Jovanovic #include <cosv/tpl/dyn.hxx>
32*11c03c6dSDamjan Jovanovic // PARAMETERS
33*11c03c6dSDamjan Jovanovic
34*11c03c6dSDamjan Jovanovic namespace csv
35*11c03c6dSDamjan Jovanovic {
36*11c03c6dSDamjan Jovanovic class bostream;
37*11c03c6dSDamjan Jovanovic }
38*11c03c6dSDamjan Jovanovic
39*11c03c6dSDamjan Jovanovic
40*11c03c6dSDamjan Jovanovic namespace csi
41*11c03c6dSDamjan Jovanovic {
42*11c03c6dSDamjan Jovanovic namespace xml
43*11c03c6dSDamjan Jovanovic {
44*11c03c6dSDamjan Jovanovic
45*11c03c6dSDamjan Jovanovic
46*11c03c6dSDamjan Jovanovic /* Basics:
47*11c03c6dSDamjan Jovanovic Item, Attribute, Element, TextContext
48*11c03c6dSDamjan Jovanovic */
49*11c03c6dSDamjan Jovanovic
50*11c03c6dSDamjan Jovanovic class Item
51*11c03c6dSDamjan Jovanovic {
52*11c03c6dSDamjan Jovanovic public:
~Item()53*11c03c6dSDamjan Jovanovic virtual ~Item() {}
54*11c03c6dSDamjan Jovanovic void WriteOut(
55*11c03c6dSDamjan Jovanovic csv::bostream & io_aFile ) const;
56*11c03c6dSDamjan Jovanovic private:
57*11c03c6dSDamjan Jovanovic virtual void do_WriteOut(
58*11c03c6dSDamjan Jovanovic csv::bostream & io_aFile ) const = 0;
59*11c03c6dSDamjan Jovanovic };
60*11c03c6dSDamjan Jovanovic
61*11c03c6dSDamjan Jovanovic typedef csv::SweList_dyn< Item > ItemList;
62*11c03c6dSDamjan Jovanovic
63*11c03c6dSDamjan Jovanovic class Attribute
64*11c03c6dSDamjan Jovanovic {
65*11c03c6dSDamjan Jovanovic public:
~Attribute()66*11c03c6dSDamjan Jovanovic virtual ~Attribute() {}
67*11c03c6dSDamjan Jovanovic
68*11c03c6dSDamjan Jovanovic void WriteOut(
69*11c03c6dSDamjan Jovanovic csv::bostream & io_aFile ) const;
70*11c03c6dSDamjan Jovanovic
71*11c03c6dSDamjan Jovanovic const ::csv::String& Name() const;
72*11c03c6dSDamjan Jovanovic const ::csv::String& Value() const;
73*11c03c6dSDamjan Jovanovic
74*11c03c6dSDamjan Jovanovic private:
75*11c03c6dSDamjan Jovanovic virtual const ::csv::String &
76*11c03c6dSDamjan Jovanovic inq_Name() const = 0;
77*11c03c6dSDamjan Jovanovic virtual const ::csv::String &
78*11c03c6dSDamjan Jovanovic inq_Value() const = 0;
79*11c03c6dSDamjan Jovanovic };
80*11c03c6dSDamjan Jovanovic
81*11c03c6dSDamjan Jovanovic typedef csv::SweList_dyn< Attribute > AttrList;
82*11c03c6dSDamjan Jovanovic
83*11c03c6dSDamjan Jovanovic
84*11c03c6dSDamjan Jovanovic class Element : public Item
85*11c03c6dSDamjan Jovanovic {
86*11c03c6dSDamjan Jovanovic public:
87*11c03c6dSDamjan Jovanovic Element & operator<<( /// For multiple content items.
88*11c03c6dSDamjan Jovanovic DYN Item * let_dpItem );
89*11c03c6dSDamjan Jovanovic Element & operator<<( /// For multiple content items.
90*11c03c6dSDamjan Jovanovic const ::csv::String& let_drText );
91*11c03c6dSDamjan Jovanovic Element & operator<<( /// For multiple content items.
92*11c03c6dSDamjan Jovanovic const char * let_dpText );
93*11c03c6dSDamjan Jovanovic Element & operator<<(
94*11c03c6dSDamjan Jovanovic DYN Attribute * let_dpAttr );
95*11c03c6dSDamjan Jovanovic
96*11c03c6dSDamjan Jovanovic Element & operator>>( /// For multiple content items. @return the child Element.
97*11c03c6dSDamjan Jovanovic DYN Element & let_drElement );
98*11c03c6dSDamjan Jovanovic
99*11c03c6dSDamjan Jovanovic
100*11c03c6dSDamjan Jovanovic Item * SetContent( /// For only one content item.
101*11c03c6dSDamjan Jovanovic DYN Item * let_dpItem ); /// Replaces previous content. May be 0, then all content is deleted.
102*11c03c6dSDamjan Jovanovic private:
103*11c03c6dSDamjan Jovanovic // Interface Item:
104*11c03c6dSDamjan Jovanovic virtual void do_WriteOut(
105*11c03c6dSDamjan Jovanovic csv::bostream & io_aFile ) const;
106*11c03c6dSDamjan Jovanovic // Local
107*11c03c6dSDamjan Jovanovic virtual void op_streamout(
108*11c03c6dSDamjan Jovanovic DYN Item * let_dpItem ) = 0;
109*11c03c6dSDamjan Jovanovic virtual void op_streamout(
110*11c03c6dSDamjan Jovanovic DYN Attribute * let_dpAttr ) = 0;
111*11c03c6dSDamjan Jovanovic
112*11c03c6dSDamjan Jovanovic virtual void do_SetContent(
113*11c03c6dSDamjan Jovanovic DYN Item * let_dpItem ) = 0;
114*11c03c6dSDamjan Jovanovic // Helpers
115*11c03c6dSDamjan Jovanovic virtual const ::csv::String &
116*11c03c6dSDamjan Jovanovic inq_TagName() const = 0;
117*11c03c6dSDamjan Jovanovic virtual const Item *
118*11c03c6dSDamjan Jovanovic inq_Content() const = 0;
119*11c03c6dSDamjan Jovanovic virtual const AttrList *
120*11c03c6dSDamjan Jovanovic inq_Attrs() const = 0;
121*11c03c6dSDamjan Jovanovic
122*11c03c6dSDamjan Jovanovic virtual bool FinishEmptyTag_XmlStyle() const; /// Defaulted to: true
123*11c03c6dSDamjan Jovanovic
124*11c03c6dSDamjan Jovanovic virtual bool LineBreakAfterBeginTag() const; /// Defaulted to: false
125*11c03c6dSDamjan Jovanovic virtual bool LineBreakAfterEndTag() const; /// Defaulted to: true, if LineBreakAfterBeginTag()
126*11c03c6dSDamjan Jovanovic };
127*11c03c6dSDamjan Jovanovic
128*11c03c6dSDamjan Jovanovic class TextContent : public Item
129*11c03c6dSDamjan Jovanovic {
130*11c03c6dSDamjan Jovanovic };
131*11c03c6dSDamjan Jovanovic
132*11c03c6dSDamjan Jovanovic
133*11c03c6dSDamjan Jovanovic /* Implementation simplifiers:
134*11c03c6dSDamjan Jovanovic EmptyElement, PureElement, SglTag
135*11c03c6dSDamjan Jovanovic */
136*11c03c6dSDamjan Jovanovic
137*11c03c6dSDamjan Jovanovic class EmptyElement : public Element
138*11c03c6dSDamjan Jovanovic {
139*11c03c6dSDamjan Jovanovic private:
140*11c03c6dSDamjan Jovanovic // Interface Element:
141*11c03c6dSDamjan Jovanovic virtual void op_streamout( /// does nothing
142*11c03c6dSDamjan Jovanovic DYN Item * let_dpItem );
143*11c03c6dSDamjan Jovanovic virtual void op_streamout(
144*11c03c6dSDamjan Jovanovic DYN Attribute * let_dpAttr );
145*11c03c6dSDamjan Jovanovic virtual void do_SetContent( /// does nothing
146*11c03c6dSDamjan Jovanovic DYN Item * let_dpItem );
147*11c03c6dSDamjan Jovanovic virtual const Item *
148*11c03c6dSDamjan Jovanovic inq_Content() const; /// @return 0
149*11c03c6dSDamjan Jovanovic virtual const AttrList *
150*11c03c6dSDamjan Jovanovic inq_Attrs() const;
151*11c03c6dSDamjan Jovanovic
152*11c03c6dSDamjan Jovanovic // Local
153*11c03c6dSDamjan Jovanovic virtual AttrList & inq_RefAttrs() = 0;
154*11c03c6dSDamjan Jovanovic };
155*11c03c6dSDamjan Jovanovic
156*11c03c6dSDamjan Jovanovic class PureElement : public Element
157*11c03c6dSDamjan Jovanovic {
158*11c03c6dSDamjan Jovanovic private:
159*11c03c6dSDamjan Jovanovic // Interface Element:
160*11c03c6dSDamjan Jovanovic virtual void op_streamout(
161*11c03c6dSDamjan Jovanovic DYN Item * let_dpItem );
162*11c03c6dSDamjan Jovanovic virtual void op_streamout( /// does nothing
163*11c03c6dSDamjan Jovanovic DYN Attribute * let_dpAttr );
164*11c03c6dSDamjan Jovanovic virtual void do_SetContent(
165*11c03c6dSDamjan Jovanovic DYN Item * let_dpItem );
166*11c03c6dSDamjan Jovanovic virtual const Item *
167*11c03c6dSDamjan Jovanovic inq_Content() const;
168*11c03c6dSDamjan Jovanovic virtual const AttrList *
169*11c03c6dSDamjan Jovanovic inq_Attrs() const; /// @return 0
170*11c03c6dSDamjan Jovanovic // Local
171*11c03c6dSDamjan Jovanovic virtual Dyn< Item > &
172*11c03c6dSDamjan Jovanovic inq_RefContent() = 0;
173*11c03c6dSDamjan Jovanovic };
174*11c03c6dSDamjan Jovanovic
175*11c03c6dSDamjan Jovanovic class SglTag : public Element
176*11c03c6dSDamjan Jovanovic {
177*11c03c6dSDamjan Jovanovic private:
178*11c03c6dSDamjan Jovanovic // Interface Element:
179*11c03c6dSDamjan Jovanovic virtual void op_streamout( /// does nothing
180*11c03c6dSDamjan Jovanovic DYN Item * let_dpItem );
181*11c03c6dSDamjan Jovanovic virtual void op_streamout( /// does nothing
182*11c03c6dSDamjan Jovanovic DYN Attribute * let_dpAttr );
183*11c03c6dSDamjan Jovanovic virtual void do_SetContent( /// does nothing
184*11c03c6dSDamjan Jovanovic DYN Item * let_dpItem );
185*11c03c6dSDamjan Jovanovic virtual const Item *
186*11c03c6dSDamjan Jovanovic inq_Content() const; /// @return 0
187*11c03c6dSDamjan Jovanovic virtual const AttrList *
188*11c03c6dSDamjan Jovanovic inq_Attrs() const; /// @return 0
189*11c03c6dSDamjan Jovanovic };
190*11c03c6dSDamjan Jovanovic
191*11c03c6dSDamjan Jovanovic
192*11c03c6dSDamjan Jovanovic
193*11c03c6dSDamjan Jovanovic /* Standard Element implementations, if there are not any
194*11c03c6dSDamjan Jovanovic specialized ones.
195*11c03c6dSDamjan Jovanovic */
196*11c03c6dSDamjan Jovanovic
197*11c03c6dSDamjan Jovanovic class AnElement : public Element
198*11c03c6dSDamjan Jovanovic {
199*11c03c6dSDamjan Jovanovic public:
200*11c03c6dSDamjan Jovanovic AnElement(
201*11c03c6dSDamjan Jovanovic const ::csv::String& i_sTagName );
202*11c03c6dSDamjan Jovanovic AnElement(
203*11c03c6dSDamjan Jovanovic const char * i_sTagName );
204*11c03c6dSDamjan Jovanovic ~AnElement();
205*11c03c6dSDamjan Jovanovic private:
206*11c03c6dSDamjan Jovanovic // Interface Element
207*11c03c6dSDamjan Jovanovic virtual void op_streamout(
208*11c03c6dSDamjan Jovanovic DYN Item * let_dpItem );
209*11c03c6dSDamjan Jovanovic virtual void op_streamout(
210*11c03c6dSDamjan Jovanovic DYN Attribute * let_dpAttr );
211*11c03c6dSDamjan Jovanovic virtual void do_SetContent(
212*11c03c6dSDamjan Jovanovic DYN Item * let_dpItem );
213*11c03c6dSDamjan Jovanovic virtual const ::csv::String &
214*11c03c6dSDamjan Jovanovic inq_TagName() const;
215*11c03c6dSDamjan Jovanovic virtual const Item *
216*11c03c6dSDamjan Jovanovic inq_Content() const;
217*11c03c6dSDamjan Jovanovic virtual const AttrList *
218*11c03c6dSDamjan Jovanovic inq_Attrs() const;
219*11c03c6dSDamjan Jovanovic // DATA
220*11c03c6dSDamjan Jovanovic ::csv::String sTagName;
221*11c03c6dSDamjan Jovanovic Dyn< Item > pContent;
222*11c03c6dSDamjan Jovanovic AttrList aAttrs;
223*11c03c6dSDamjan Jovanovic };
224*11c03c6dSDamjan Jovanovic
225*11c03c6dSDamjan Jovanovic
226*11c03c6dSDamjan Jovanovic class AnEmptyElement : public EmptyElement
227*11c03c6dSDamjan Jovanovic {
228*11c03c6dSDamjan Jovanovic public:
229*11c03c6dSDamjan Jovanovic AnEmptyElement(
230*11c03c6dSDamjan Jovanovic const ::csv::String & i_sTagName );
231*11c03c6dSDamjan Jovanovic AnEmptyElement(
232*11c03c6dSDamjan Jovanovic const char * i_sTagName );
233*11c03c6dSDamjan Jovanovic ~AnEmptyElement();
234*11c03c6dSDamjan Jovanovic private:
235*11c03c6dSDamjan Jovanovic // Interface Element:
236*11c03c6dSDamjan Jovanovic virtual const ::csv::String &
237*11c03c6dSDamjan Jovanovic inq_TagName() const;
238*11c03c6dSDamjan Jovanovic // Interface EmptyElement:
239*11c03c6dSDamjan Jovanovic virtual AttrList & inq_RefAttrs();
240*11c03c6dSDamjan Jovanovic
241*11c03c6dSDamjan Jovanovic // DATA
242*11c03c6dSDamjan Jovanovic ::csv::String sTagName;
243*11c03c6dSDamjan Jovanovic AttrList aAttrs;
244*11c03c6dSDamjan Jovanovic };
245*11c03c6dSDamjan Jovanovic
246*11c03c6dSDamjan Jovanovic class APureElement : public PureElement
247*11c03c6dSDamjan Jovanovic {
248*11c03c6dSDamjan Jovanovic public:
249*11c03c6dSDamjan Jovanovic APureElement(
250*11c03c6dSDamjan Jovanovic const ::csv::String & i_sTagName );
251*11c03c6dSDamjan Jovanovic APureElement(
252*11c03c6dSDamjan Jovanovic const char * i_sTagName );
253*11c03c6dSDamjan Jovanovic ~APureElement();
254*11c03c6dSDamjan Jovanovic private:
255*11c03c6dSDamjan Jovanovic // Interface Element:
256*11c03c6dSDamjan Jovanovic virtual const ::csv::String &
257*11c03c6dSDamjan Jovanovic inq_TagName() const;
258*11c03c6dSDamjan Jovanovic // Interface PureElement:
259*11c03c6dSDamjan Jovanovic virtual Dyn< Item > &
260*11c03c6dSDamjan Jovanovic inq_RefContent();
261*11c03c6dSDamjan Jovanovic // DATA
262*11c03c6dSDamjan Jovanovic ::csv::String sTagName;
263*11c03c6dSDamjan Jovanovic Dyn< Item > pContent;
264*11c03c6dSDamjan Jovanovic };
265*11c03c6dSDamjan Jovanovic
266*11c03c6dSDamjan Jovanovic class ASglTag : public SglTag
267*11c03c6dSDamjan Jovanovic {
268*11c03c6dSDamjan Jovanovic public:
269*11c03c6dSDamjan Jovanovic ASglTag(
270*11c03c6dSDamjan Jovanovic const ::csv::String & i_sTagName );
271*11c03c6dSDamjan Jovanovic ASglTag(
272*11c03c6dSDamjan Jovanovic const char * i_sTagName );
273*11c03c6dSDamjan Jovanovic ~ASglTag();
274*11c03c6dSDamjan Jovanovic private:
275*11c03c6dSDamjan Jovanovic // Interface Element:
276*11c03c6dSDamjan Jovanovic virtual const ::csv::String &
277*11c03c6dSDamjan Jovanovic inq_TagName() const;
278*11c03c6dSDamjan Jovanovic // DATA
279*11c03c6dSDamjan Jovanovic ::csv::String sTagName;
280*11c03c6dSDamjan Jovanovic };
281*11c03c6dSDamjan Jovanovic
282*11c03c6dSDamjan Jovanovic
283*11c03c6dSDamjan Jovanovic /* Standard Attribute implementation
284*11c03c6dSDamjan Jovanovic */
285*11c03c6dSDamjan Jovanovic class AnAttribute : public Attribute
286*11c03c6dSDamjan Jovanovic {
287*11c03c6dSDamjan Jovanovic public:
288*11c03c6dSDamjan Jovanovic AnAttribute(
289*11c03c6dSDamjan Jovanovic const ::csv::String & i_sName,
290*11c03c6dSDamjan Jovanovic const ::csv::String & i_sValue );
291*11c03c6dSDamjan Jovanovic AnAttribute(
292*11c03c6dSDamjan Jovanovic const char * i_sName,
293*11c03c6dSDamjan Jovanovic const char * i_sValue );
294*11c03c6dSDamjan Jovanovic ~AnAttribute();
295*11c03c6dSDamjan Jovanovic private:
296*11c03c6dSDamjan Jovanovic // Interface Attribute:
297*11c03c6dSDamjan Jovanovic virtual const ::csv::String &
298*11c03c6dSDamjan Jovanovic inq_Name() const;
299*11c03c6dSDamjan Jovanovic virtual const ::csv::String &
300*11c03c6dSDamjan Jovanovic inq_Value() const;
301*11c03c6dSDamjan Jovanovic // DATA
302*11c03c6dSDamjan Jovanovic ::csv::String sName;
303*11c03c6dSDamjan Jovanovic ::csv::String sValue;
304*11c03c6dSDamjan Jovanovic };
305*11c03c6dSDamjan Jovanovic
306*11c03c6dSDamjan Jovanovic
307*11c03c6dSDamjan Jovanovic
308*11c03c6dSDamjan Jovanovic /* Implementations of TextContent:
309*11c03c6dSDamjan Jovanovic
310*11c03c6dSDamjan Jovanovic Text ( reserved characters will be replaced and appear unchanged )
311*11c03c6dSDamjan Jovanovic XmlCode ( reserved characters stay and are interpreted
312*11c03c6dSDamjan Jovanovic by the XML-viewer )
313*11c03c6dSDamjan Jovanovic */
314*11c03c6dSDamjan Jovanovic class Text : public TextContent
315*11c03c6dSDamjan Jovanovic {
316*11c03c6dSDamjan Jovanovic public:
317*11c03c6dSDamjan Jovanovic Text(
318*11c03c6dSDamjan Jovanovic const ::csv::String & i_sText );
319*11c03c6dSDamjan Jovanovic Text(
320*11c03c6dSDamjan Jovanovic const char * i_sText );
321*11c03c6dSDamjan Jovanovic ~Text();
322*11c03c6dSDamjan Jovanovic private:
323*11c03c6dSDamjan Jovanovic virtual void do_WriteOut(
324*11c03c6dSDamjan Jovanovic csv::bostream & io_aFile ) const;
325*11c03c6dSDamjan Jovanovic // DATA
326*11c03c6dSDamjan Jovanovic ::csv::String sText;
327*11c03c6dSDamjan Jovanovic };
328*11c03c6dSDamjan Jovanovic
329*11c03c6dSDamjan Jovanovic
330*11c03c6dSDamjan Jovanovic class XmlCode : public TextContent
331*11c03c6dSDamjan Jovanovic {
332*11c03c6dSDamjan Jovanovic public:
333*11c03c6dSDamjan Jovanovic XmlCode(
334*11c03c6dSDamjan Jovanovic const ::csv::String & i_sText );
335*11c03c6dSDamjan Jovanovic XmlCode(
336*11c03c6dSDamjan Jovanovic const char * i_sText );
337*11c03c6dSDamjan Jovanovic ~XmlCode();
338*11c03c6dSDamjan Jovanovic private:
339*11c03c6dSDamjan Jovanovic virtual void do_WriteOut(
340*11c03c6dSDamjan Jovanovic csv::bostream & io_aFile ) const;
341*11c03c6dSDamjan Jovanovic // DATA
342*11c03c6dSDamjan Jovanovic ::csv::String sText;
343*11c03c6dSDamjan Jovanovic };
344*11c03c6dSDamjan Jovanovic
345*11c03c6dSDamjan Jovanovic
346*11c03c6dSDamjan Jovanovic
347*11c03c6dSDamjan Jovanovic // IMPLEMENTATION
348*11c03c6dSDamjan Jovanovic
349*11c03c6dSDamjan Jovanovic inline void
WriteOut(csv::bostream & io_aFile) const350*11c03c6dSDamjan Jovanovic Item::WriteOut( csv::bostream & io_aFile ) const
351*11c03c6dSDamjan Jovanovic { do_WriteOut(io_aFile); }
352*11c03c6dSDamjan Jovanovic
353*11c03c6dSDamjan Jovanovic inline const ::csv::String &
Name() const354*11c03c6dSDamjan Jovanovic Attribute::Name() const
355*11c03c6dSDamjan Jovanovic { return inq_Name(); }
356*11c03c6dSDamjan Jovanovic inline const ::csv::String &
Value() const357*11c03c6dSDamjan Jovanovic Attribute::Value() const
358*11c03c6dSDamjan Jovanovic { return inq_Value(); }
359*11c03c6dSDamjan Jovanovic
360*11c03c6dSDamjan Jovanovic inline Element &
operator <<(DYN Item * let_dpItem)361*11c03c6dSDamjan Jovanovic Element::operator<<( DYN Item * let_dpItem )
362*11c03c6dSDamjan Jovanovic { op_streamout(let_dpItem); return *this; }
363*11c03c6dSDamjan Jovanovic inline Element &
operator <<(const::csv::String & let_drText)364*11c03c6dSDamjan Jovanovic Element::operator<<( const ::csv::String & let_drText )
365*11c03c6dSDamjan Jovanovic { op_streamout( new Text(let_drText) ); return *this; }
366*11c03c6dSDamjan Jovanovic inline Element &
operator <<(const char * let_drText)367*11c03c6dSDamjan Jovanovic Element::operator<<( const char * let_drText )
368*11c03c6dSDamjan Jovanovic { op_streamout( new Text(let_drText) ); return *this; }
369*11c03c6dSDamjan Jovanovic inline Element &
operator <<(DYN Attribute * let_dpAttr)370*11c03c6dSDamjan Jovanovic Element::operator<<( DYN Attribute * let_dpAttr )
371*11c03c6dSDamjan Jovanovic { op_streamout(let_dpAttr); return *this; }
372*11c03c6dSDamjan Jovanovic inline Element &
operator >>(DYN Element & let_drElement)373*11c03c6dSDamjan Jovanovic Element::operator>>( DYN Element & let_drElement )
374*11c03c6dSDamjan Jovanovic { op_streamout(&let_drElement); return let_drElement; }
375*11c03c6dSDamjan Jovanovic inline Item *
SetContent(DYN Item * let_dpItem)376*11c03c6dSDamjan Jovanovic Element::SetContent( DYN Item * let_dpItem )
377*11c03c6dSDamjan Jovanovic { do_SetContent(let_dpItem); return let_dpItem; }
378*11c03c6dSDamjan Jovanovic
379*11c03c6dSDamjan Jovanovic
380*11c03c6dSDamjan Jovanovic } // namespace xml
381*11c03c6dSDamjan Jovanovic } // namespace csi
382*11c03c6dSDamjan Jovanovic
383*11c03c6dSDamjan Jovanovic #endif
384