1    package com.instantbank.collections.util;
2    
3    import java.io.ByteArrayInputStream;
4    import java.io.PrintWriter;
5    import java.io.StringWriter;
6    import oracle.xml.parser.v2.DOMParser;
7    import oracle.xml.parser.v2.XMLDocument;
8    import oracle.xml.parser.v2.XMLNode;
9    import org.w3c.dom.Node;
10   
11   public class XMLUtils {
12     public static String xmlHeader() {
13       return "<?xml version = '1.0' encoding = 'ISO-8859-1' standalone = 'yes'?>";
14     }
15   
16   
17     public static XMLDocument getXMLDocument(String xml) throws InstantbankException {
18       DOMParser docParser = new DOMParser();
19       ByteArrayInputStream stream;
20   
21       try {
22         stream = new ByteArrayInputStream(xml.getBytes());
23         docParser.setValidationMode(false);
24         docParser.parse(stream);
25         return docParser.getDocument();
26       }
27       catch(Exception e) {
28         throw new InstantbankException(e, "000010", "Error processing XML document");
29       }
30     }
31   
32   
33     public static String isolateNode(XMLNode doc, String name) throws InstantbankException {
34       XMLNode node;
35   
36       try {
37         node = (XMLNode)doc.selectSingleNode(name);
38         StringWriter sw = new StringWriter();
39         PrintWriter pw = new PrintWriter(sw);
40         node.print(pw);
41         return XMLUtils.xmlHeader() + sw.toString();
42       }
43       catch(Exception e) {
44         throw new InstantbankException(e, "000010", "Error processing XML document");
45       }
46     }
47   
48   
49     public static String removeHeader(String xml) throws InstantbankException {
50       XMLDocument doc;
51       DOMParser docParser = new DOMParser();
52       Node node;
53       PrintWriter pw;
54       XMLNode root;
55       ByteArrayInputStream stream;
56       StringWriter sw;
57   
58       try {
59         stream = new ByteArrayInputStream(xml.getBytes());
60         docParser.setValidationMode(false);
61         docParser.parse(stream);
62         doc = docParser.getDocument();
63         root = (XMLNode)doc.getDocumentElement();
64         sw = new StringWriter();
65         pw = new PrintWriter(sw);
66         root.print(pw);
67         return sw.toString();
68       }
69       catch(Exception e) {
70         throw new InstantbankException(e, "000010", "Error processing XML document");
71       }
72     }
73   
74   
75     public static String setAnswer(String status, String code, String message, String description) {
76       StringBuffer sb = new StringBuffer();
77       sb.append(XMLUtils.xmlHeader());
78       sb.append("<Answer>");
79       sb.append("<Status>" + status + "</Status>");
80       sb.append("<Code>" + code + "</Code>");
81       sb.append("<Message>" + message + "</Message>");
82       sb.append("<Description>" + description + "</Description>");
83       sb.append("</Answer>");
84       return sb.toString();
85     }
86   }
87   
88