Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-02-22 10:41:52

0001 /*
0002  * Summary: text writing API for XML
0003  * Description: text writing API for XML
0004  *
0005  * Copy: See Copyright for the status of this software.
0006  *
0007  * Author: Alfred Mickautsch <alfred@mickautsch.de>
0008  */
0009 
0010 #ifndef __XML_XMLWRITER_H__
0011 #define __XML_XMLWRITER_H__
0012 
0013 #include <libxml/xmlversion.h>
0014 
0015 #ifdef LIBXML_WRITER_ENABLED
0016 
0017 #include <stdarg.h>
0018 #include <libxml/xmlIO.h>
0019 #include <libxml/list.h>
0020 #include <libxml/xmlstring.h>
0021 
0022 #ifdef __cplusplus
0023 extern "C" {
0024 #endif
0025 
0026     typedef struct _xmlTextWriter xmlTextWriter;
0027     typedef xmlTextWriter *xmlTextWriterPtr;
0028 
0029 /*
0030  * Constructors & Destructor
0031  */
0032     XMLPUBFUN xmlTextWriterPtr
0033         xmlNewTextWriter(xmlOutputBufferPtr out);
0034     XMLPUBFUN xmlTextWriterPtr
0035         xmlNewTextWriterFilename(const char *uri, int compression);
0036     XMLPUBFUN xmlTextWriterPtr
0037         xmlNewTextWriterMemory(xmlBufferPtr buf, int compression);
0038     XMLPUBFUN xmlTextWriterPtr
0039         xmlNewTextWriterPushParser(xmlParserCtxtPtr ctxt, int compression);
0040     XMLPUBFUN xmlTextWriterPtr
0041         xmlNewTextWriterDoc(xmlDocPtr * doc, int compression);
0042     XMLPUBFUN xmlTextWriterPtr
0043         xmlNewTextWriterTree(xmlDocPtr doc, xmlNodePtr node,
0044                              int compression);
0045     XMLPUBFUN void xmlFreeTextWriter(xmlTextWriterPtr writer);
0046 
0047 /*
0048  * Functions
0049  */
0050 
0051 
0052 /*
0053  * Document
0054  */
0055     XMLPUBFUN int
0056         xmlTextWriterStartDocument(xmlTextWriterPtr writer,
0057                                    const char *version,
0058                                    const char *encoding,
0059                                    const char *standalone);
0060     XMLPUBFUN int xmlTextWriterEndDocument(xmlTextWriterPtr
0061                                                    writer);
0062 
0063 /*
0064  * Comments
0065  */
0066     XMLPUBFUN int xmlTextWriterStartComment(xmlTextWriterPtr
0067                                                     writer);
0068     XMLPUBFUN int xmlTextWriterEndComment(xmlTextWriterPtr writer);
0069     XMLPUBFUN int
0070         xmlTextWriterWriteFormatComment(xmlTextWriterPtr writer,
0071                                         const char *format, ...)
0072                     LIBXML_ATTR_FORMAT(2,3);
0073     XMLPUBFUN int
0074         xmlTextWriterWriteVFormatComment(xmlTextWriterPtr writer,
0075                                          const char *format,
0076                                          va_list argptr)
0077                      LIBXML_ATTR_FORMAT(2,0);
0078     XMLPUBFUN int xmlTextWriterWriteComment(xmlTextWriterPtr
0079                                                     writer,
0080                                                     const xmlChar *
0081                                                     content);
0082 
0083 /*
0084  * Elements
0085  */
0086     XMLPUBFUN int
0087         xmlTextWriterStartElement(xmlTextWriterPtr writer,
0088                                   const xmlChar * name);
0089     XMLPUBFUN int xmlTextWriterStartElementNS(xmlTextWriterPtr
0090                                                       writer,
0091                                                       const xmlChar *
0092                                                       prefix,
0093                                                       const xmlChar * name,
0094                                                       const xmlChar *
0095                                                       namespaceURI);
0096     XMLPUBFUN int xmlTextWriterEndElement(xmlTextWriterPtr writer);
0097     XMLPUBFUN int xmlTextWriterFullEndElement(xmlTextWriterPtr
0098                                                       writer);
0099 
0100 /*
0101  * Elements conveniency functions
0102  */
0103     XMLPUBFUN int
0104         xmlTextWriterWriteFormatElement(xmlTextWriterPtr writer,
0105                                         const xmlChar * name,
0106                                         const char *format, ...)
0107                     LIBXML_ATTR_FORMAT(3,4);
0108     XMLPUBFUN int
0109         xmlTextWriterWriteVFormatElement(xmlTextWriterPtr writer,
0110                                          const xmlChar * name,
0111                                          const char *format,
0112                                          va_list argptr)
0113                      LIBXML_ATTR_FORMAT(3,0);
0114     XMLPUBFUN int xmlTextWriterWriteElement(xmlTextWriterPtr
0115                                                     writer,
0116                                                     const xmlChar * name,
0117                                                     const xmlChar *
0118                                                     content);
0119     XMLPUBFUN int
0120         xmlTextWriterWriteFormatElementNS(xmlTextWriterPtr writer,
0121                                           const xmlChar * prefix,
0122                                           const xmlChar * name,
0123                                           const xmlChar * namespaceURI,
0124                                           const char *format, ...)
0125                       LIBXML_ATTR_FORMAT(5,6);
0126     XMLPUBFUN int
0127         xmlTextWriterWriteVFormatElementNS(xmlTextWriterPtr writer,
0128                                            const xmlChar * prefix,
0129                                            const xmlChar * name,
0130                                            const xmlChar * namespaceURI,
0131                                            const char *format,
0132                                            va_list argptr)
0133                        LIBXML_ATTR_FORMAT(5,0);
0134     XMLPUBFUN int xmlTextWriterWriteElementNS(xmlTextWriterPtr
0135                                                       writer,
0136                                                       const xmlChar *
0137                                                       prefix,
0138                                                       const xmlChar * name,
0139                                                       const xmlChar *
0140                                                       namespaceURI,
0141                                                       const xmlChar *
0142                                                       content);
0143 
0144 /*
0145  * Text
0146  */
0147     XMLPUBFUN int
0148         xmlTextWriterWriteFormatRaw(xmlTextWriterPtr writer,
0149                                     const char *format, ...)
0150                     LIBXML_ATTR_FORMAT(2,3);
0151     XMLPUBFUN int
0152         xmlTextWriterWriteVFormatRaw(xmlTextWriterPtr writer,
0153                                      const char *format, va_list argptr)
0154                      LIBXML_ATTR_FORMAT(2,0);
0155     XMLPUBFUN int
0156         xmlTextWriterWriteRawLen(xmlTextWriterPtr writer,
0157                                  const xmlChar * content, int len);
0158     XMLPUBFUN int
0159         xmlTextWriterWriteRaw(xmlTextWriterPtr writer,
0160                               const xmlChar * content);
0161     XMLPUBFUN int xmlTextWriterWriteFormatString(xmlTextWriterPtr
0162                                                          writer,
0163                                                          const char
0164                                                          *format, ...)
0165                              LIBXML_ATTR_FORMAT(2,3);
0166     XMLPUBFUN int xmlTextWriterWriteVFormatString(xmlTextWriterPtr
0167                                                           writer,
0168                                                           const char
0169                                                           *format,
0170                                                           va_list argptr)
0171                               LIBXML_ATTR_FORMAT(2,0);
0172     XMLPUBFUN int xmlTextWriterWriteString(xmlTextWriterPtr writer,
0173                                                    const xmlChar *
0174                                                    content);
0175     XMLPUBFUN int xmlTextWriterWriteBase64(xmlTextWriterPtr writer,
0176                                                    const char *data,
0177                                                    int start, int len);
0178     XMLPUBFUN int xmlTextWriterWriteBinHex(xmlTextWriterPtr writer,
0179                                                    const char *data,
0180                                                    int start, int len);
0181 
0182 /*
0183  * Attributes
0184  */
0185     XMLPUBFUN int
0186         xmlTextWriterStartAttribute(xmlTextWriterPtr writer,
0187                                     const xmlChar * name);
0188     XMLPUBFUN int xmlTextWriterStartAttributeNS(xmlTextWriterPtr
0189                                                         writer,
0190                                                         const xmlChar *
0191                                                         prefix,
0192                                                         const xmlChar *
0193                                                         name,
0194                                                         const xmlChar *
0195                                                         namespaceURI);
0196     XMLPUBFUN int xmlTextWriterEndAttribute(xmlTextWriterPtr
0197                                                     writer);
0198 
0199 /*
0200  * Attributes conveniency functions
0201  */
0202     XMLPUBFUN int
0203         xmlTextWriterWriteFormatAttribute(xmlTextWriterPtr writer,
0204                                           const xmlChar * name,
0205                                           const char *format, ...)
0206                       LIBXML_ATTR_FORMAT(3,4);
0207     XMLPUBFUN int
0208         xmlTextWriterWriteVFormatAttribute(xmlTextWriterPtr writer,
0209                                            const xmlChar * name,
0210                                            const char *format,
0211                                            va_list argptr)
0212                        LIBXML_ATTR_FORMAT(3,0);
0213     XMLPUBFUN int xmlTextWriterWriteAttribute(xmlTextWriterPtr
0214                                                       writer,
0215                                                       const xmlChar * name,
0216                                                       const xmlChar *
0217                                                       content);
0218     XMLPUBFUN int
0219         xmlTextWriterWriteFormatAttributeNS(xmlTextWriterPtr writer,
0220                                             const xmlChar * prefix,
0221                                             const xmlChar * name,
0222                                             const xmlChar * namespaceURI,
0223                                             const char *format, ...)
0224                         LIBXML_ATTR_FORMAT(5,6);
0225     XMLPUBFUN int
0226         xmlTextWriterWriteVFormatAttributeNS(xmlTextWriterPtr writer,
0227                                              const xmlChar * prefix,
0228                                              const xmlChar * name,
0229                                              const xmlChar * namespaceURI,
0230                                              const char *format,
0231                                              va_list argptr)
0232                          LIBXML_ATTR_FORMAT(5,0);
0233     XMLPUBFUN int xmlTextWriterWriteAttributeNS(xmlTextWriterPtr
0234                                                         writer,
0235                                                         const xmlChar *
0236                                                         prefix,
0237                                                         const xmlChar *
0238                                                         name,
0239                                                         const xmlChar *
0240                                                         namespaceURI,
0241                                                         const xmlChar *
0242                                                         content);
0243 
0244 /*
0245  * PI's
0246  */
0247     XMLPUBFUN int
0248         xmlTextWriterStartPI(xmlTextWriterPtr writer,
0249                              const xmlChar * target);
0250     XMLPUBFUN int xmlTextWriterEndPI(xmlTextWriterPtr writer);
0251 
0252 /*
0253  * PI conveniency functions
0254  */
0255     XMLPUBFUN int
0256         xmlTextWriterWriteFormatPI(xmlTextWriterPtr writer,
0257                                    const xmlChar * target,
0258                                    const char *format, ...)
0259                    LIBXML_ATTR_FORMAT(3,4);
0260     XMLPUBFUN int
0261         xmlTextWriterWriteVFormatPI(xmlTextWriterPtr writer,
0262                                     const xmlChar * target,
0263                                     const char *format, va_list argptr)
0264                     LIBXML_ATTR_FORMAT(3,0);
0265     XMLPUBFUN int
0266         xmlTextWriterWritePI(xmlTextWriterPtr writer,
0267                              const xmlChar * target,
0268                              const xmlChar * content);
0269 
0270 /**
0271  * xmlTextWriterWriteProcessingInstruction:
0272  *
0273  * This macro maps to xmlTextWriterWritePI
0274  */
0275 #define xmlTextWriterWriteProcessingInstruction xmlTextWriterWritePI
0276 
0277 /*
0278  * CDATA
0279  */
0280     XMLPUBFUN int xmlTextWriterStartCDATA(xmlTextWriterPtr writer);
0281     XMLPUBFUN int xmlTextWriterEndCDATA(xmlTextWriterPtr writer);
0282 
0283 /*
0284  * CDATA conveniency functions
0285  */
0286     XMLPUBFUN int
0287         xmlTextWriterWriteFormatCDATA(xmlTextWriterPtr writer,
0288                                       const char *format, ...)
0289                       LIBXML_ATTR_FORMAT(2,3);
0290     XMLPUBFUN int
0291         xmlTextWriterWriteVFormatCDATA(xmlTextWriterPtr writer,
0292                                        const char *format, va_list argptr)
0293                        LIBXML_ATTR_FORMAT(2,0);
0294     XMLPUBFUN int
0295         xmlTextWriterWriteCDATA(xmlTextWriterPtr writer,
0296                                 const xmlChar * content);
0297 
0298 /*
0299  * DTD
0300  */
0301     XMLPUBFUN int
0302         xmlTextWriterStartDTD(xmlTextWriterPtr writer,
0303                               const xmlChar * name,
0304                               const xmlChar * pubid,
0305                               const xmlChar * sysid);
0306     XMLPUBFUN int xmlTextWriterEndDTD(xmlTextWriterPtr writer);
0307 
0308 /*
0309  * DTD conveniency functions
0310  */
0311     XMLPUBFUN int
0312         xmlTextWriterWriteFormatDTD(xmlTextWriterPtr writer,
0313                                     const xmlChar * name,
0314                                     const xmlChar * pubid,
0315                                     const xmlChar * sysid,
0316                                     const char *format, ...)
0317                     LIBXML_ATTR_FORMAT(5,6);
0318     XMLPUBFUN int
0319         xmlTextWriterWriteVFormatDTD(xmlTextWriterPtr writer,
0320                                      const xmlChar * name,
0321                                      const xmlChar * pubid,
0322                                      const xmlChar * sysid,
0323                                      const char *format, va_list argptr)
0324                      LIBXML_ATTR_FORMAT(5,0);
0325     XMLPUBFUN int
0326         xmlTextWriterWriteDTD(xmlTextWriterPtr writer,
0327                               const xmlChar * name,
0328                               const xmlChar * pubid,
0329                               const xmlChar * sysid,
0330                               const xmlChar * subset);
0331 
0332 /**
0333  * xmlTextWriterWriteDocType:
0334  *
0335  * this macro maps to xmlTextWriterWriteDTD
0336  */
0337 #define xmlTextWriterWriteDocType xmlTextWriterWriteDTD
0338 
0339 /*
0340  * DTD element definition
0341  */
0342     XMLPUBFUN int
0343         xmlTextWriterStartDTDElement(xmlTextWriterPtr writer,
0344                                      const xmlChar * name);
0345     XMLPUBFUN int xmlTextWriterEndDTDElement(xmlTextWriterPtr
0346                                                      writer);
0347 
0348 /*
0349  * DTD element definition conveniency functions
0350  */
0351     XMLPUBFUN int
0352         xmlTextWriterWriteFormatDTDElement(xmlTextWriterPtr writer,
0353                                            const xmlChar * name,
0354                                            const char *format, ...)
0355                        LIBXML_ATTR_FORMAT(3,4);
0356     XMLPUBFUN int
0357         xmlTextWriterWriteVFormatDTDElement(xmlTextWriterPtr writer,
0358                                             const xmlChar * name,
0359                                             const char *format,
0360                                             va_list argptr)
0361                         LIBXML_ATTR_FORMAT(3,0);
0362     XMLPUBFUN int xmlTextWriterWriteDTDElement(xmlTextWriterPtr
0363                                                        writer,
0364                                                        const xmlChar *
0365                                                        name,
0366                                                        const xmlChar *
0367                                                        content);
0368 
0369 /*
0370  * DTD attribute list definition
0371  */
0372     XMLPUBFUN int
0373         xmlTextWriterStartDTDAttlist(xmlTextWriterPtr writer,
0374                                      const xmlChar * name);
0375     XMLPUBFUN int xmlTextWriterEndDTDAttlist(xmlTextWriterPtr
0376                                                      writer);
0377 
0378 /*
0379  * DTD attribute list definition conveniency functions
0380  */
0381     XMLPUBFUN int
0382         xmlTextWriterWriteFormatDTDAttlist(xmlTextWriterPtr writer,
0383                                            const xmlChar * name,
0384                                            const char *format, ...)
0385                        LIBXML_ATTR_FORMAT(3,4);
0386     XMLPUBFUN int
0387         xmlTextWriterWriteVFormatDTDAttlist(xmlTextWriterPtr writer,
0388                                             const xmlChar * name,
0389                                             const char *format,
0390                                             va_list argptr)
0391                         LIBXML_ATTR_FORMAT(3,0);
0392     XMLPUBFUN int xmlTextWriterWriteDTDAttlist(xmlTextWriterPtr
0393                                                        writer,
0394                                                        const xmlChar *
0395                                                        name,
0396                                                        const xmlChar *
0397                                                        content);
0398 
0399 /*
0400  * DTD entity definition
0401  */
0402     XMLPUBFUN int
0403         xmlTextWriterStartDTDEntity(xmlTextWriterPtr writer,
0404                                     int pe, const xmlChar * name);
0405     XMLPUBFUN int xmlTextWriterEndDTDEntity(xmlTextWriterPtr
0406                                                     writer);
0407 
0408 /*
0409  * DTD entity definition conveniency functions
0410  */
0411     XMLPUBFUN int
0412         xmlTextWriterWriteFormatDTDInternalEntity(xmlTextWriterPtr writer,
0413                                                   int pe,
0414                                                   const xmlChar * name,
0415                                                   const char *format, ...)
0416                           LIBXML_ATTR_FORMAT(4,5);
0417     XMLPUBFUN int
0418         xmlTextWriterWriteVFormatDTDInternalEntity(xmlTextWriterPtr writer,
0419                                                    int pe,
0420                                                    const xmlChar * name,
0421                                                    const char *format,
0422                                                    va_list argptr)
0423                            LIBXML_ATTR_FORMAT(4,0);
0424     XMLPUBFUN int
0425         xmlTextWriterWriteDTDInternalEntity(xmlTextWriterPtr writer,
0426                                             int pe,
0427                                             const xmlChar * name,
0428                                             const xmlChar * content);
0429     XMLPUBFUN int
0430         xmlTextWriterWriteDTDExternalEntity(xmlTextWriterPtr writer,
0431                                             int pe,
0432                                             const xmlChar * name,
0433                                             const xmlChar * pubid,
0434                                             const xmlChar * sysid,
0435                                             const xmlChar * ndataid);
0436     XMLPUBFUN int
0437         xmlTextWriterWriteDTDExternalEntityContents(xmlTextWriterPtr
0438                                                     writer,
0439                                                     const xmlChar * pubid,
0440                                                     const xmlChar * sysid,
0441                                                     const xmlChar *
0442                                                     ndataid);
0443     XMLPUBFUN int xmlTextWriterWriteDTDEntity(xmlTextWriterPtr
0444                                                       writer, int pe,
0445                                                       const xmlChar * name,
0446                                                       const xmlChar *
0447                                                       pubid,
0448                                                       const xmlChar *
0449                                                       sysid,
0450                                                       const xmlChar *
0451                                                       ndataid,
0452                                                       const xmlChar *
0453                                                       content);
0454 
0455 /*
0456  * DTD notation definition
0457  */
0458     XMLPUBFUN int
0459         xmlTextWriterWriteDTDNotation(xmlTextWriterPtr writer,
0460                                       const xmlChar * name,
0461                                       const xmlChar * pubid,
0462                                       const xmlChar * sysid);
0463 
0464 /*
0465  * Indentation
0466  */
0467     XMLPUBFUN int
0468         xmlTextWriterSetIndent(xmlTextWriterPtr writer, int indent);
0469     XMLPUBFUN int
0470         xmlTextWriterSetIndentString(xmlTextWriterPtr writer,
0471                                      const xmlChar * str);
0472 
0473     XMLPUBFUN int
0474         xmlTextWriterSetQuoteChar(xmlTextWriterPtr writer, xmlChar quotechar);
0475 
0476 
0477 /*
0478  * misc
0479  */
0480     XMLPUBFUN int xmlTextWriterFlush(xmlTextWriterPtr writer);
0481     XMLPUBFUN int xmlTextWriterClose(xmlTextWriterPtr writer);
0482 
0483 #ifdef __cplusplus
0484 }
0485 #endif
0486 
0487 #endif /* LIBXML_WRITER_ENABLED */
0488 
0489 #endif                          /* __XML_XMLWRITER_H__ */