diff --git a/build.xml b/build.xml
index 0e03c51..6941f43 100644
--- a/build.xml
+++ b/build.xml
@@ -57,6 +57,7 @@ ${jar-jdk14.file}"/>
+
@@ -197,6 +198,7 @@ ${jar-jdk14.file}"/>
prefix="${dist.name}"
includes="
${src.dir}/**/*.java,
+${src.dir}/**/*.cup,
${testsrc.dir}/**/*.java,
doc/**/*.css,
doc/**/*.png,
diff --git a/src/org/olap4j/driver/xmla/XmlaOlap4jConnection.java b/src/org/olap4j/driver/xmla/XmlaOlap4jConnection.java
index ebd1955..efad2cb 100644
--- a/src/org/olap4j/driver/xmla/XmlaOlap4jConnection.java
+++ b/src/org/olap4j/driver/xmla/XmlaOlap4jConnection.java
@@ -505,6 +505,8 @@ public String generateRequest(
{
final String dataSourceInfo =
context.olap4jConnection.getDataSourceInfo();
+ final String catalog =
+ context.olap4jConnection.getCatalog();
final String content = "Data";
final String encoding = proxy.getEncodingCharsetName();
final StringBuilder buf = new StringBuilder(
@@ -551,6 +553,9 @@ public String generateRequest(
+ " ");
buf.append(dataSourceInfo);
buf.append("\n"
+ + " ");
+ buf.append(catalog);
+ buf.append("\n"
+ " " + content + "\n"
+ " \n"
+ " \n"
@@ -563,22 +568,26 @@ public String generateRequest(
/**
* Encodes a string for use in an XML CDATA section.
*
- *
TODO use an XML serialiser or handle these too:
- * quote (") "
- * apostrophe (') '
- * ampersand (&) &
- * less than (<) <
- * greater than (>) >
- *
* @param value to be xml encoded
* @return an XML encode string or the value is not required.
*/
private static String xmlEncode(String value){
- if (value.indexOf('&') == -1) {
- return value;
- } else {
- return value.replace("&", "&");
+ if (value.indexOf('&') >= 0) {
+ value = value.replace("&", "&");
+ }
+ if (value.indexOf('<') >= 0) {
+ value = value.replace("<", "<");
+ }
+ if (value.indexOf('>') >= 0) {
+ value = value.replace(">", ">");
+ }
+ if (value.indexOf('"') >= 0) {
+ value = value.replace("\"", """);
+ }
+ if (value.indexOf('\'') >= 0) {
+ value = value.replace("'", "'");
}
+ return value;
}
// ~ inner classes --------------------------------------------------------