Crazy Eddie's GUI System  0.8.5
CEGUI::XMLSerializer Class Reference

Class used to create XML Document. More...

+ Inheritance diagram for CEGUI::XMLSerializer:
+ Collaboration diagram for CEGUI::XMLSerializer:

Public Member Functions

 XMLSerializer (OutStream &out, size_t indentSpace=4)
 XMLSerializer constructor. More...
 
virtual ~XMLSerializer (void)
 XMLSerializer destructor.
 
XMLSerializeropenTag (const String &name)
 Start a new tag in the xml document. More...
 
XMLSerializercloseTag (void)
 Close the current tag. More...
 
XMLSerializerattribute (const String &name, const String &value)
 After an opening tag you can populate attribute list with this function. More...
 
XMLSerializertext (const String &text)
 Create a text node. More...
 
unsigned int getTagCount () const
 report the nimber of tags created in the document More...
 
 operator bool () const
 Check wether the XML Serializer status is valid. More...
 
bool operator! () const
 Check wether the XML Serializer status is invalid. More...
 

Detailed Description

Class used to create XML Document.

This class hides the complexity of formatting valid XML files. The class provides automatic substitution of entities, XML indenting in respect of the spaces. It does not contains any codes specific to CEGUI taking appart the CEGUI::String class. The following example show the code needed to exports parts of an XML document similar to what can be found in a layout.

#include <iostream>
#include <CEGUI/XMLSerializer.h>
int main()
{
// Create an encoder that outputs its result on standard output
XMLSerializer xml(std::cout, 4);
xml.openTag("Window")
.attribute("Type", "TaharezLook/StaticText")
.attribute("Name", "Test")
.openTag("Property")
.attribute("Name", "Text")
.text("This is the static text to be displayed")
.closeTag()
.openTag("Window")
.attribute("Name", "Button")
.attribute("Type", "Vanilla/Button")
.openTag("Property")
.attribute("Name", "Text")
.attribute("Value", "Push me")
.closeTag()
.closeTag()
.closeTag();
if (xml)
{
std::cout << "XML Exported successfully" << std::endl;
}
return 0;
}

Constructor & Destructor Documentation

CEGUI::XMLSerializer::XMLSerializer ( OutStream out,
size_t  indentSpace = 4 
)

XMLSerializer constructor.

Parameters
outThe stream to use to export the result
indentSpaceThe indentation level (0 to disable indentation)

Member Function Documentation

XMLSerializer& CEGUI::XMLSerializer::attribute ( const String name,
const String value 
)

After an opening tag you can populate attribute list with this function.

Parameters
nameThe name of the attribute
valueThe value of the attribute
Returns
A reference to the current object for chaining operation
XMLSerializer& CEGUI::XMLSerializer::closeTag ( void  )

Close the current tag.

Returns
A reference to the current object for chaining operation
unsigned int CEGUI::XMLSerializer::getTagCount ( ) const

report the nimber of tags created in the document

Returns
return the number of tag created in the document
XMLSerializer& CEGUI::XMLSerializer::openTag ( const String name)

Start a new tag in the xml document.

Parameters
nameThe name of the tag
Returns
A reference to the current object for chaining operation

Referenced by CEGUI::PropertyDefinition< T >::writeDefinitionXMLElementType(), and CEGUI::PropertyLinkDefinition< T >::writeDefinitionXMLElementType().

CEGUI::XMLSerializer::operator bool ( ) const
inline

Check wether the XML Serializer status is valid.

Returns
True if all previous operations where successfull
bool CEGUI::XMLSerializer::operator! ( ) const
inline

Check wether the XML Serializer status is invalid.

Returns
True if one operations failed
XMLSerializer& CEGUI::XMLSerializer::text ( const String text)

Create a text node.

Parameters
textthe content of the node
Returns
A reference to the current object for chaining operation