001 /* XMLStreamWriter.java -- 002 Copyright (C) 2005 Free Software Foundation, Inc. 003 004 This file is part of GNU Classpath. 005 006 GNU Classpath is free software; you can redistribute it and/or modify 007 it under the terms of the GNU General Public License as published by 008 the Free Software Foundation; either version 2, or (at your option) 009 any later version. 010 011 GNU Classpath is distributed in the hope that it will be useful, but 012 WITHOUT ANY WARRANTY; without even the implied warranty of 013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 014 General Public License for more details. 015 016 You should have received a copy of the GNU General Public License 017 along with GNU Classpath; see the file COPYING. If not, write to the 018 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 019 02110-1301 USA. 020 021 Linking this library statically or dynamically with other modules is 022 making a combined work based on this library. Thus, the terms and 023 conditions of the GNU General Public License cover the whole 024 combination. 025 026 As a special exception, the copyright holders of this library give you 027 permission to link this library with independent modules to produce an 028 executable, regardless of the license terms of these independent 029 modules, and to copy and distribute the resulting executable under 030 terms of your choice, provided that you also meet, for each linked 031 independent module, the terms and conditions of the license of that 032 module. An independent module is a module which is not derived from 033 or based on this library. If you modify this library, you may extend 034 this exception to your version of the library, but you are not 035 obligated to do so. If you do not wish to do so, delete this 036 exception statement from your version. */ 037 038 package javax.xml.stream; 039 040 import javax.xml.namespace.NamespaceContext; 041 042 /** 043 * Interface for writing XML to a stream. 044 */ 045 public interface XMLStreamWriter 046 { 047 048 /** 049 * Write the start of a tag. 050 */ 051 void writeStartElement(String localName) 052 throws XMLStreamException; 053 054 /** 055 * Write the start of a tag. 056 */ 057 void writeStartElement(String namespaceURI, String localName) 058 throws XMLStreamException; 059 060 /** 061 * Write the start of a tag. 062 */ 063 void writeStartElement(String prefix, String localName, String namespaceURI) 064 throws XMLStreamException; 065 066 /** 067 * Write an empty tag. 068 */ 069 void writeEmptyElement(String namespaceURI, String localName) 070 throws XMLStreamException; 071 072 /** 073 * Write an empty tag. 074 */ 075 void writeEmptyElement(String prefix, String localName, String namespaceURI) 076 throws XMLStreamException; 077 078 /** 079 * Write an empty tag. 080 */ 081 void writeEmptyElement(String localName) 082 throws XMLStreamException; 083 084 /** 085 * Closes the currently open tag. 086 */ 087 void writeEndElement() 088 throws XMLStreamException; 089 090 /** 091 * Closes any currently open tags. 092 */ 093 void writeEndDocument() 094 throws XMLStreamException; 095 096 /** 097 * Frees any resources used by this writer. 098 * This will not close the underlying output sink. 099 */ 100 void close() 101 throws XMLStreamException; 102 103 /** 104 * Flushes any cached information to the underlying output sink. 105 */ 106 void flush() 107 throws XMLStreamException; 108 109 /** 110 * Write an attribute. 111 */ 112 void writeAttribute(String localName, String value) 113 throws XMLStreamException; 114 115 /** 116 * Write an attribute. 117 */ 118 void writeAttribute(String prefix, String namespaceURI, 119 String localName, String value) 120 throws XMLStreamException; 121 122 /** 123 * Write an attribute. 124 */ 125 void writeAttribute(String namespaceURI, String localName, String value) 126 throws XMLStreamException; 127 128 /** 129 * Write a namespace declaration. 130 */ 131 void writeNamespace(String prefix, String namespaceURI) 132 throws XMLStreamException; 133 134 /** 135 * Write a default namespace declaration. 136 */ 137 void writeDefaultNamespace(String namespaceURI) 138 throws XMLStreamException; 139 140 /** 141 * Write a comment. 142 */ 143 void writeComment(String data) 144 throws XMLStreamException; 145 146 /** 147 * Write a processing instruction. 148 */ 149 void writeProcessingInstruction(String target) 150 throws XMLStreamException; 151 152 /** 153 * Write a processing instruction. 154 */ 155 void writeProcessingInstruction(String target, String data) 156 throws XMLStreamException; 157 158 /** 159 * Write a CDATA section. 160 */ 161 void writeCData(String data) 162 throws XMLStreamException; 163 164 /** 165 * Write a DOCTYPE declaration. 166 */ 167 void writeDTD(String dtd) 168 throws XMLStreamException; 169 170 /** 171 * Write an entity reference. 172 */ 173 void writeEntityRef(String name) 174 throws XMLStreamException; 175 176 /** 177 * Write an XML declaration. 178 */ 179 void writeStartDocument() 180 throws XMLStreamException; 181 182 /** 183 * Write an XML declaration with the specified XML version. 184 */ 185 void writeStartDocument(String version) 186 throws XMLStreamException; 187 188 /** 189 * Write an XML declaration with the specifed XML version and encoding. 190 */ 191 void writeStartDocument(String encoding, String version) 192 throws XMLStreamException; 193 194 /** 195 * Write the specified text. 196 */ 197 void writeCharacters(String text) 198 throws XMLStreamException; 199 200 /** 201 * Write the specified text. 202 */ 203 void writeCharacters(char[] text, int start, int len) 204 throws XMLStreamException; 205 206 /** 207 * Returns the prefix associated with the given namespace URI. 208 */ 209 String getPrefix(String uri) 210 throws XMLStreamException; 211 212 /** 213 * Sets the prefix for the given namespace URI. 214 */ 215 void setPrefix(String prefix, String uri) 216 throws XMLStreamException; 217 218 /** 219 * Sets the URI for the default namespace. 220 */ 221 void setDefaultNamespace(String uri) 222 throws XMLStreamException; 223 224 /** 225 * Sets the namespace context for namespace resolution. 226 */ 227 void setNamespaceContext(NamespaceContext context) 228 throws XMLStreamException; 229 230 /** 231 * Returns the current namespace context. 232 */ 233 NamespaceContext getNamespaceContext(); 234 235 /** 236 * Returns the implementation-specific feature or property of the given 237 * name. 238 * @exception IllegalArgumentException if the property is not supported 239 */ 240 Object getProperty(String name) 241 throws IllegalArgumentException; 242 243 } 244