46 #ifndef XSPF_XML_FORMATTER_H 47 #define XSPF_XML_FORMATTER_H 64 struct XspfNamespaceRegistrationUndo {
74 XspfNamespaceRegistrationUndo(
int level, XML_Char
const * uri)
75 : level(level), uri(uri) {
84 class XspfXmlFormatterPrivate;
94 XspfXmlFormatterPrivate *
const d;
126 virtual void writeXmlDeclaration();
136 XML_Char
const * getPrefix(XML_Char
const * nsUri)
const;
146 XML_Char * makeFullName(XML_Char
const * nsUri,
147 XML_Char
const * localName)
const;
153 void cleanupNamespaceRegs();
162 bool registerNamespace(XML_Char
const * uri,
163 XML_Char
const * prefixSuggestion);
171 void setOutput(std::basic_ostringstream<XML_Char> & output);
182 void writeStart(XML_Char
const * ns, XML_Char
const * localName,
183 XML_Char
const *
const * atts, XML_Char
const *
const * nsRegs = NULL);
192 void writeEnd(XML_Char
const * ns, XML_Char
const * localName);
201 void writeHomeStart(XML_Char
const * localName,
202 XML_Char
const *
const * atts, XML_Char
const *
const * nsRegs = NULL);
209 void writeHomeEnd(XML_Char
const * localName);
221 virtual void writeStart(XML_Char
const * name,
222 XML_Char
const *
const * atts) = 0;
229 virtual void writeEnd(XML_Char
const * name) = 0;
237 virtual void writeBody(XML_Char
const * text) = 0;
244 virtual void writeBody(
int number) = 0;
251 void writeCharacterData(XML_Char
const * data);
259 std::basic_ostringstream<XML_Char> * & getOutput();
262 void virtualHook(
int methodId,
void * parameters);
272 #endif // XSPF_XML_FORMATTER_H