xmlwriter.h 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459
  1. /*
  2. * Summary: text writing API for XML
  3. * Description: text writing API for XML
  4. *
  5. * Copy: See Copyright for the status of this software.
  6. *
  7. * Author: Alfred Mickautsch <[email protected]>
  8. */
  9. #ifndef __XML_XMLWRITER_H__
  10. #define __XML_XMLWRITER_H__
  11. #include <libxml/xmlversion.h>
  12. #ifdef LIBXML_WRITER_ENABLED
  13. #include <stdarg.h>
  14. #include <libxml/xmlIO.h>
  15. #include <libxml/list.h>
  16. #include <libxml/xmlstring.h>
  17. #ifdef __cplusplus
  18. extern "C" {
  19. #endif
  20. typedef struct _xmlTextWriter xmlTextWriter;
  21. typedef xmlTextWriter *xmlTextWriterPtr;
  22. /*
  23. * Constructors & Destructor
  24. */
  25. XMLPUBFUN xmlTextWriterPtr XMLCALL
  26. xmlNewTextWriter(xmlOutputBufferPtr out);
  27. XMLPUBFUN xmlTextWriterPtr XMLCALL
  28. xmlNewTextWriterFilename(const char *uri, int compression);
  29. XMLPUBFUN xmlTextWriterPtr XMLCALL
  30. xmlNewTextWriterMemory(xmlBufferPtr buf, int compression);
  31. XMLPUBFUN xmlTextWriterPtr XMLCALL
  32. xmlNewTextWriterPushParser(xmlParserCtxtPtr ctxt, int compression);
  33. XMLPUBFUN xmlTextWriterPtr XMLCALL
  34. xmlNewTextWriterDoc(xmlDocPtr * doc, int compression);
  35. XMLPUBFUN xmlTextWriterPtr XMLCALL
  36. xmlNewTextWriterTree(xmlDocPtr doc, xmlNodePtr node,
  37. int compression);
  38. XMLPUBFUN void XMLCALL xmlFreeTextWriter(xmlTextWriterPtr writer);
  39. /*
  40. * Functions
  41. */
  42. /*
  43. * Document
  44. */
  45. XMLPUBFUN int XMLCALL
  46. xmlTextWriterStartDocument(xmlTextWriterPtr writer,
  47. const char *version,
  48. const char *encoding,
  49. const char *standalone);
  50. XMLPUBFUN int XMLCALL xmlTextWriterEndDocument(xmlTextWriterPtr
  51. writer);
  52. /*
  53. * Comments
  54. */
  55. XMLPUBFUN int XMLCALL xmlTextWriterStartComment(xmlTextWriterPtr
  56. writer);
  57. XMLPUBFUN int XMLCALL xmlTextWriterEndComment(xmlTextWriterPtr writer);
  58. XMLPUBFUN int XMLCALL
  59. xmlTextWriterWriteFormatComment(xmlTextWriterPtr writer,
  60. const char *format, ...);
  61. XMLPUBFUN int XMLCALL
  62. xmlTextWriterWriteVFormatComment(xmlTextWriterPtr writer,
  63. const char *format,
  64. va_list argptr);
  65. XMLPUBFUN int XMLCALL xmlTextWriterWriteComment(xmlTextWriterPtr
  66. writer,
  67. const xmlChar *
  68. content);
  69. /*
  70. * Elements
  71. */
  72. XMLPUBFUN int XMLCALL
  73. xmlTextWriterStartElement(xmlTextWriterPtr writer,
  74. const xmlChar * name);
  75. XMLPUBFUN int XMLCALL xmlTextWriterStartElementNS(xmlTextWriterPtr
  76. writer,
  77. const xmlChar *
  78. prefix,
  79. const xmlChar * name,
  80. const xmlChar *
  81. namespaceURI);
  82. XMLPUBFUN int XMLCALL xmlTextWriterEndElement(xmlTextWriterPtr writer);
  83. XMLPUBFUN int XMLCALL xmlTextWriterFullEndElement(xmlTextWriterPtr
  84. writer);
  85. /*
  86. * Elements conveniency functions
  87. */
  88. XMLPUBFUN int XMLCALL
  89. xmlTextWriterWriteFormatElement(xmlTextWriterPtr writer,
  90. const xmlChar * name,
  91. const char *format, ...);
  92. XMLPUBFUN int XMLCALL
  93. xmlTextWriterWriteVFormatElement(xmlTextWriterPtr writer,
  94. const xmlChar * name,
  95. const char *format,
  96. va_list argptr);
  97. XMLPUBFUN int XMLCALL xmlTextWriterWriteElement(xmlTextWriterPtr
  98. writer,
  99. const xmlChar * name,
  100. const xmlChar *
  101. content);
  102. XMLPUBFUN int XMLCALL
  103. xmlTextWriterWriteFormatElementNS(xmlTextWriterPtr writer,
  104. const xmlChar * prefix,
  105. const xmlChar * name,
  106. const xmlChar * namespaceURI,
  107. const char *format, ...);
  108. XMLPUBFUN int XMLCALL
  109. xmlTextWriterWriteVFormatElementNS(xmlTextWriterPtr writer,
  110. const xmlChar * prefix,
  111. const xmlChar * name,
  112. const xmlChar * namespaceURI,
  113. const char *format,
  114. va_list argptr);
  115. XMLPUBFUN int XMLCALL xmlTextWriterWriteElementNS(xmlTextWriterPtr
  116. writer,
  117. const xmlChar *
  118. prefix,
  119. const xmlChar * name,
  120. const xmlChar *
  121. namespaceURI,
  122. const xmlChar *
  123. content);
  124. /*
  125. * Text
  126. */
  127. XMLPUBFUN int XMLCALL
  128. xmlTextWriterWriteFormatRaw(xmlTextWriterPtr writer,
  129. const char *format, ...);
  130. XMLPUBFUN int XMLCALL
  131. xmlTextWriterWriteVFormatRaw(xmlTextWriterPtr writer,
  132. const char *format, va_list argptr);
  133. XMLPUBFUN int XMLCALL
  134. xmlTextWriterWriteRawLen(xmlTextWriterPtr writer,
  135. const xmlChar * content, int len);
  136. XMLPUBFUN int XMLCALL
  137. xmlTextWriterWriteRaw(xmlTextWriterPtr writer,
  138. const xmlChar * content);
  139. XMLPUBFUN int XMLCALL xmlTextWriterWriteFormatString(xmlTextWriterPtr
  140. writer,
  141. const char
  142. *format, ...);
  143. XMLPUBFUN int XMLCALL xmlTextWriterWriteVFormatString(xmlTextWriterPtr
  144. writer,
  145. const char
  146. *format,
  147. va_list argptr);
  148. XMLPUBFUN int XMLCALL xmlTextWriterWriteString(xmlTextWriterPtr writer,
  149. const xmlChar *
  150. content);
  151. XMLPUBFUN int XMLCALL xmlTextWriterWriteBase64(xmlTextWriterPtr writer,
  152. const char *data,
  153. int start, int len);
  154. XMLPUBFUN int XMLCALL xmlTextWriterWriteBinHex(xmlTextWriterPtr writer,
  155. const char *data,
  156. int start, int len);
  157. /*
  158. * Attributes
  159. */
  160. XMLPUBFUN int XMLCALL
  161. xmlTextWriterStartAttribute(xmlTextWriterPtr writer,
  162. const xmlChar * name);
  163. XMLPUBFUN int XMLCALL xmlTextWriterStartAttributeNS(xmlTextWriterPtr
  164. writer,
  165. const xmlChar *
  166. prefix,
  167. const xmlChar *
  168. name,
  169. const xmlChar *
  170. namespaceURI);
  171. XMLPUBFUN int XMLCALL xmlTextWriterEndAttribute(xmlTextWriterPtr
  172. writer);
  173. /*
  174. * Attributes conveniency functions
  175. */
  176. XMLPUBFUN int XMLCALL
  177. xmlTextWriterWriteFormatAttribute(xmlTextWriterPtr writer,
  178. const xmlChar * name,
  179. const char *format, ...);
  180. XMLPUBFUN int XMLCALL
  181. xmlTextWriterWriteVFormatAttribute(xmlTextWriterPtr writer,
  182. const xmlChar * name,
  183. const char *format,
  184. va_list argptr);
  185. XMLPUBFUN int XMLCALL xmlTextWriterWriteAttribute(xmlTextWriterPtr
  186. writer,
  187. const xmlChar * name,
  188. const xmlChar *
  189. content);
  190. XMLPUBFUN int XMLCALL
  191. xmlTextWriterWriteFormatAttributeNS(xmlTextWriterPtr writer,
  192. const xmlChar * prefix,
  193. const xmlChar * name,
  194. const xmlChar * namespaceURI,
  195. const char *format, ...);
  196. XMLPUBFUN int XMLCALL
  197. xmlTextWriterWriteVFormatAttributeNS(xmlTextWriterPtr writer,
  198. const xmlChar * prefix,
  199. const xmlChar * name,
  200. const xmlChar * namespaceURI,
  201. const char *format,
  202. va_list argptr);
  203. XMLPUBFUN int XMLCALL xmlTextWriterWriteAttributeNS(xmlTextWriterPtr
  204. writer,
  205. const xmlChar *
  206. prefix,
  207. const xmlChar *
  208. name,
  209. const xmlChar *
  210. namespaceURI,
  211. const xmlChar *
  212. content);
  213. /*
  214. * PI's
  215. */
  216. XMLPUBFUN int XMLCALL
  217. xmlTextWriterStartPI(xmlTextWriterPtr writer,
  218. const xmlChar * target);
  219. XMLPUBFUN int XMLCALL xmlTextWriterEndPI(xmlTextWriterPtr writer);
  220. /*
  221. * PI conveniency functions
  222. */
  223. XMLPUBFUN int XMLCALL
  224. xmlTextWriterWriteFormatPI(xmlTextWriterPtr writer,
  225. const xmlChar * target,
  226. const char *format, ...);
  227. XMLPUBFUN int XMLCALL
  228. xmlTextWriterWriteVFormatPI(xmlTextWriterPtr writer,
  229. const xmlChar * target,
  230. const char *format, va_list argptr);
  231. XMLPUBFUN int XMLCALL
  232. xmlTextWriterWritePI(xmlTextWriterPtr writer,
  233. const xmlChar * target,
  234. const xmlChar * content);
  235. /**
  236. * xmlTextWriterWriteProcessingInstruction:
  237. *
  238. * This macro maps to xmlTextWriterWritePI
  239. */
  240. #define xmlTextWriterWriteProcessingInstruction xmlTextWriterWritePI
  241. /*
  242. * CDATA
  243. */
  244. XMLPUBFUN int XMLCALL xmlTextWriterStartCDATA(xmlTextWriterPtr writer);
  245. XMLPUBFUN int XMLCALL xmlTextWriterEndCDATA(xmlTextWriterPtr writer);
  246. /*
  247. * CDATA conveniency functions
  248. */
  249. XMLPUBFUN int XMLCALL
  250. xmlTextWriterWriteFormatCDATA(xmlTextWriterPtr writer,
  251. const char *format, ...);
  252. XMLPUBFUN int XMLCALL
  253. xmlTextWriterWriteVFormatCDATA(xmlTextWriterPtr writer,
  254. const char *format, va_list argptr);
  255. XMLPUBFUN int XMLCALL
  256. xmlTextWriterWriteCDATA(xmlTextWriterPtr writer,
  257. const xmlChar * content);
  258. /*
  259. * DTD
  260. */
  261. XMLPUBFUN int XMLCALL
  262. xmlTextWriterStartDTD(xmlTextWriterPtr writer,
  263. const xmlChar * name,
  264. const xmlChar * pubid,
  265. const xmlChar * sysid);
  266. XMLPUBFUN int XMLCALL xmlTextWriterEndDTD(xmlTextWriterPtr writer);
  267. /*
  268. * DTD conveniency functions
  269. */
  270. XMLPUBFUN int XMLCALL
  271. xmlTextWriterWriteFormatDTD(xmlTextWriterPtr writer,
  272. const xmlChar * name,
  273. const xmlChar * pubid,
  274. const xmlChar * sysid,
  275. const char *format, ...);
  276. XMLPUBFUN int XMLCALL
  277. xmlTextWriterWriteVFormatDTD(xmlTextWriterPtr writer,
  278. const xmlChar * name,
  279. const xmlChar * pubid,
  280. const xmlChar * sysid,
  281. const char *format, va_list argptr);
  282. XMLPUBFUN int XMLCALL
  283. xmlTextWriterWriteDTD(xmlTextWriterPtr writer,
  284. const xmlChar * name,
  285. const xmlChar * pubid,
  286. const xmlChar * sysid,
  287. const xmlChar * subset);
  288. /**
  289. * xmlTextWriterWriteDocType:
  290. *
  291. * this macro maps to xmlTextWriterWriteDTD
  292. */
  293. #define xmlTextWriterWriteDocType xmlTextWriterWriteDTD
  294. /*
  295. * DTD element definition
  296. */
  297. XMLPUBFUN int XMLCALL
  298. xmlTextWriterStartDTDElement(xmlTextWriterPtr writer,
  299. const xmlChar * name);
  300. XMLPUBFUN int XMLCALL xmlTextWriterEndDTDElement(xmlTextWriterPtr
  301. writer);
  302. /*
  303. * DTD element definition conveniency functions
  304. */
  305. XMLPUBFUN int XMLCALL
  306. xmlTextWriterWriteFormatDTDElement(xmlTextWriterPtr writer,
  307. const xmlChar * name,
  308. const char *format, ...);
  309. XMLPUBFUN int XMLCALL
  310. xmlTextWriterWriteVFormatDTDElement(xmlTextWriterPtr writer,
  311. const xmlChar * name,
  312. const char *format,
  313. va_list argptr);
  314. XMLPUBFUN int XMLCALL xmlTextWriterWriteDTDElement(xmlTextWriterPtr
  315. writer,
  316. const xmlChar *
  317. name,
  318. const xmlChar *
  319. content);
  320. /*
  321. * DTD attribute list definition
  322. */
  323. XMLPUBFUN int XMLCALL
  324. xmlTextWriterStartDTDAttlist(xmlTextWriterPtr writer,
  325. const xmlChar * name);
  326. XMLPUBFUN int XMLCALL xmlTextWriterEndDTDAttlist(xmlTextWriterPtr
  327. writer);
  328. /*
  329. * DTD attribute list definition conveniency functions
  330. */
  331. XMLPUBFUN int XMLCALL
  332. xmlTextWriterWriteFormatDTDAttlist(xmlTextWriterPtr writer,
  333. const xmlChar * name,
  334. const char *format, ...);
  335. XMLPUBFUN int XMLCALL
  336. xmlTextWriterWriteVFormatDTDAttlist(xmlTextWriterPtr writer,
  337. const xmlChar * name,
  338. const char *format,
  339. va_list argptr);
  340. XMLPUBFUN int XMLCALL xmlTextWriterWriteDTDAttlist(xmlTextWriterPtr
  341. writer,
  342. const xmlChar *
  343. name,
  344. const xmlChar *
  345. content);
  346. /*
  347. * DTD entity definition
  348. */
  349. XMLPUBFUN int XMLCALL
  350. xmlTextWriterStartDTDEntity(xmlTextWriterPtr writer,
  351. int pe, const xmlChar * name);
  352. XMLPUBFUN int XMLCALL xmlTextWriterEndDTDEntity(xmlTextWriterPtr
  353. writer);
  354. /*
  355. * DTD entity definition conveniency functions
  356. */
  357. XMLPUBFUN int XMLCALL
  358. xmlTextWriterWriteFormatDTDInternalEntity(xmlTextWriterPtr writer,
  359. int pe,
  360. const xmlChar * name,
  361. const char *format, ...);
  362. XMLPUBFUN int XMLCALL
  363. xmlTextWriterWriteVFormatDTDInternalEntity(xmlTextWriterPtr writer,
  364. int pe,
  365. const xmlChar * name,
  366. const char *format,
  367. va_list argptr);
  368. XMLPUBFUN int XMLCALL
  369. xmlTextWriterWriteDTDInternalEntity(xmlTextWriterPtr writer,
  370. int pe,
  371. const xmlChar * name,
  372. const xmlChar * content);
  373. XMLPUBFUN int XMLCALL
  374. xmlTextWriterWriteDTDExternalEntity(xmlTextWriterPtr writer,
  375. int pe,
  376. const xmlChar * name,
  377. const xmlChar * pubid,
  378. const xmlChar * sysid,
  379. const xmlChar * ndataid);
  380. XMLPUBFUN int XMLCALL
  381. xmlTextWriterWriteDTDExternalEntityContents(xmlTextWriterPtr
  382. writer,
  383. const xmlChar * pubid,
  384. const xmlChar * sysid,
  385. const xmlChar *
  386. ndataid);
  387. XMLPUBFUN int XMLCALL xmlTextWriterWriteDTDEntity(xmlTextWriterPtr
  388. writer, int pe,
  389. const xmlChar * name,
  390. const xmlChar *
  391. pubid,
  392. const xmlChar *
  393. sysid,
  394. const xmlChar *
  395. ndataid,
  396. const xmlChar *
  397. content);
  398. /*
  399. * DTD notation definition
  400. */
  401. XMLPUBFUN int XMLCALL
  402. xmlTextWriterWriteDTDNotation(xmlTextWriterPtr writer,
  403. const xmlChar * name,
  404. const xmlChar * pubid,
  405. const xmlChar * sysid);
  406. /*
  407. * Indentation
  408. */
  409. XMLPUBFUN int XMLCALL
  410. xmlTextWriterSetIndent(xmlTextWriterPtr writer, int indent);
  411. XMLPUBFUN int XMLCALL
  412. xmlTextWriterSetIndentString(xmlTextWriterPtr writer,
  413. const xmlChar * str);
  414. /*
  415. * misc
  416. */
  417. XMLPUBFUN int XMLCALL xmlTextWriterFlush(xmlTextWriterPtr writer);
  418. #ifdef __cplusplus
  419. }
  420. #endif
  421. #endif /* LIBXML_WRITER_ENABLED */
  422. #endif /* __XML_XMLWRITER_H__ */