import java.io.FileInputStream;
import java.io.FileNotFoundException;

import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamConstants;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;

public class JI9044256 {

	public static void main(String[] args) throws FileNotFoundException, XMLStreamException {
		XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance(); 
        xmlInputFactory.setProperty("javax.xml.stream.isCoalescing", true); 
        String path = "D:\\Java7Workspace\\Testcases\\src\\2016.xml"; 
        XMLStreamReader xmlStreamReader = xmlInputFactory.createXMLStreamReader(new FileInputStream(path)); 
        boolean moreRecords = true; 
        boolean bMessage = false; 
        while (moreRecords == true) 
        { 
            //start of xml processing 
            //TTYMessage ttymsg = null; 
            boolean endtty = false; 
            int event = xmlStreamReader.getEventType(); 
            while (!endtty) 
            { 
                System.out.println("event=" + event); 
                switch (event) 
                { 
                    case XMLStreamConstants.START_ELEMENT: 
                        System.out.println("" + event + "START_ELEMENT, LocalName=" + xmlStreamReader.getLocalName()); 
                        if (xmlStreamReader.getLocalName().equals("tty")) 
                        { 

                            bMessage = true; 
                           // ttymsg = new TTYMessage("i"); 
                            for (int i = 0; i < xmlStreamReader.getAttributeCount(); i++) 
                            { 
                                String localName = xmlStreamReader.getAttributeLocalName(i); 
                                String value = xmlStreamReader.getAttributeValue(i); 
                                System.out.println("localName=" + localName + ", value=" + value); 
                             /*   if (localName.equals("op_system")) 
                                   // ttymsg.setOp_system(value); 
                                else 
                                    if (localName.equals("system")) 
                                        //ttymsg.setSystem(value); 
                                    else 
                                        if (localName.equals("channel")) 
                                            //ttymsg.setChannel(value); 
                                        else 
                                            if (localName.equals("datetime")) 
                                                //ttymsg.setDatetime(value); 
                                            else 
                                                if (localName.equals("id")) 
                                                    //ttymsg.setId(value); 
                                                else 
                                                    if (localName.equals("version")) 
                                                        //ttymsg.setVersion(value); 
                                                    else 
                                                        if (localName.equals("unto")) 
                                                            //ttymsg.setUnto(value); 
                                                        else 
                                                            if (localName.equals("fse")) 
                                                                //ttymsg.setFse(value); 
                                                            else 
                                                                if (localName.equals("target")) 
                                                                    //ttymsg.setTarget(value); 
                                                                else 
                                                                    if (localName.equals("originator")) 
                                                                        //ttymsg.setOrigin(value); 
                                                                    else 
                                                                        if (localName.equals("type")) 
                                                                            //ttymsg.setType(value); 
                                                                        else 
                                                                        { 
                                                                            int bang = 1 / 0; 
                                                                        } */
                            } 
                        } 
                        else 
                            if (xmlStreamReader.getLocalName().equals("recipient")) // destination 
                            { 
                                String destination = xmlStreamReader.getElementText(); 
                                //ttymsg.addDest(destination); 
                            } 
                            else 
                                if (xmlStreamReader.getLocalName().equals("body"))// && bMessage) 
                                { 
                                    String elementText = xmlStreamReader.getElementText(); 
                                    System.out.println("elementText=" + elementText + "EndOfElementText"); 
                                    //ttymsg.setBase64msg(elementText); 
                                    bMessage = false; 
                                } 
                                else 
                                    System.out.println("START ELEMENT unknown element=" + xmlStreamReader.getLocalName()); 

                        break; 

                    case XMLStreamConstants.CHARACTERS: 
                        System.out.println("" + event + "CHARACTERS=" + xmlStreamReader.getText()); 
                        /*if (bMessage) 
                             { 
                             ttymsg.setBase64msg(xmlStreamReader.getText()); 
                             bMessage = false; 
                             }*/ 
                        break; 

                    case XMLStreamConstants.END_ELEMENT: 
                        System.out.println("" + event + "END_ELEMENT, LocalName=" + xmlStreamReader.getLocalName()); 
                        if (xmlStreamReader.getLocalName().equals("tty")) 
                            endtty = true; 
                        break; 

                    case XMLStreamConstants.END_DOCUMENT: 
                        System.out.println("" + event + "END_DOCUMENT"); 
                        moreRecords = false; 
                        break; 

                    default: 
                        System.out.println("" + event + "default"); 
                        break; 
                } // end of switch 
                if (!moreRecords) 
                    break; 
                if (!xmlStreamReader.hasNext()) 
                { 
                    endtty = true; 
                    System.out.println("premature end of file"); 
                } 
                event = xmlStreamReader.next(); 
            } // end of while 
            if (!moreRecords) 
                break; 
            //end of xml processing 
        } 

	}

}
