*** empty log message ***
authorrgradisc
Wed, 12 Nov 2003 09:32:22 +0100
changeset 114727caac98b446
parent 1146 c0a1b55bab3f
child 1148 dfb9845ccb15
*** empty log message ***
src/java/isac/util/XMLParserDigest.java
     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(" & ", "&amp;");
    1.63 +    xmlString = xmlString.replaceAll(" > ", "&gt;");
    1.64 +    xmlString = xmlString.replaceAll(" < ", "&lt;");    
    1.65 +  }
    1.66 +
    1.67 +  public static void decodeEntities(String xmlString) {
    1.68 +    xmlString = xmlString.replaceAll("&amp;"," & ");
    1.69 +    xmlString = xmlString.replaceAll("&gt;"," > ");
    1.70 +    xmlString = xmlString.replaceAll("&lt;"," < ");    
    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    };