Author: vgritsenko
Date: Tue May  3 12:49:23 2005
New Revision: 167969

URL: http://svn.apache.org/viewcvs?rev=167969&view=rev
Log:
Cleanup namespace handling in the SQLTransformer (at least a bit).
More samples are desperately needed for testing.
Fixes bug #25203, #31634.

Modified:
    
cocoon/branches/BRANCH_2_1_X/src/blocks/databases/java/org/apache/cocoon/transformation/SQLTransformer.java
    
cocoon/branches/BRANCH_2_1_X/src/blocks/databases/samples/transform/sql-page.xml
    
cocoon/branches/BRANCH_2_1_X/src/documentation/xdocs/userdocs/transformers/sql-transformer.xml
    cocoon/branches/BRANCH_2_1_X/status.xml

Modified: 
cocoon/branches/BRANCH_2_1_X/src/blocks/databases/java/org/apache/cocoon/transformation/SQLTransformer.java
URL: 
http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/databases/java/org/apache/cocoon/transformation/SQLTransformer.java?rev=167969&r1=167968&r2=167969&view=diff
==============================================================================
--- 
cocoon/branches/BRANCH_2_1_X/src/blocks/databases/java/org/apache/cocoon/transformation/SQLTransformer.java
 (original)
+++ 
cocoon/branches/BRANCH_2_1_X/src/blocks/databases/java/org/apache/cocoon/transformation/SQLTransformer.java
 Tue May  3 12:49:23 2005
@@ -145,30 +145,31 @@
     /** Check if nr of rows need to be written out. **/
     protected boolean showNrOfRows;
 
-    /** Namespace prefix to output */
-    protected String outPrefix;
-
-    /** Namespace uri to output */
+    /** The namespace uri of the XML output. Defaults to [EMAIL PROTECTED] 
#namespaceURI}. */
     protected String outUri;
 
+    /** The namespace prefix of the XML output. Defaults to 'sql'. */
+    protected String outPrefix;
+
     /** The database selector */
     protected ServiceSelector dbSelector;
 
-    protected XMLSerializer compiler;
-    protected XMLDeserializer interpreter;
-    protected SAXParser parser;
-
     /** Encoding we use for CLOB field */
        protected String clobEncoding;
 
     /** The connection used by all top level queries */
     protected Connection conn;
 
