public static Cons parseFetchXmlAnswer(Cons xmlanswer, NamedDescription relation, Cons outputcolumns) {
    { Cons tuples = Stella.NIL;

      if (!(Stella_Object.isaP(xmlanswer.value, RDBMS.SGT_STELLA_XML_ELEMENT) &&
          (Stella.stringEqlP(((XmlElement)(xmlanswer.value)).name, "PlanExecution") &&
           Stella.stringEqlP(((XmlElement)(xmlanswer.value)).namespaceUri, null)))) {
        Stella.STANDARD_WARNING.nativeStream.println("Warning: Fetch-EDB-query Error: Didn't find a Fetch Answer in `" + xmlanswer + "'");
        return (Stella.NIL);
      }
      { Stella_Object answer = null;
        Cons iter000 = xmlanswer.rest.rest;

        for (;!(iter000 == Stella.NIL); iter000 = iter000.rest) {
          answer = iter000.value;
          if (Stella_Object.isaP(answer, RDBMS.SGT_STELLA_CONS) &&
              Stella_Object.isaP(((Cons)(answer)).value, RDBMS.SGT_STELLA_XML_ELEMENT)) {
            { XmlElement item000 = ((XmlElement)(((Cons)(answer)).value));

              if (Stella.stringEqlP(item000.name, "OBJECT") &&
                  Stella.stringEqlP(item000.namespaceUri, null)) {
                tuples = Cons.cons(RDBMS.parseOneFetchXmlObject(((Cons)(answer)).rest.rest, relation, outputcolumns), tuples);
              }
              else if (Stella.stringEqlP(item000.name, "Error") &&
                  Stella.stringEqlP(item000.namespaceUri, null)) {
                { OutputStringStream stream000 = OutputStringStream.newOutputStringStream();

                  stream000.nativeStream.print("`" + StringWrapper.unwrapString(((StringWrapper)(((Cons)(answer)).rest.rest.value))) + "'");
                  throw ((StellaException)(StellaException.newStellaException(stream000.theStringReader()).fillInStackTrace()));
                }
              }
              else if (Stella.stringEqlP(item000.name, "ERROR") &&
                  Stella.stringEqlP(item000.namespaceUri, null)) {
                { OutputStringStream stream001 = OutputStringStream.newOutputStringStream();

                  stream001.nativeStream.print("`" + StringWrapper.unwrapString(((StringWrapper)(((Cons)(answer)).rest.rest.value))) + "'");
                  throw ((StellaException)(StellaException.newStellaException(stream001.theStringReader()).fillInStackTrace()));
                }
              }
            }
          }
        }
      }
      return (tuples.reverse());
    }
  }