| /* |
| * Copyright 2004,2005 The Apache Software Foundation. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package org.apache.axis2.databinding.utils;
|
|
|
| import javax.xml.stream.XMLStreamConstants;
|
| import javax.xml.stream.XMLStreamException;
|
| import javax.xml.stream.XMLStreamReader;
|
|
|
| public class PrintEvents {
|
|
|
| public static void print(XMLStreamReader xmlr) throws XMLStreamException {
|
| while (xmlr.hasNext()) {
|
| printEvent(xmlr);
|
| xmlr.next();
|
| }
|
| }
|
|
|
| private static void printEvent(XMLStreamReader xmlr) {
|
|
|
| System.out.print("EVENT:[" + getEventString(xmlr.getEventType()) + "] ");
|
|
|
| System.out.print(" [");
|
|
|
| switch (xmlr.getEventType()) {
|
|
|
| case XMLStreamConstants.START_ELEMENT:
|
| System.out.print("<");
|
| printName(xmlr);
|
| printNamespaces(xmlr);
|
| printAttributes(xmlr);
|
| System.out.print(">");
|
| break;
|
|
|
| case XMLStreamConstants.END_ELEMENT:
|
| System.out.print("</");
|
| printName(xmlr);
|
| System.out.print(">");
|
| break;
|
|
|
| case XMLStreamConstants.SPACE:
|
|
|
| case XMLStreamConstants.CHARACTERS:
|
| int start = xmlr.getTextStart();
|
| int length = xmlr.getTextLength();
|
| System.out.print(new String(xmlr.getTextCharacters(),
|
| start,
|
| length));
|
| break;
|
|
|
| case XMLStreamConstants.PROCESSING_INSTRUCTION:
|
| System.out.print("<?");
|
| if (xmlr.hasText())
|
| System.out.print(xmlr.getText());
|
| System.out.print("?>");
|
| break;
|
|
|
| case XMLStreamConstants.CDATA:
|
| System.out.print("<![CDATA[");
|
| start = xmlr.getTextStart();
|
| length = xmlr.getTextLength();
|
| System.out.print(new String(xmlr.getTextCharacters(),
|
| start,
|
| length));
|
| System.out.print("]]>");
|
| break;
|
|
|
| case XMLStreamConstants.COMMENT:
|
| System.out.print("<!--");
|
| if (xmlr.hasText())
|
| System.out.print(xmlr.getText());
|
| System.out.print("-->");
|
| break;
|
|
|
| case XMLStreamConstants.ENTITY_REFERENCE:
|
| System.out.print(xmlr.getLocalName() + "=");
|
| if (xmlr.hasText())
|
| System.out.print("[" + xmlr.getText() + "]");
|
| break;
|
|
|
| case XMLStreamConstants.START_DOCUMENT:
|
| System.out.print("<?xml");
|
| System.out.print(" version='" + xmlr.getVersion() + "'");
|
| System.out.print(" encoding='" + xmlr.getCharacterEncodingScheme() + "'");
|
| if (xmlr.isStandalone())
|
| System.out.print(" standalone='yes'");
|
| else
|
| System.out.print(" standalone='no'");
|
| System.out.print("?>");
|
| break;
|
|
|
| }
|
| System.out.println("]");
|
| }
|
|
|
| private static void printName(XMLStreamReader xmlr) {
|
| if (xmlr.hasName()) {
|
| String prefix = xmlr.getPrefix();
|
| String uri = xmlr.getNamespaceURI();
|
| String localName = xmlr.getLocalName();
|
| printName(prefix, uri, localName);
|
| }
|
| }
|
|
|
| private static void printName(String prefix,
|
| String uri,
|
| String localName) {
|
| if (uri != null && !("".equals(uri))) System.out.print("['" + uri + "']:");
|
| if (prefix != null) System.out.print(prefix + ":");
|
| if (localName != null) System.out.print(localName);
|
| }
|
|
|
| private static void printAttributes(XMLStreamReader xmlr) {
|
| for (int i = 0; i < xmlr.getAttributeCount(); i++) {
|
| printAttribute(xmlr, i);
|
| }
|
| }
|
|
|
| private static void printAttribute(XMLStreamReader xmlr, int index) {
|
| String prefix = xmlr.getAttributePrefix(index);
|
| String namespace = xmlr.getAttributeNamespace(index);
|
| String localName = xmlr.getAttributeLocalName(index);
|
| String value = xmlr.getAttributeValue(index);
|
| System.out.print(" ");
|
| printName(prefix, namespace, localName);
|
| System.out.print("='" + value + "'");
|
| }
|
|
|
| private static void printNamespaces(XMLStreamReader xmlr) {
|
| for (int i = 0; i < xmlr.getNamespaceCount(); i++) {
|
| printNamespace(xmlr, i);
|
| }
|
| }
|
|
|
| private static void printNamespace(XMLStreamReader xmlr, int index) {
|
| String prefix = xmlr.getNamespacePrefix(index);
|
| String uri = xmlr.getNamespaceURI(index);
|
| System.out.print(" ");
|
| if (prefix == null)
|
| System.out.print("xmlns='" + uri + "'");
|
| else
|
| System.out.print("xmlns:" + prefix + "='" + uri + "'");
|
| }
|
|
|
| private static String getEventString(int eventCode) {
|
| String event = "";
|
|
|
| switch (eventCode) {
|
| case 1 :
|
| event = "START_ELEMENT";
|
| break;
|
| case 2 :
|
| event = "END_ELEMENT";
|
| break;
|
| case 3 :
|
| event = "PROCESSING_INSTRUCTION";
|
| break;
|
| case 4 :
|
| event = "CHARACTERS";
|
| break;
|
| case 5 :
|
| event = "COMMENT";
|
| break;
|
| case 6 :
|
| event = "SPACE";
|
| break;
|
| case 7 :
|
| event = "START_DOCUMENT";
|
| break;
|
| case 8 :
|
| event = "END_DOCUMENT";
|
| break;
|
| case 9 :
|
| event = "ENTITY_REFERENCE";
|
| break;
|
| case 10 :
|
| event = "ATTRIBUTE";
|
| break;
|
| case 11 :
|
| event = "DTD";
|
| break;
|
| case 12 :
|
| event = "CDATA";
|
| break;
|
| case 13 :
|
| event = "NAMESPACE";
|
| break;
|
| case 14 :
|
| event = "NOTATION_DECLARATION";
|
| break;
|
| case 15 :
|
| event = "ENTITY_DECLARATION";
|
| break;
|
| }
|
| return event;
|
| }
|
|
|
| }
|