+    // Used to parse XML from database.
+    protected XMLSerializer compiler;
+    protected XMLDeserializer interpreter;
+    protected SAXParser parser;
+
     /**
      * Constructor
      */
     public SQLTransformer() {
-        this.defaultNamespaceURI = NAMESPACE;
+        super.defaultNamespaceURI = NAMESPACE;
     }
 
     /**
@@ -250,6 +251,7 @@
 
         this.showNrOfRows = 
parameters.getParameterAsBoolean(SQLTransformer.MAGIC_NR_OF_ROWS, false);
         this.clobEncoding = 
parameters.getParameter(SQLTransformer.CLOB_ENCODING, "");
+
         if (getLogger().isDebugEnabled()) {
             if (this.parameters.getParameter(SQLTransformer.MAGIC_CONNECTION, 
null) != null) {
                 getLogger().debug("CONNECTION: " + 
this.parameters.getParameter(SQLTransformer.MAGIC_CONNECTION, null));
@@ -259,11 +261,23 @@
             }
             getLogger().debug("DOC-ELEMENT: " + 
parameters.getParameter(SQLTransformer.MAGIC_DOC_ELEMENT, "rowset"));
             getLogger().debug("ROW-ELEMENT: " + 
parameters.getParameter(SQLTransformer.MAGIC_ROW_ELEMENT, "row"));
-            getLogger().debug("NS-URI: " + 
parameters.getParameter(SQLTransformer.MAGIC_NS_URI_ELEMENT, NAMESPACE));
-            getLogger().debug("NS-PREFIX: " + 
parameters.getParameter(SQLTransformer.MAGIC_NS_PREFIX_ELEMENT, ""));
-            getLogger().debug("CLOB_ENCODING: " + clobEncoding);
+            getLogger().debug("Using CLOB encoding: " + clobEncoding);
+        }
+    }
+
+    /**
+     * Return attribute value.
+     * First try non-namespaced attribute, then try this transformer namespace.
+     * @param name local attribute name
+     */
+    private String getAttributeValue(Attributes attr, String name) {
+        String value = attr.getValue("", name);
+        if (value == null) {
+            value = attr.getValue(this.namespaceURI, name);
         }
-   }
+
+        return value;
+    }
 
     /**
      * This will be the meat of SQLTransformer, where the query is run.
@@ -274,10 +288,13 @@
             getLogger().debug("Executing query nr " + index);
         }
 
-        this.outUri = 
getCurrentQuery().properties.getParameter(SQLTransformer.MAGIC_NS_URI_ELEMENT, 
NAMESPACE);
-        this.outPrefix = 
getCurrentQuery().properties.getParameter(SQLTransformer.MAGIC_NS_PREFIX_ELEMENT,
 "");
+        this.outUri = 
getCurrentQuery().properties.getParameter(SQLTransformer.MAGIC_NS_URI_ELEMENT, 
namespaceURI);
+        this.outPrefix = 
getCurrentQuery().properties.getParameter(SQLTransformer.MAGIC_NS_PREFIX_ELEMENT,
 "sql");
 
-        if (!"".equals(this.outUri)) {
+        // Start prefix mapping for output namespace
+        // only if its URI is not empty, and if it is not this transformer 
namespace.
+        final boolean startPrefixMapping = !"".equals(this.outUri) && 
!namespaceURI.equals(this.outUri);
+        if (startPrefixMapping) {
             super.startPrefixMapping(this.outPrefix, this.outUri);
         }
 
@@ -314,13 +331,11 @@
             if (!query_failure) {
                 AttributesImpl attr = new AttributesImpl();
                 if (this.showNrOfRows) {
-                    attr.addAttribute(NAMESPACE, query.nr_of_rows, 
query.nr_of_rows, "CDATA",
-                                      String.valueOf(query.getNrOfRows()));
+                    attr.addAttribute("", query.nr_of_rows, query.nr_of_rows, 
"CDATA", String.valueOf(query.getNrOfRows()));
                 }
                 String name = query.getName();
                 if (name != null) {
-                    attr.addAttribute(NAMESPACE, query.name_attribute, 
query.name_attribute, "CDATA",
-                                      name);
+                    attr.addAttribute("", query.name_attribute, 
query.name_attribute, "CDATA", name);
                 }
                 start(query.rowset_name, attr);
 
@@ -339,7 +354,6 @@
 
                 end(query.rowset_name);
             }
-
         } catch (SQLException e) {
             getLogger().debug("Exception in executeQuery()", e);
             throw new SAXException(e);
@@ -355,7 +369,7 @@
             }
         }
 
-        if (!"".equals(this.outUri)) {
+        if (startPrefixMapping) {
             super.endPrefixMapping(this.outPrefix);
         }
     }
@@ -483,15 +497,13 @@
             case SQLTransformer.STATE_INSIDE_QUERY_ELEMENT:
                 int level = 0;
                 try {
-                    level = Integer.parseInt(attributes.getValue(NAMESPACE,
-                                                                 
SQLTransformer.MAGIC_ANCESTOR_VALUE_LEVEL_ATTRIBUTE));
+                    level = Integer.parseInt(getAttributeValue(attributes, 
SQLTransformer.MAGIC_ANCESTOR_VALUE_LEVEL_ATTRIBUTE));
                 } catch (Exception e) {
                     getLogger().debug("Exception in 
startAncestorValueElement", e);
                     throwIllegalStateException("Ancestor value elements must 
have a " +
                                                
SQLTransformer.MAGIC_ANCESTOR_VALUE_LEVEL_ATTRIBUTE + " attribute");
                 }
-                String name = attributes.getValue(NAMESPACE,
-                                                  
SQLTransformer.MAGIC_ANCESTOR_VALUE_NAME_ATTRIBUTE);
+                String name = getAttributeValue(attributes, 
SQLTransformer.MAGIC_ANCESTOR_VALUE_NAME_ATTRIBUTE);
                 if (name == null) {
                     throwIllegalStateException("Ancestor value elements must 
have a " +
                                                
SQLTransformer.MAGIC_ANCESTOR_VALUE_NAME_ATTRIBUTE + " attribute");
@@ -526,8 +538,7 @@
     throws ProcessingException, SAXException {
         switch (current_state) {
             case SQLTransformer.STATE_INSIDE_QUERY_ELEMENT:
-                String name = attributes.getValue(NAMESPACE,
-                                                  
SQLTransformer.MAGIC_SUBSTITUTE_VALUE_NAME_ATTRIBUTE);
+                String name = getAttributeValue(attributes, 
SQLTransformer.MAGIC_SUBSTITUTE_VALUE_NAME_ATTRIBUTE);
                 if (name == null) {
                     throwIllegalStateException("Substitute value elements must 
have a " +
                                                
SQLTransformer.MAGIC_SUBSTITUTE_VALUE_NAME_ATTRIBUTE + " attribute");
@@ -607,10 +618,8 @@
     protected void startInParameterElement(Attributes attributes) {
         switch (current_state) {
             case SQLTransformer.STATE_INSIDE_EXECUTE_QUERY_ELEMENT:
-                String nr = attributes.getValue(NAMESPACE,
-                                                
SQLTransformer.MAGIC_IN_PARAMETER_NR_ATTRIBUTE);
-                String value = attributes.getValue(NAMESPACE,
-                                                   
SQLTransformer.MAGIC_IN_PARAMETER_VALUE_ATTRIBUTE);
+                String nr = getAttributeValue(attributes, 
SQLTransformer.MAGIC_IN_PARAMETER_NR_ATTRIBUTE);
+                String value = getAttributeValue(attributes, 
SQLTransformer.MAGIC_IN_PARAMETER_VALUE_ATTRIBUTE);
                 if (getLogger().isDebugEnabled()) {
                     getLogger().debug("IN PARAMETER NR " + nr + "; VALUE " + 
value);
                 }
@@ -632,12 +641,9 @@
     protected void startOutParameterElement(Attributes attributes) {
         switch (current_state) {
             case SQLTransformer.STATE_INSIDE_EXECUTE_QUERY_ELEMENT:
-                String name = attributes.getValue(NAMESPACE,
-                                                  
SQLTransformer.MAGIC_OUT_PARAMETER_NAME_ATTRIBUTE);
-                String nr = attributes.getValue(NAMESPACE,
-                                                
SQLTransformer.MAGIC_OUT_PARAMETER_NR_ATTRIBUTE);
-                String type = attributes.getValue(NAMESPACE,
-                                                  
SQLTransformer.MAGIC_OUT_PARAMETER_TYPE_ATTRIBUTE);
+                String name = getAttributeValue(attributes, 
SQLTransformer.MAGIC_OUT_PARAMETER_NAME_ATTRIBUTE);
+                String nr = getAttributeValue(attributes, 
SQLTransformer.MAGIC_OUT_PARAMETER_NR_ATTRIBUTE);
+                String type = getAttributeValue(attributes, 
SQLTransformer.MAGIC_OUT_PARAMETER_TYPE_ATTRIBUTE);
                 if (getLogger().isDebugEnabled()) {
                     getLogger().debug("OUT PARAMETER NAME" + name + ";NR " + 
nr + "; TYPE " + type);
                 }

Modified: 
cocoon/branches/BRANCH_2_1_X/src/blocks/databases/samples/transform/sql-page.xml
URL: 
http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/databases/samples/transform/sql-page.xml?rev=167969&r1=167968&r2=167969&view=diff
==============================================================================
--- 
cocoon/branches/BRANCH_2_1_X/src/blocks/databases/samples/transform/sql-page.xml
 (original)
+++ 
cocoon/branches/BRANCH_2_1_X/src/blocks/databases/samples/transform/sql-page.xml
 Tue May  3 12:49:23 2005
@@ -32,7 +32,7 @@
       </sql:query>
       <sql:execute-query>
         <sql:query>
-          select id, name from employee where department_id = 
<sql:ancestor-value sql:name="id" sql:level="1"/>
+          select id, name from employee where department_id = 
<sql:ancestor-value name="id" level="1"/>
         </sql:query>
       </sql:execute-query>
     </sql:execute-query>

Modified: 
cocoon/branches/BRANCH_2_1_X/src/documentation/xdocs/userdocs/transformers/sql-transformer.xml
URL: 
http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/documentation/xdocs/userdocs/transformers/sql-transformer.xml?rev=167969&r1=167968&r2=167969&view=diff
==============================================================================
--- 
cocoon/branches/BRANCH_2_1_X/src/documentation/xdocs/userdocs/transformers/sql-transformer.xml
 (original)
+++ 
cocoon/branches/BRANCH_2_1_X/src/documentation/xdocs/userdocs/transformers/sql-transformer.xml
 Tue May  3 12:49:23 2005
@@ -48,11 +48,11 @@
       <source>
       <![CDATA[
   <page>
-    <execute-query xmlns="http://apache.org/cocoon/SQL/2.0";> 
-      <query>
+    <sql:execute-query xmlns:sql="http://apache.org/cocoon/SQL/2.0";> 
+      <sql:query>
       <!-- here comes the SQL statement or stored procedure -->
-      </query>
-    </execute-query>
+      </sql:query>
+    </sql:execute-query>
   </page>
    ]]></source>
       <p>
@@ -72,7 +72,7 @@
           query, you can use another transformer to check the name of the 
rowset
           and to execute the necessary business logic on it.
           <br/>
-          usage: <code>&lt;query name="myName"&gt;</code>
+          usage: <code>&lt;sql:query name="myName"&gt;</code>
         </li>
         <li>
           <strong>isstoredprocedure</strong>:
@@ -80,7 +80,7 @@
           this attribute to the query element. By default, the transformer
           assumes that you want to execute a SQL statement.
           <br/>
-          usage: <code>&lt;query isstoredprocedure="true"&gt;</code>
+          usage: <code>&lt;sql:query isstoredprocedure="true"&gt;</code>
         </li>
       </ol>
       <p>Here is an example of how the input XML might look like:</p>
@@ -90,11 +90,11 @@
    <title>Hello</title>
    <content>
     <para>This is my first Cocoon page filled with sql data!</para>
-    <execute-query xmlns="http://apache.org/cocoon/SQL/2.0";> 
-     <query name="department">
-          select id,name from department_table 
-     </query>
-    </execute-query>
+    <sql:execute-query xmlns:sql="http://apache.org/cocoon/SQL/2.0";> 
+     <sql:query name="department">
+       select id,name from department_table 
+     </sql:query>
+    </sql:execute-query>
    </content>
   </page>
    ]]></source>
@@ -136,17 +136,17 @@
    <title>Hello</title>
    <content>
     <para>This is my first Cocoon page filled with sql data!</para>
-    <rowset nrofrows="2" name="department" 
-            xmlns="http://apache.org/cocoon/SQL/2.0";>
-      <row>
-        <id>1</id>
-        <name>Programmers</name>
-      </row>
-      <row>
-        <id>2</id>
-        <name>Loungers</name>
-      </row>
-    </rowset>
+    <sql:rowset nrofrows="2" name="department" 
+                xmlns:sql="http://apache.org/cocoon/SQL/2.0";>
+      <sql:row>
+        <sql:id>1</sql:id>
+        <sql:name>Programmers</sql:name>
+      </sql:row>
+      <sql:row>
+        <sql:id>2</sql:id>
+        <sql:name>Loungers</sql:name>
+      </sql:row>
+    </sql:rowset>
    </content>
   </page>
    ]]></source>
@@ -179,13 +179,13 @@
         </p>
         <source>
         <![CDATA[
-  <page xmlns:sql="http://apache.org/cocoon/SQL/2.0";>
-    <execute-query xmlns="http://apache.org/cocoon/SQL/2.0";>
-      <query>
-       select id,name from employee_table where name =
-                '<sql:substitute-value sql:name="username"/>'
-      </query>
-    </execute-query>
+  <page>
+    <sql:execute-query xmlns:sql="http://apache.org/cocoon/SQL/2.0";>
+      <sql:query>
+        select id,name from employee_table where name =
+            '<sql:substitute-value name="username"/>'
+      </sql:query>
+    </sql:execute-query>
   </page>
      ]]></source>
         <p>
@@ -211,13 +211,13 @@
         <p>The output XML will be as follow:</p>
         <source>
         <![CDATA[
-  <page xmlns:sql="http://apache.org/cocoon/SQL/2.0";>
-    <rowset nrofrows="1" xmlns="http://apache.org/cocoon/SQL/2.0";>
-      <row>
-        <id>2</id>
-        <name>Stefano Mazzocchi</name>
-      </row>
-    </rowset>
+  <page>
+    <sql:rowset nrofrows="1" xmlns:sql="http://apache.org/cocoon/SQL/2.0";>
+      <sql:row>
+        <sql:id>2</sql:id>
+        <sql:name>Stefano Mazzocchi</sql:name>
+      </sql:row>
+    </sql:rowset>
   </page>
      ]]></source>
         <p>
@@ -230,18 +230,18 @@
         <p>Take following input XML:</p>
         <source>
         <![CDATA[
-  <page xmlns:sql="http://apache.org/cocoon/SQL/2.0";>
-    <execute-query xmlns="http://apache.org/cocoon/SQL/2.0";>
-     <query name="department">
-          select id,name from department_table
-     </query>
-     <execute-query>
-      <query name="employee">
-       select id,name from employee_table where department_id =
-                  <ancestor-value sql:name="id" sql:level="1"/>
-      </query>
-     </execute-query>
-    </execute-query>
+  <page>
+    <sql:execute-query xmlns:sql="http://apache.org/cocoon/SQL/2.0";>
+      <sql:query name="department">
+        select id, name from department_table
+      </sql:query>
+      <sql:execute-query>
+        <sql:query name="employee">
+          select id, name from employee_table where department_id =
+              <sql:ancestor-value name="id" level="1"/>
+        </sql:query>
+      </sql:execute-query>
+    </sql:execute-query>
   </page>
      ]]></source>
         <p>
@@ -255,34 +255,34 @@
         </p>
         <source>
         <![CDATA[
-  <page xmlns:sql="http://apache.org/cocoon/SQL/2.0";>
-    <rowset nrofrows="2" name="department" 
-            xmlns="http://apache.org/cocoon/SQL/2.0";>
-      <row>
-        <id>1</id>
-        <name>Programmers</name>
-        <rowset nrofrows="2" name="employee">
-          <row>
-            <id>1</id>
-            <name>Donald Ball</name>
-          </row>
-          <row>
-            <id>2</id>
-            <name>Stefano Mazzocchi</name>
-          </row>
-        </rowset>
-      </row>
-      <row>
-        <id>2</id>
-        <name>Loungers</name>
-        <rowset nrofrows="1" name="employee">
-          <row>
-            <id>3</id>
-            <name>Pierpaolo Fumagalli</name>
-          </row>
-        </rowset>
-      </row>
-    </rowset>
+  <page>
+    <sql:rowset nrofrows="2" name="department" 
+                xmlns:sql="http://apache.org/cocoon/SQL/2.0";>
+      <sql:row>
+        <sql:id>1</sql:id>
+        <sql:name>Programmers</sql:name>
+        <sql:rowset nrofrows="2" name="employee">
+          <sql:row>
+            <sql:id>1</sql:id>
+            <sql:name>Donald Ball</sql:name>
+          </sql:row>
+          <sql:row>
+            <sql:id>2</sql:id>
+            <sql:name>Stefano Mazzocchi</sql:name>
+          </sql:row>
+        </sql:rowset>
+      </sql:row>
+      <sql:row>
+        <sql:id>2</sql:id>
+        <sql:name>Loungers</sql:name>
+        <sql:rowset nrofrows="1" name="employee">
+          <sql:row>
+            <sql:id>3</sql:id>
+            <sql:name>Pierpaolo Fumagalli</sql:name>
+          </sql:row>
+        </sql:rowset>
+      </sql:row>
+    </sql:rowset>
   </page>
      ]]></source>
       </s2>
@@ -297,8 +297,9 @@
         </p>
         <source>
         <![CDATA[
-  <out-parameter sql:nr="1" sql:name="code"
-                 sql:type="java.sql.Types.INTEGER"/>
+  <sql:out-parameter nr="1"
+                     name="code"
+                     type="java.sql.Types.INTEGER"/>
      ]]></source>
         <p>where:</p>
         <ol>
@@ -325,19 +326,19 @@
         </p>
         <source>
         <![CDATA[
-  <page xmlns:sql="http://apache.org/cocoon/SQL/2.0";>
-    <execute-query xmlns="http://apache.org/cocoon/SQL/2.0";>
-      <query isstoredprocedure="true" name="namesearch">
-          begin QUICK_SEARCH.FIND_NAME('<sql:substitute-value
-                          sql:name="username"/>',?,?,?); end;
-      </query>
-      <out-parameter sql:nr="1" sql:name="code"
-                     sql:type="java.sql.Types.INTEGER"/>
-      <out-parameter sql:nr="2" sql:name="nrofrows"
-                     sql:type="java.sql.Types.INTEGER"/>
-      <out-parameter sql:nr="3" sql:name="resultset"
-                     sql:type="oracle.jdbc.driver.OracleTypes.CURSOR"/>
-    </execute-query>
+  <page>
+    <sql:execute-query xmlns:sql="http://apache.org/cocoon/SQL/2.0";>
+      <sql:query isstoredprocedure="true" name="namesearch">
+        begin QUICK_SEARCH.FIND_NAME('<sql:substitute-value
+            name="username"/>',?,?,?); end;
+      </sql:query>
+      <sql:out-parameter nr="1" name="code"
+                         type="java.sql.Types.INTEGER"/>
+      <sql:out-parameter nr="2" name="nrofrows"
+                         type="java.sql.Types.INTEGER"/>
+      <sql:out-parameter nr="3" name="resultset"
+                         type="oracle.jdbc.driver.OracleTypes.CURSOR"/>
+    </sql:execute-query>
   </page>
      ]]></source>
         <p>
@@ -348,7 +349,7 @@
           <code>ResultSet</code>, a <code>rowset</code> element will be 
created,
           containing all the data of the resultset. It is also possible to use
           an <em>in-parameter</em> element, e.g.
-          <code>&lt;in-parameter sql:nr="1" sql:value="1"/&gt;</code>. This
+          <code>&lt;sql:in-parameter nr="1" value="1"/&gt;</code>. This
           functionality is only provided to be complete, because it is 
available
           in Java itself. You can also use the <em>in-parameter</em> in
           combination with a SQL statement. Used in combination with an
@@ -358,7 +359,7 @@
       </s2>
     </s1>
     <s1 title="Combined with other transformers">
-      <s2 title="Filtertransformer">
+      <s2 title="FilterTransformer">
         <p>
           When you query a database and it returns too many rows to process at
           once, you might want to take a block of elements, process this block
@@ -376,21 +377,21 @@
         <p>Output XML from the SQLTransformer:</p>
         <source>
         <![CDATA[
-  <rowset nrofrows="56" name="test"
-          xmlns="http://apache.org/cocoon/SQL/2.0";>
-    <row>
+  <sql:rowset nrofrows="56" name="test"
+              xmlns:sql="http://apache.org/cocoon/SQL/2.0";>
+    <sql:row>
       <!-- db record -->
-    </row>
-    <row>
+    </sql:row>
+    <sql:row>
       <!-- db record -->
-    </row>
+    </sql:row>
 
     ...
 
-    <row>
+    <sql:row>
       <!-- db record -->
-    </row>
-  </rowset>
+    </sql:row>
+  </sql:rowset>
      ]]></source>
         <p>
           By adding following lines to the sitemap, just under the
@@ -408,25 +409,25 @@
         <p>output XML:</p>
         <source>
         <![CDATA[
-  <rowset nrofrows="56" name="test"
-          xmlns="http://apache.org/cocoon/SQL/2.0";>
+  <sql:rowset nrofrows="56" name="test"
+              xmlns:sql="http://apache.org/cocoon/SQL/2.0";>
     <block id="1">
-      <row>
+      <sql:row>
         <!-- db record -->
-      </row>
+      </sql:row>
 
       <!-- total of 10 rows -->
 
-      <row>
+      <sql:row>
         <!-- db record -->
-      </row>
+      </sql:row>
     </block>
     <block id="2"/>
     <block id="3"/>
     <block id="4"/>
     <block id="5"/>
     <block id="6"/>
-  </rowset>
+  </sql:rowset>
      ]]></source>
         <p>
           To make it more dynamically, put something like

Modified: cocoon/branches/BRANCH_2_1_X/status.xml
URL: 
http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/status.xml?rev=167969&r1=167968&r2=167969&view=diff
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/status.xml (original)
+++ cocoon/branches/BRANCH_2_1_X/status.xml Tue May  3 12:49:23 2005
@@ -196,6 +196,22 @@
 
   <changes>
   <release version="@version@" date="@date@">
+    <action dev="VG" type="update">
+      Databases: Changes in SQLTransformer:
+      <ul>
+        <li>By default, output resulting XML using 'sql' namespace prefix.</li>
+        <li>Accept non-namespaced attributes in the input XML,
+        and prefer them over attributes in SQLTransformer namespace.</li>
+        <li>Support configured namespace, instead of hardcoded value.</li>
+      </ul>
+    </action>
+    <action dev="VG" type="fix" fixes-bug="31634" due-to="Martin Holz" 
due-to-email="[EMAIL PROTECTED]">
+      Databases: SQLTransformer: Output attributes on rowset element with
+      empty namespace.
+    </action>
+    <action dev="VG" type="fix" fixes-bug="25203">
+      Databases: SQLTransformer: Avoid declaring duplicate namespaces.
+    </action>
     <action dev="VG" type="remove">
       Databases: Removed xml-encoding parameter from the SQLTransformer 
configuration.
       The latest SQLTransformer has no byte to character conversions.


Reply via email to