On 03/25/2012 10:58 PM, andr...@apache.org wrote:
Author: andreas
Date: Sun Mar 25 20:58:50 2012
New Revision: 1305128

URL: http://svn.apache.org/viewvc?rev=1305128&view=rev
Log:
Add parameters parse-xml and parse-namespace to the I18nTransformer. Allows to 
include XML elements in I18n messages.

Modified:
     
cocoon/cocoon3/trunk/cocoon-sax/src/main/java/org/apache/cocoon/sax/component/I18nTransformer.java

Modified: 
cocoon/cocoon3/trunk/cocoon-sax/src/main/java/org/apache/cocoon/sax/component/I18nTransformer.java
URL: 
http://svn.apache.org/viewvc/cocoon/cocoon3/trunk/cocoon-sax/src/main/java/org/apache/cocoon/sax/component/I18nTransformer.java?rev=1305128&r1=1305127&r2=1305128&view=diff
==============================================================================
--- 
cocoon/cocoon3/trunk/cocoon-sax/src/main/java/org/apache/cocoon/sax/component/I18nTransformer.java
 (original)
+++ 
cocoon/cocoon3/trunk/cocoon-sax/src/main/java/org/apache/cocoon/sax/component/I18nTransformer.java
 Sun Mar 25 20:58:50 2012
@@ -33,9 +33,9 @@ import java.util.Map;
  import java.util.MissingResourceException;
  import java.util.PropertyResourceBundle;
  import java.util.ResourceBundle;
+import java.util.ResourceBundle.Control;
  import java.util.Set;
  import java.util.StringTokenizer;
-import java.util.ResourceBundle.Control;

  import org.apache.cocoon.pipeline.SetupException;
  import org.apache.cocoon.pipeline.caching.CacheKey;
@@ -44,6 +44,7 @@ import org.apache.cocoon.pipeline.compon
  import org.apache.cocoon.sax.AbstractSAXTransformer;
  import org.apache.cocoon.sax.util.VariableExpressionTokenizer;
  import org.apache.cocoon.sax.util.VariableExpressionTokenizer.TokenReceiver;
+import org.apache.cocoon.sax.util.XMLUtils;
  import org.apache.cocoon.xml.sax.ParamSAXBuffer;
  import org.apache.cocoon.xml.sax.SAXBuffer;
  import org.slf4j.Logger;
@@ -577,6 +578,16 @@ public class I18nTransformer extends Abs
      public static final String DEFAULT_ENCODING = "ISO-8859-1";

      /**
+     * If XML inside i18n messages shall be parsed.
+     */
+    public static final String PARAM_PARSE_XML = "parse-xml";
+
+    /**
+     * The default namespace for XML elements inside messages. Defaults to 
http://www.w3.org/1999/xhtml.
+     */
+    public static final String PARAM_PARSE_NAMESPACE = "parse-namespace";
+
+    /**
       * States of the transformer.
       */
      private enum TransformerState {
@@ -717,6 +728,12 @@ public class I18nTransformer extends Abs

      // Date and number elements and params formatting attributes with values.
      private Map<String, String>  formattingParams;
+
+    // parse XML inside messages?
+    private boolean parseXml;
+
+    // default namespace for XML inside messages
+    private String parseNamespace;

      /**
       * Empty constructor, for usage with sitemap.
@@ -806,6 +823,16 @@ public class I18nTransformer extends Abs

          final String encoding = (String) 
(parameters.containsKey(PARAM_ENCODING)
                  ? parameters.get(PARAM_ENCODING) : DEFAULT_ENCODING);
+
+        this.parseXml = parameters.containsKey(PARAM_PARSE_XML)
+                ? Boolean.parseBoolean((String) 
parameters.get(PARAM_PARSE_XML))
+                : false;
+
+        if (this.parseXml) {
+            this.parseNamespace = parameters.containsKey(PARAM_PARSE_NAMESPACE)
+                    ? (String) parameters.get(PARAM_PARSE_NAMESPACE)
+                    : "http://www.w3.org/1999/xhtml";;
+        }


Hi Andi,

is there a reason why you did not exposed
- setParseXml(...)
- setParseNamespace(...)

I said it since now it not possible to use the parseXml without using the setup. This however is highly problematic since the first line is
if (parameters == null || !parameters.containsKey(PARAM_BUNDLE)) {
            return;
        }

Meaning if I do not pass the bundle the setup will simply stop however the parseXml is independent from the bundle and the rest of the setup.

So I would like to expose the setter and further move the parameters.containsKey(PARAM_BUNDLE) AFTER the parseXml routine in setup.

If you do not object I will commit it now.

salu2

--
Thorsten Scherler<scherler.at.gmail.com>
codeBusters S.L. - web based systems
<consulting, training and solutions>

http://www.codebusters.es/

Reply via email to