KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > opencrx > base > text > conversion > XMLWriter


1 /*
2  * ====================================================================
3  * Project: opencrx, http://www.opencrx.org/
4  * Name: $Id: XMLWriter.java,v 1.1 2004/08/10 17:33:51 wfro Exp $
5  * Description: XMLWriter
6  * Revision: $Revision: 1.1 $
7  * Owner: CRIXP AG, Switzerland, http://www.crixp.com
8  * Date: $Date: 2004/08/10 17:33:51 $
9  * ====================================================================
10  *
11  * This software is published under the BSD license
12  * as listed below.
13  *
14  * Copyright (c) 2004, CRIXP Corp., Switzerland
15  * All rights reserved.
16  *
17  * Redistribution and use in source and binary forms, with or without
18  * modification, are permitted provided that the following conditions
19  * are met:
20  *
21  * * Redistributions of source code must retain the above copyright
22  * notice, this list of conditions and the following disclaimer.
23  *
24  * * Redistributions in binary form must reproduce the above copyright
25  * notice, this list of conditions and the following disclaimer in
26  * the documentation and/or other materials provided with the
27  * distribution.
28  *
29  * * Neither the name of CRIXP Corp. nor the names of the contributors
30  * to openCRX may be used to endorse or promote products derived
31  * from this software without specific prior written permission
32  *
33  *
34  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
35  * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
36  * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
37  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
38  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
39  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
40  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
41  * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
42  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
43  * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
44  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
45  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
46  * POSSIBILITY OF SUCH DAMAGE.
47  *
48  * ------------------
49  *
50  * This product includes software developed by the Apache Software
51  * Foundation (http://www.apache.org/).
52  *
53  * This product includes software developed by contributors to
54  * openMDX (http://www.openmdx.org/)
55  */

56 package org.opencrx.base.text.conversion;
57
58 import java.io.FilterWriter JavaDoc;
59 import java.io.IOException JavaDoc;
60 import java.io.Writer JavaDoc;
61
62 /**
63  * A writer that scrubs certain ASCII characters into XML entities.
64  */

65 public class XMLWriter extends FilterWriter JavaDoc {
66
67   public XMLWriter(Writer JavaDoc writer) {
68     super(writer);
69   }
70
71   public void write(char cbuf[], int off, int len) throws IOException JavaDoc {
72     for(int i = off; i < off+len; i++) {
73       this.write(cbuf[i]);
74     }
75   }
76
77   public void write(String JavaDoc s, int off, int len) throws IOException JavaDoc {
78       for(int i = off; i < off+len; i++) {
79         this.write(s.charAt(i));
80       }
81     }
82
83   public void write(char c) throws IOException JavaDoc {
84     switch(c) {
85       case '<': out.write("&lt;"); break;
86       case '>': out.write("&gt;"); break;
87       case '"': out.write("&quot;"); break;
88       case '\'': out.write("&apos;"); break;
89       case '&': out.write("&amp;"); break;
90       default: out.write(c);
91     }
92   }
93
94 }
95
96 //--- End of File -----------------------------------------------------------
97
Popular Tags