How to convert between various types of data:

Please help by adding best-practice sample code (and links to other pages with more detailed explanations) for various environments in Cocoon, such as plain Java objects, Flowscript, XSP, XSL, JXPath, etc. Also, please feel free to refactor, rename, or even rewrite this page as needed.

Unescaped String -> Escaped String

In Java code

  import org.apache.commons.lang.StringEscapeUtils;

    public String escape(String input) {
        return StringEscapeUtils.escapeJava(input);

    }

In Flowscript

  function escapeString(unescaped_string) {
      return Packages.org.apache.commons.lang.StringEscapeUtils.escapeJavaScript(unescaped_string);
  }

The library commons-lang-2.0 is in the lib/core folder of cocoon distribution and contains a lot of other helpful functionality

Escaped String -> Unescaped String

In Java code

  import org.apache.commons.lang.StringEscapeUtils;

    public String escape(String input) {
        return StringEscapeUtils.unescapeJava(input);

    }

In Flowscript

  function unescapeString(escaped_string) {
      return Packages.org.apache.commons.lang.StringEscapeUtils.unescapeJavaScript(escaped_string);
  }

Unescaped String -> DOM

  import org.apache.excalibur.xml.dom.DOMParser;
  import org.w3c.dom.Document;
  import org.xml.sax.InputSource;

    ServiceManager manager;
   (obtained via Serviceable or something)


    public Document stringToDOM(String input) throws Exception {
        Document result = null;
        DOMParser parser = null;
        try {
            parser = (DOMParser)manager.lookup(DOMParser.ROLE);
            result = parser.parseDocument(new InputSource(new StringReader(input)));
        } finally {
            manager.release(parser);
        }
        return result;
    }

Unescaped String -> DOM fragment

DOM -> Unescaped String

FlowScript:

  function serializeNode(node) {
      return Packages.org.apache.cocoon.xml.XMLUtils.serializeNodeToXML(node);
  }

DOM Fragment -> Unescaped String

Escaped String -> DOM

Escaped String -> DOM fragment

DOM -> Escaped String

DOM Fragment -> Escaped String

Source -> DOM

DOM -> SAX stream

Validate a DOM against a DTD

Validate a DOM against an XML schema

Evaluate an XPath expression against a DOM

Others?

  • No labels