1xmlwrite(3am)              GNU Awk Extension Modules             xmlwrite(3am)
2
3
4

NAME

6       xmlwrite  -  Provides facilities for writing XML fragments. A whole XML
7       document can be  composed  this  way.  The  composed  document  may  be
8       indented if desired.
9

SYNOPSIS

11       @include "xmlwrite"
12
13       xwopen(filename[, options])
14       xwclose()
15
16       xwdeclaration(version, encoding, standalone)
17       xwstartdoct(root, pubid, sysid)
18       xwenddoct()
19
20       xwprocinst(name, string)
21       xwcomment(comment)
22
23       xwstarttag(name)
24       xwattrib(name, value)
25       xwendtag(name)
26
27       xwtext(string)
28       xwstartcdata()
29       xwendcdata()
30
31       xwunparsed(string)
32
33       xwdoctype(root, pubid, sysid, declarations)
34       xwstyle(type, uri)
35       xwelement(name, content)
36       xwcdata(string)
37       xwcopy()
38

DESCRIPTION

40       The xmlwrite library facilitates writing a XML document serially, piece
41       by piece. It takes care of some peculiarities of the XML standard, like
42       metacharacters escaping, whitespace handling, markup indentation, etc.
43
44   Output file and mode
45       xwopen(filename[, options])
46              Initializes  output  to the given file. The optional argument is
47              an array of named options:
48
49              options["INDENT"]
50                     Indent step (-1 = no indent), default = 2.
51
52              options["QUOTE"]
53                     Preferred quote character (', "), default = (").
54
55       xwclose()
56              Closes the current opened output file.
57
58   XML prologue
59       xwdeclaration(version, encoding, standalone)
60              Writes an XML declaration (<?xml ... ?>). All the arguments  are
61              optional.
62
63       xwstartdoct(root, pubid, sysid)
64              Writes  the  starting  part  of a DOCTYPE declaration (<!DOCTYPE
65              ...). All the arguments are optional.Internal  DOCTYPE  declara‐
66              tions, if any, may be inserted by subsequent xwunparsed() calls.
67
68       xwenddoct()
69              Writes the closing mark of the DOCTYPE declaration (]>).
70
71   Processing Instructions and Comments
72       xwprocinst(name, string)
73              Prints a Processing Instruction with the given name and contents
74              (<?name string?>).
75
76       xwcomment(comment)
77              Prints a XML comment (<!--comment-->).
78
79   Elements and attributes
80       xwstarttag(name)
81              Prints the opening mark of an element start tag (<name ...>).
82
83       xwattrib(name, value)
84              Prints an attribute  markup  fragment  (name="value").  Must  be
85              invoked immediately after the xwstartag() call.
86
87       xwendtag(name)
88              Prints  an  element  closing  tag  (</name>).  If the element is
89              empty, just closes its collapsed markup (/>).
90
91   Character data
92       xwtext(string)
93              Writes the escaped text. If it is invoked inside  a  CDATA  sec‐
94              tion, the text is written unescaped.
95
96       xwstartcdata()
97              Writes the opening mark of a CDATA section (<![CDATA[).
98
99       xwendcdata()
100              Writes the closing mark of a CDATA section (]]>).
101
102   Unparsed markup
103       xwunparsed(string)
104              Writes a text fragment literally. Can be used to directly insert
105              special markup fragments.
106
107   Higher level convenience functions
108       xwdoctype(root, pubid, sysid, declarations)
109              Writes a complete DOCTYPE declaration with a  single  call.  All
110              the arguments are optional.
111
112       xwstyle(type, uri)
113              Writes  a  stylesheet  processing  instruction (<?xsl-stylesheet
114              type="text/type" href="uri"?>).
115
116       xwelement(name, content)
117              Writes a complete simple element  markup  with  a  single  call.
118              Attributes are not supported. Nested child elements are not sup‐
119              ported.
120
121       xwcdata(string)
122              Writes a complete CDATA section with a single call.
123
124   Integration with the XML extension
125       If the xmlwrite library and the gawk-xml extension are  used  together,
126       then it is possible to directly copy XML input markup.
127
128       xwcopy()
129              Writes  the  markup fragment equivalent to the current XML input
130              token. Should be used instead of the XmlCopy() function provided
131              by the xmlcopy library.
132

NOTES

134       xmlwrite  is a standalone library that can be used independently of the
135       gawk-xml extension.
136

BUGS

138       Improper use of  the  provided  functions  may  produce  non-wellformed
139       markup.
140
141       The  whole output document must be written with the provided functions.
142       Mixing xmlwrite calls and direct print commands may  produce  corrupted
143       markup.
144
145       It is not possible to write several output documents concurrently.
146

SEE ALSO

148       XML  Processing  With gawk, xmlbase(3am), xmlcopy(3am), xmlsimple(3am),
149       xmltree(3am).
150

AUTHOR

152       Manuel Collado, m-collado@users.sourceforge.net.
153

COPYING PERMISSIONS

155       Copyright (C) 2017, Free Software Foundation, Inc.
156
157       Permission is granted to make and distribute verbatim  copies  of  this
158       manual  page  provided  the copyright notice and this permission notice
159       are preserved on all copies.
160
161       Permission is granted to copy and distribute modified versions of  this
162       manual  page  under  the conditions for verbatim copying, provided that
163       the entire resulting derived work is distributed under the terms  of  a
164       permission notice identical to this one.
165
166       Permission  is granted to copy and distribute translations of this man‐
167       ual page into another language, under the above conditions for modified
168       versions,  except that this permission notice may be stated in a trans‐
169       lation approved by the Foundation.
170
171
172
173GAWK Extension Library (gawkextlibJ)anuary 2017                    xmlwrite(3am)
Impressum