From 96ee6ff502e86620c4977dd04625d4f35b7b4448 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter_e@gmx.net>
Date: Wed, 28 Nov 2007 14:01:51 +0000
Subject: [PATCH] Fix XML Schema structure for char types without length (bug
 #3782)

---
 src/backend/utils/adt/xml.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/backend/utils/adt/xml.c b/src/backend/utils/adt/xml.c
index 23274340923..2ea886f624f 100644
--- a/src/backend/utils/adt/xml.c
+++ b/src/backend/utils/adt/xml.c
@@ -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)
-- 
GitLab