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