1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 package org.marre.xml;
36
37 import java.io.IOException;
38
39 /***
40 * Simple interface to write XML documents.
41 *
42 * Mainly created to make it simple to create both XML and WBXML documents.
43 *
44 * @author Markus Eriksson
45 * @version $Id: XmlWriter.java,v 1.7 2004/12/07 20:03:21 c95men Exp $
46 */
47 public interface XmlWriter
48 {
49 /***
50 * Sets a public ID doctype.
51 *
52 * Must be set before any of the add or flush methods.
53 *
54 * @param publicID XML public ID
55 */
56 void setDoctype(String publicID);
57
58 /***
59 * Sets a system URI doctype.
60 *
61 * Must be set before any of the add or flush methods.
62 *
63 * @param name Name
64 * @param systemURI System URI
65 */
66 void setDoctype(String name, String systemURI);
67
68 /***
69 * Sets a public ID doctype.
70 *
71 * Must be set before any of the add or flush methods.
72 *
73 * @param name Name
74 * @param publicID PublicID
75 * @param publicURI PublicURI
76 */
77 void setDoctype(String name, String publicID, String publicURI);
78
79 /***
80 * Adds a start element tag.
81 *
82 * Ex: <TAG>
83 *
84 * @param tag tag
85 * @throws IOException io error
86 */
87 void addStartElement(String tag) throws IOException;
88
89 /***
90 * Adds a start element tag with attributes.
91 *
92 * Ex: <TAG attrib="value">
93 *
94 * @param tag Tag
95 * @param attribs Attributes
96 * @throws IOException io error
97 */
98 void addStartElement(String tag, XmlAttribute[] attribs) throws IOException;
99
100 /***
101 * Adds an empty element tag.
102 *
103 * Ex: <TAG/>
104 *
105 * @param tag Tag
106 * @throws IOException io error
107 */
108 void addEmptyElement(String tag) throws IOException;
109
110 /***
111 * Adds an empty start element tag with attributes.
112 *
113 * Ex: <TAG attrib="value"/>
114 *
115 * @param tag Tag
116 * @param attribs Attributes
117 * @throws IOException io error
118 */
119 void addEmptyElement(String tag, XmlAttribute[] attribs) throws IOException;
120
121 /***
122 * Adds an end element tag.
123 *
124 * Ex </TAG>
125 *
126 * @throws IOException io error
127 */
128 void addEndElement() throws IOException;
129
130 /***
131 * Adds a segment of text.
132 *
133 * @param ch The chars to add
134 * @param start Start offset of the ch array.
135 * @param length Number of chars to add
136 * @throws IOException io error
137 */
138 void addCharacters(char[] ch, int start, int length) throws IOException;
139
140 /***
141 * Adds a segment of text.
142 *
143 * @param str Text to add
144 * @throws IOException io error
145 */
146 void addCharacters(String str) throws IOException;
147
148 /***
149 * Flushes the xml document.
150 *
151 * Must be called to be sure that the document is correctly created.
152 *
153 * @throws IOException io error
154 */
155 void flush() throws IOException;
156 }