1 package com.instantbank.collections.util;
2
3 import java.sql.SQLException;
4 import javax.naming.NamingException;
5 import oracle.xml.sql.query.OracleXMLQuery;
6 import oracle.xml.parser.v2.XMLDocument;
7 import org.w3c.dom.Node;
8
9
15 public class XMLDataAccess extends Object {
16 private DataAccess dataAccess = null;
17
18
19
24 public XMLDataAccess(String dbpfile) {
25 dataAccess = new DataAccess();
26 }
27
28
29 public boolean connect() throws NamingException, SQLException {
30 return dataAccess.connect();
31 }
32
33
34 public boolean disconnect() {
35 return dataAccess.disconnect();
36 }
37
38
39 public DataAccess getDataAccess() {
40 return dataAccess;
41 }
42
43
44 public String getXml(String query, String rowsetName, String rowName) {
45 return getXml(query, rowsetName, rowName, null, false);
46 }
47
48
49 public String getXml(String query, String rowsetName, String rowName, Node node) {
50 return getXml(query, rowsetName, rowName, null, false, node);
51 }
52
53
54 public String getXml(String query, String rowsetName, String rowName, String dateFormat, boolean noRowsException) {
55 return getXml(query, rowsetName, rowName, dateFormat, noRowsException, null);
56 }
57
58
59 public String getXml(String query, String rowsetName, String rowName, String dateFormat, boolean noRowsException, Node node) {
60 String r;
61
62 OracleXMLQuery responseXml = new OracleXMLQuery(dataAccess.connection, query);
63 responseXml.useLowerCaseTagNames();
64 responseXml.setRowsetTag(rowsetName);
65 responseXml.setRowTag(rowName);
66 responseXml.setEncoding("ISO8859-1");
67 responseXml.setRaiseException(true);
68 if(dateFormat != null) {
69 responseXml.setDateFormat(dateFormat);
70 }
71 responseXml.setRaiseNoRowsException(noRowsException);
72 if(node != null) {
73 r = responseXml.getXMLString(node);
74 }
75 else {
76 r = responseXml.getXMLString();
77 }
78 responseXml.close();
79 return r;
80 }
81
82
83 public XMLDocument makeXMLSelect(String query) {
84 OracleXMLQuery responseXml = new OracleXMLQuery(dataAccess.connection, query);
85 responseXml.useLowerCaseTagNames();
86 responseXml.setEncoding("ISO8859-1");
87 responseXml.setRaiseException(true);
88 return (XMLDocument)responseXml.getXMLDOM();
89 }
90
91
92 public XMLDocument makeXMLSelect(String query, String rowsetName, String rowName) {
93 return makeXMLSelect(query, rowsetName, rowName, null, false, null);
94 }
95
96
97 public XMLDocument makeXMLSelect(String query, String rowsetName, String rowName, Node node) {
98 return makeXMLSelect(query, rowsetName, rowName, null, false, node);
99 }
100
101
102 public XMLDocument makeXMLSelect(String query, String rowsetName, String rowName, String dateFormat, boolean noRowsException) {
103 return makeXMLSelect(query, rowsetName, rowName, dateFormat, noRowsException, null);
104 }
105
106
107 public XMLDocument makeXMLSelect(String query, String rowsetName, String rowName, String dateFormat, boolean noRowsException, Node node) {
108 OracleXMLQuery responseXml = new OracleXMLQuery(dataAccess.connection, query);
109 responseXml.useLowerCaseTagNames();
110 responseXml.setRowsetTag(rowsetName);
111 responseXml.setRowTag(rowName);
112 responseXml.setEncoding("ISO8859-1");
113 responseXml.setRaiseException(true);
114 if(dateFormat != null) {
115 responseXml.setDateFormat(dateFormat);
116 }
117 responseXml.setRaiseNoRowsException(noRowsException);
118 if(node != null) {
119 return (XMLDocument)responseXml.getXMLDOM(node);
120 }
121 else {
122 return (XMLDocument)responseXml.getXMLDOM();
123 }
124 }
125 }
126