1.1 --- a/src/java/isac/util/XMLParserDigest.java Tue Nov 11 16:58:47 2003 +0100
1.2 +++ b/src/java/isac/util/XMLParserDigest.java Wed Nov 12 09:32:22 2003 +0100
1.3 @@ -42,7 +42,8 @@
1.4 public BridgeEntityResolver(String dtd) {
1.5 this.dtd = dtd;
1.6 }
1.7 - public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException {
1.8 + public InputSource resolveEntity(String publicId, String systemId)
1.9 + throws SAXException, IOException {
1.10 if ((systemId != null) && systemId.endsWith("isac.dtd")) {
1.11 //System.out.println("------->inside entity resolv");
1.12 return new InputSource(new StringReader(dtd));
1.13 @@ -137,8 +138,14 @@
1.14 // Rules for parsing RewriteSetInstTactic
1.15 digester.addObjectCreate("*/REWRITESETINSTTACTIC", RewriteSetInst.class);
1.16 digester.addCallMethod("*/REWRITESETINSTTACTIC/RULESET", "setRuleSet", 0);
1.17 - digester.addCallMethod("*/REWRITESETINSTTACTIC/SUBSTITUTION/PAIR/VARIABLE/MATHML/ISA", "setVariable", 0);
1.18 - digester.addCallMethod("*/REWRITESETINSTTACTIC/SUBSTITUTION/PAIR/VALUE/MATHML/ISA", "setValue", 0);
1.19 + digester.addCallMethod(
1.20 + "*/REWRITESETINSTTACTIC/SUBSTITUTION/PAIR/VARIABLE/MATHML/ISA",
1.21 + "setVariable",
1.22 + 0);
1.23 + digester.addCallMethod(
1.24 + "*/REWRITESETINSTTACTIC/SUBSTITUTION/PAIR/VALUE/MATHML/ISA",
1.25 + "setValue",
1.26 + 0);
1.27 digester.addSetProperties("*/REWRITESETINSTTACTIC", "name", "name");
1.28 digester.addSetNext("*/REWRITESETINSTTACTIC", "setResponse");
1.29
1.30 @@ -152,8 +159,8 @@
1.31 digester.addObjectCreate("*/ADDUSER", CalcHeadSimpleID.class);
1.32 digester.addCallMethod("*/ADDUSER/USERID", "setID", 0);
1.33 digester.addSetNext("*/ADDUSER", "setResponse");
1.34 - }
1.35 -
1.36 + }
1.37 +
1.38 private void addItemList(Digester digester, String modPart) {
1.39 String modPartUp = modPart.toUpperCase();
1.40 // Rules for parsing ItemLists in the model part of a CalcHead: Given Find Where Relate
1.41 @@ -184,7 +191,14 @@
1.42 */
1.43 public ResponseWrapper parse(String xmlString) {
1.44 Object o = null;
1.45 - xmlString = "<?xml version=\"1.0\"?><!DOCTYPE ISAC SYSTEM \"" + dtdPath + "\"><ISAC>" + xmlString + "</ISAC>";
1.46 + xmlString =
1.47 + "<?xml version=\"1.0\"?><!DOCTYPE ISAC SYSTEM \""
1.48 + + dtdPath
1.49 + + "\"><ISAC>"
1.50 + + xmlString
1.51 + + "</ISAC>";
1.52 +
1.53 + encodeEntities(xmlString);
1.54 try {
1.55 digester.clear();
1.56 //System.out.println("root === " + digester.getRoot());
1.57 @@ -200,10 +214,27 @@
1.58 return wrapper;
1.59 }
1.60
1.61 + public static void encodeEntities(String xmlString) {
1.62 + xmlString = xmlString.replaceAll(" & ", "&");
1.63 + xmlString = xmlString.replaceAll(" > ", ">");
1.64 + xmlString = xmlString.replaceAll(" < ", "<");
1.65 + }
1.66 +
1.67 + public static void decodeEntities(String xmlString) {
1.68 + xmlString = xmlString.replaceAll("&"," & ");
1.69 + xmlString = xmlString.replaceAll(">"," > ");
1.70 + xmlString = xmlString.replaceAll("<"," < ");
1.71 + }
1.72 +
1.73 public static void main(String[] args) {
1.74 - XMLParserDigest d = new XMLParserDigest("/netshares/studenthomes/rgradisc/workspace/isac/isac/util/isac.dtd");
1.75 - System.out.println(d.parse("<ISAC><NEXTTAC><CALCID> 1 </CALCID><REWRITESETTACTIC name=\"Rewrite_Set\"><RULESET> Test_simplify</RULESET></REWRITESETTACTIC></NEXTTAC></ISAC>"));
1.76 - System.out.println(d.parse("<ISAC><NEXTTAC><CALCID> 1 </CALCID><SIMPLETACTIC name=\"Add_Given\"><MATHML><ISA>equality (1 + -1 * 2 + x = 0)</ISA></MATHML></SIMPLETACTIC></NEXTTAC></ISAC>"));
1.77 + XMLParserDigest d =
1.78 + new XMLParserDigest("/netshares/studenthomes/rgradisc/workspace/isac/isac/util/isac.dtd");
1.79 + System.out.println(
1.80 + d.parse(
1.81 + "<ISAC><NEXTTAC><CALCID> 1 </CALCID><REWRITESETTACTIC name=\"Rewrite_Set\"><RULESET> Test_simplify</RULESET></REWRITESETTACTIC></NEXTTAC></ISAC>"));
1.82 + System.out.println(
1.83 + d.parse(
1.84 + "<ISAC><NEXTTAC><CALCID> 1 </CALCID><SIMPLETACTIC name=\"Add_Given\"><MATHML><ISA>equality (1 + -1 * 2 + x = 0)</ISA></MATHML></SIMPLETACTIC></NEXTTAC></ISAC>"));
1.85 System.out.println(d.parse("<ISAC></ISAC>"));
1.86 System.out.println("done");
1.87 };