001 /*
002 * Copyright (c) 2006 Henri Sivonen
003 *
004 * Permission is hereby granted, free of charge, to any person obtaining a
005 * copy of this software and associated documentation files (the "Software"),
006 * to deal in the Software without restriction, including without limitation
007 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
008 * and/or sell copies of the Software, and to permit persons to whom the
009 * Software is furnished to do so, subject to the following conditions:
010 *
011 * The above copyright notice and this permission notice shall be included in
012 * all copies or substantial portions of the Software.
013 *
014 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
015 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
016 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
017 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
018 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
019 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
020 * DEALINGS IN THE SOFTWARE.
021 */
022
023 package fi.iki.hsivonen.verifierservlet;
024
025 import org.xml.sax.Attributes;
026 import org.xml.sax.ContentHandler;
027 import org.xml.sax.Locator;
028 import org.xml.sax.SAXException;
029
030 public class RootNamespaceSniffer implements ContentHandler {
031
032 private VerifierServletTransaction vst;
033 private ContentHandler ch;
034 private Locator locator;
035
036 public RootNamespaceSniffer(VerifierServletTransaction vst, ContentHandler ch) {
037 super();
038 this.vst = vst;
039 this.ch = ch;
040 }
041
042 /**
043 * @see org.xml.sax.ContentHandler#characters(char[], int, int)
044 */
045 public void characters(char[] arg0, int arg1, int arg2) throws SAXException {
046 ch.characters(arg0, arg1, arg2);
047 }
048
049 /**
050 * @see org.xml.sax.ContentHandler#endDocument()
051 */
052 public void endDocument() throws SAXException {
053 ch.endDocument();
054 }
055
056 /**
057 * @see org.xml.sax.ContentHandler#endElement(java.lang.String, java.lang.String, java.lang.String)
058 */
059 public void endElement(String arg0, String arg1, String arg2) throws SAXException {
060 ch.endElement(arg0, arg1, arg2);
061 }
062
063 /**
064 * @see org.xml.sax.ContentHandler#endPrefixMapping(java.lang.String)
065 */
066 public void endPrefixMapping(String arg0) throws SAXException {
067 ch.endPrefixMapping(arg0);
068 }
069
070 /**
071 * @see org.xml.sax.ContentHandler#ignorableWhitespace(char[], int, int)
072 */
073 public void ignorableWhitespace(char[] arg0, int arg1, int arg2) throws SAXException {
074 ch.ignorableWhitespace(arg0, arg1, arg2);
075 }
076
077 /**
078 * @see org.xml.sax.ContentHandler#processingInstruction(java.lang.String, java.lang.String)
079 */
080 public void processingInstruction(String arg0, String arg1) throws SAXException {
081 ch.processingInstruction(arg0, arg1);
082 }
083
084 /**
085 * @see org.xml.sax.ContentHandler#setDocumentLocator(org.xml.sax.Locator)
086 */
087 public void setDocumentLocator(Locator arg0) {
088 this.locator = arg0;
089 ch.setDocumentLocator(arg0);
090 }
091
092 /**
093 * @see org.xml.sax.ContentHandler#skippedEntity(java.lang.String)
094 */
095 public void skippedEntity(String arg0) throws SAXException {
096 ch.skippedEntity(arg0);
097 }
098
099 /**
100 * @see org.xml.sax.ContentHandler#startDocument()
101 */
102 public void startDocument() throws SAXException {
103 ch.startDocument();
104 }
105
106 /**
107 * @see org.xml.sax.ContentHandler#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)
108 */
109 public void startElement(String arg0, String arg1, String arg2, Attributes arg3) throws SAXException {
110 vst.rootNamespace(arg0, locator);
111 ch.startElement(arg0, arg1, arg2, arg3);
112 }
113
114 /**
115 * @see org.xml.sax.ContentHandler#startPrefixMapping(java.lang.String, java.lang.String)
116 */
117 public void startPrefixMapping(String arg0, String arg1) throws SAXException {
118 ch.startPrefixMapping(arg0, arg1);
119 }
120
121 }