Fix XML Schema structure for char types without length (bug #3782)
authorPeter Eisentraut <peter_e@gmx.net>
Wed, 28 Nov 2007 14:01:51 +0000 (14:01 +0000)
committerPeter Eisentraut <peter_e@gmx.net>
Wed, 28 Nov 2007 14:01:51 +0000 (14:01 +0000)
src/backend/utils/adt/xml.c

index 23274340923769ebd30e00ca883bd596f75c21cd..2ea886f624f2c5f4336283721901787da8cdb379 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/backend/utils/adt/xml.c,v 1.62 2007/11/27 18:13:01 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/xml.c,v 1.63 2007/11/28 14:01:51 petere Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -2984,12 +2984,14 @@ map_sql_type_to_xmlschema_type(Oid typeoid, int typmod)
            case BPCHAROID:
            case VARCHAROID:
            case TEXTOID:
+               appendStringInfo(&result,
+                                "  <xsd:restriction base=\"xsd:string\">\n");
                if (typmod != -1)
                    appendStringInfo(&result,
-                                 "  <xsd:restriction base=\"xsd:string\">\n"
-                                    "    <xsd:maxLength value=\"%d\"/>\n"
-                                    "  </xsd:restriction>\n",
+                                    "    <xsd:maxLength value=\"%d\"/>\n",
                                     typmod - VARHDRSZ);
+               appendStringInfo(&result,
+                                "  </xsd:restriction>\n");
                break;
 
            case BYTEAOID:
@@ -2997,6 +2999,7 @@ map_sql_type_to_xmlschema_type(Oid typeoid, int typmod)
                                 "  <xsd:restriction base=\"xsd:%s\">\n"
                                 "  </xsd:restriction>\n",
                xmlbinary == XMLBINARY_BASE64 ? "base64Binary" : "hexBinary");
+               break;
 
            case NUMERICOID:
                if (typmod != -1)