1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one 3 * or more contributor license agreements. See the NOTICE file 4 * distributed with this work for additional information 5 * regarding copyright ownership. The ASF licenses this file 6 * to you under the Apache License, Version 2.0 (the "License"); 7 * you may not use this file except in compliance with the License. 8 * You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, software 13 * distributed under the License is distributed on an "AS IS" BASIS, 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 * See the License for the specific language governing permissions and 16 * limitations under the License. 17 */ 18 /* 19 * $Id: ToTextSAXHandler.java 475978 2006-11-16 23:31:20Z minchau $ 20 */ 21 package org.apache.xml.serializer; 22 23 import java.io.IOException; 24 import java.io.OutputStream; 25 import java.io.Writer; 26 import java.util.Properties; 27 28 import org.w3c.dom.Node; 29 import org.xml.sax.Attributes; 30 import org.xml.sax.ContentHandler; 31 import org.xml.sax.Locator; 32 import org.xml.sax.SAXException; 33 import org.xml.sax.ext.LexicalHandler; 34 35 /** 36 * This class converts SAX-like event to SAX events for 37 * xsl:output method "text". 38 * 39 * This class is only to be used internally. This class is not a public API. 40 * 41 * @deprecated As of Xalan 2.7.1, replaced by the use of {@link ToXMLSAXHandler}. 42 * 43 * @xsl.usage internal 44 */ 45 public final class ToTextSAXHandler extends ToSAXHandler 46 { 47 /** 48 * From XSLTC 49 * @see ExtendedContentHandler#endElement(String) 50 */ endElement(String elemName)51 public void endElement(String elemName) throws SAXException 52 { 53 if (m_tracer != null) 54 super.fireEndElem(elemName); 55 } 56 57 /** 58 * @see org.xml.sax.ContentHandler#endElement(String, String, String) 59 */ endElement(String arg0, String arg1, String arg2)60 public void endElement(String arg0, String arg1, String arg2) 61 throws SAXException 62 { 63 if (m_tracer != null) 64 super.fireEndElem(arg2); 65 } 66 ToTextSAXHandler(ContentHandler hdlr, LexicalHandler lex, String encoding)67 public ToTextSAXHandler(ContentHandler hdlr, LexicalHandler lex, String encoding) 68 { 69 super(hdlr, lex, encoding); 70 } 71 72 /** 73 * From XSLTC 74 */ ToTextSAXHandler(ContentHandler handler, String encoding)75 public ToTextSAXHandler(ContentHandler handler, String encoding) 76 { 77 super(handler,encoding); 78 } 79 comment(char ch[], int start, int length)80 public void comment(char ch[], int start, int length) 81 throws org.xml.sax.SAXException 82 { 83 if (m_tracer != null) 84 super.fireCommentEvent(ch, start, length); 85 } 86 comment(String data)87 public void comment(String data) throws org.xml.sax.SAXException 88 { 89 final int length = data.length(); 90 if (length > m_charsBuff.length) 91 { 92 m_charsBuff = new char[length*2 + 1]; 93 } 94 data.getChars(0, length, m_charsBuff, 0); 95 comment(m_charsBuff, 0, length); 96 } 97 98 /** 99 * @see Serializer#getOutputFormat() 100 */ getOutputFormat()101 public Properties getOutputFormat() 102 { 103 return null; 104 } 105 106 /** 107 * @see Serializer#getOutputStream() 108 */ getOutputStream()109 public OutputStream getOutputStream() 110 { 111 return null; 112 } 113 114 /** 115 * @see Serializer#getWriter() 116 */ getWriter()117 public Writer getWriter() 118 { 119 return null; 120 } 121 122 /** 123 * Does nothing because 124 * the indent attribute is ignored for text output. 125 * 126 */ indent(int n)127 public void indent(int n) throws SAXException 128 { 129 } 130 131 /** 132 * @see Serializer#reset() 133 */ reset()134 public boolean reset() 135 { 136 return false; 137 } 138 139 /** 140 * @see DOMSerializer#serialize(Node) 141 */ serialize(Node node)142 public void serialize(Node node) throws IOException 143 { 144 } 145 146 /** 147 * @see SerializationHandler#setEscaping(boolean) 148 */ setEscaping(boolean escape)149 public boolean setEscaping(boolean escape) 150 { 151 return false; 152 } 153 154 /** 155 * @see SerializationHandler#setIndent(boolean) 156 */ setIndent(boolean indent)157 public void setIndent(boolean indent) 158 { 159 } 160 161 /** 162 * @see Serializer#setOutputFormat(Properties) 163 */ setOutputFormat(Properties format)164 public void setOutputFormat(Properties format) 165 { 166 } 167 168 /** 169 * @see Serializer#setOutputStream(OutputStream) 170 */ setOutputStream(OutputStream output)171 public void setOutputStream(OutputStream output) 172 { 173 } 174 175 /** 176 * @see Serializer#setWriter(Writer) 177 */ setWriter(Writer writer)178 public void setWriter(Writer writer) 179 { 180 } 181 182 /** 183 * @see ExtendedContentHandler#addAttribute(String, String, String, String, String) 184 */ addAttribute( String uri, String localName, String rawName, String type, String value, boolean XSLAttribute)185 public void addAttribute( 186 String uri, 187 String localName, 188 String rawName, 189 String type, 190 String value, 191 boolean XSLAttribute) 192 { 193 } 194 195 /** 196 * @see org.xml.sax.ext.DeclHandler#attributeDecl(String, String, String, String, String) 197 */ attributeDecl( String arg0, String arg1, String arg2, String arg3, String arg4)198 public void attributeDecl( 199 String arg0, 200 String arg1, 201 String arg2, 202 String arg3, 203 String arg4) 204 throws SAXException 205 { 206 } 207 208 /** 209 * @see org.xml.sax.ext.DeclHandler#elementDecl(String, String) 210 */ elementDecl(String arg0, String arg1)211 public void elementDecl(String arg0, String arg1) throws SAXException 212 { 213 } 214 215 /** 216 * @see org.xml.sax.ext.DeclHandler#externalEntityDecl(String, String, String) 217 */ externalEntityDecl(String arg0, String arg1, String arg2)218 public void externalEntityDecl(String arg0, String arg1, String arg2) 219 throws SAXException 220 { 221 } 222 223 /** 224 * @see org.xml.sax.ext.DeclHandler#internalEntityDecl(String, String) 225 */ internalEntityDecl(String arg0, String arg1)226 public void internalEntityDecl(String arg0, String arg1) 227 throws SAXException 228 { 229 } 230 231 /** 232 * @see org.xml.sax.ContentHandler#endPrefixMapping(String) 233 */ endPrefixMapping(String arg0)234 public void endPrefixMapping(String arg0) throws SAXException 235 { 236 } 237 238 /** 239 * @see org.xml.sax.ContentHandler#ignorableWhitespace(char[], int, int) 240 */ ignorableWhitespace(char[] arg0, int arg1, int arg2)241 public void ignorableWhitespace(char[] arg0, int arg1, int arg2) 242 throws SAXException 243 { 244 } 245 246 /** 247 * From XSLTC 248 * @see org.xml.sax.ContentHandler#processingInstruction(String, String) 249 */ processingInstruction(String arg0, String arg1)250 public void processingInstruction(String arg0, String arg1) 251 throws SAXException 252 { 253 if (m_tracer != null) 254 super.fireEscapingEvent(arg0, arg1); 255 } 256 257 /** 258 * @see org.xml.sax.ContentHandler#setDocumentLocator(Locator) 259 */ setDocumentLocator(Locator arg0)260 public void setDocumentLocator(Locator arg0) 261 { 262 } 263 264 /** 265 * @see org.xml.sax.ContentHandler#skippedEntity(String) 266 */ skippedEntity(String arg0)267 public void skippedEntity(String arg0) throws SAXException 268 { 269 } 270 271 /** 272 * @see org.xml.sax.ContentHandler#startElement(String, String, String, Attributes) 273 */ startElement( String arg0, String arg1, String arg2, Attributes arg3)274 public void startElement( 275 String arg0, 276 String arg1, 277 String arg2, 278 Attributes arg3) 279 throws SAXException 280 { 281 flushPending(); 282 super.startElement(arg0, arg1, arg2, arg3); 283 } 284 285 /** 286 * @see org.xml.sax.ext.LexicalHandler#endCDATA() 287 */ endCDATA()288 public void endCDATA() throws SAXException 289 { 290 } 291 292 /** 293 * @see org.xml.sax.ext.LexicalHandler#endDTD() 294 */ endDTD()295 public void endDTD() throws SAXException 296 { 297 } 298 299 /** 300 * @see org.xml.sax.ext.LexicalHandler#startCDATA() 301 */ startCDATA()302 public void startCDATA() throws SAXException 303 { 304 } 305 306 307 /** 308 * @see org.xml.sax.ext.LexicalHandler#startEntity(String) 309 */ startEntity(String arg0)310 public void startEntity(String arg0) throws SAXException 311 { 312 } 313 314 315 /** 316 * From XSLTC 317 * @see ExtendedContentHandler#startElement(String) 318 */ startElement( String elementNamespaceURI, String elementLocalName, String elementName)319 public void startElement( 320 String elementNamespaceURI, 321 String elementLocalName, 322 String elementName) throws SAXException 323 { 324 super.startElement(elementNamespaceURI, elementLocalName, elementName); 325 } 326 startElement( String elementName)327 public void startElement( 328 String elementName) throws SAXException 329 { 330 super.startElement(elementName); 331 } 332 333 334 /** 335 * From XSLTC 336 * @see org.xml.sax.ContentHandler#endDocument() 337 */ endDocument()338 public void endDocument() throws SAXException { 339 340 flushPending(); 341 m_saxHandler.endDocument(); 342 343 if (m_tracer != null) 344 super.fireEndDoc(); 345 } 346 347 /** 348 * 349 * @see ExtendedContentHandler#characters(String) 350 */ characters(String characters)351 public void characters(String characters) 352 throws SAXException 353 { 354 final int length = characters.length(); 355 if (length > m_charsBuff.length) 356 { 357 m_charsBuff = new char[length*2 + 1]; 358 } 359 characters.getChars(0, length, m_charsBuff, 0); 360 361 m_saxHandler.characters(m_charsBuff, 0, length); 362 363 } 364 /** 365 * @see org.xml.sax.ContentHandler#characters(char[], int, int) 366 */ characters(char[] characters, int offset, int length)367 public void characters(char[] characters, int offset, int length) 368 throws SAXException 369 { 370 371 m_saxHandler.characters(characters, offset, length); 372 373 // time to fire off characters event 374 if (m_tracer != null) 375 super.fireCharEvent(characters, offset, length); 376 } 377 378 /** 379 * From XSLTC 380 */ addAttribute(String name, String value)381 public void addAttribute(String name, String value) 382 { 383 // do nothing 384 } 385 386 startPrefixMapping( String prefix, String uri, boolean shouldFlush)387 public boolean startPrefixMapping( 388 String prefix, 389 String uri, 390 boolean shouldFlush) 391 throws SAXException 392 { 393 // no namespace support for HTML 394 return false; 395 } 396 397 startPrefixMapping(String prefix, String uri)398 public void startPrefixMapping(String prefix, String uri) 399 throws org.xml.sax.SAXException 400 { 401 // no namespace support for HTML 402 } 403 404 namespaceAfterStartElement( final String prefix, final String uri)405 public void namespaceAfterStartElement( 406 final String prefix, 407 final String uri) 408 throws SAXException 409 { 410 // no namespace support for HTML 411 } 412 413 } 414