BUG #3782: table_to_xmlschema and xsd:simpleType
The following bug has been logged online:
Bug reference: 3782
Logged by: Dragos Ionita
Email address: dragos@beopen.ro
PostgreSQL version: postgresql-8.3b
Operating system: Windows XP SP2
Description: table_to_xmlschema and xsd:simpleType
Details:
The new XML functions are great! I'm building a WSDL document with the help
of the new functions.
http://developer.postgresql.org/pgdocs/postgres/functions-xml.html
I'm having a problem with table_to_xmlschema, for VARCHAR fields the
function returns:
<xsd:simpleType name="VARCHAR">
</xsd:simpleType>
And parsers don't seem to like this:
Invalid XML schema: 'Further elements required under element
<xsd:simpleType>.'
The simpleType should have a child element. Is this a bug or am I missing
something?
Thank you
Am Dienstag, 27. November 2007 schrieb Dragos Ionita:
I'm having a problem with table_to_xmlschema, for VARCHAR fields the
function returns:<xsd:simpleType name="VARCHAR">
</xsd:simpleType>And parsers don't seem to like this:
Invalid XML schema: 'Further elements required under element
<xsd:simpleType>.'The simpleType should have a child element. Is this a bug or am I missing
something?
Oh yes, I didn't consider the XML Schema specification well enough. Please
try the attached patch.
Do you know of an XML Schema checker that we could use to check this?
--
Peter Eisentraut
http://developer.postgresql.org/~petere/
Attachments:
xmlschema-restriction-fix.patchtext/x-diff; charset=iso-8859-1; name=xmlschema-restriction-fix.patchDownload+6-3
Thanks for the patch Peter.
- I applied the patch but wasn't able to compile postgre on windows, but
i'll try again a bit later on linux
- For checking we can use http://www.w3.org/2001/03/webdata/xsv
- One more thing I'd like to point out is what happens in situations
like the following:
if there's a varchar of length 20 and another of length 30,
Two separate XSD types should be declared VARCHAR_20 and VARCHAR_30
as i saw in xml.c map_sql_type_to_xml_name()
However the output is currently just a VARCHAR type:
CREATE TABLE t1
(
cv30 character varying(30),
cv10 character varying(10),
cv10notnull character varying(10) NOT NULL,
numeric_10_3 numeric(10,3),
numeric_10_5 numeric(10,5)
)
WITH (OIDS=FALSE);
-- Then query:
select table_to_xmlschema('t1', true, true, 'test');
-- Expected are simpleTypes with VARCHAR_30 and VARCHAR_10
-- The output in the current beta version is just VARCHAR:
<xsd:schema
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="test"
elementFormDefault="qualified">
<xsd:simpleType name="VARCHAR">
</xsd:simpleType>
<xsd:simpleType name="NUMERIC">
</xsd:simpleType>
<xsd:complexType name="RowType.test.public.t1">
<xsd:sequence>
<xsd:element name="cv30" type="VARCHAR" nillable="true"></xsd:element>
<xsd:element name="cv10" type="VARCHAR" nillable="true"></xsd:element>
<xsd:element name="cv10notnull" type="VARCHAR"
nillable="true"></xsd:element>
<xsd:element name="numeric_10_3" type="NUMERIC"
nillable="true"></xsd:element>
<xsd:element name="numeric_10_5" type="NUMERIC"
nillable="true"></xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="t1" type="RowType.test.public.t1"/>
</xsd:schema>
I'm going to start compiling the postgre and then let you know how it went!
Dragos
Peter Eisentraut wrote:
Show quoted text
Am Dienstag, 27. November 2007 schrieb Dragos Ionita:
I'm having a problem with table_to_xmlschema, for VARCHAR fields the
function returns:<xsd:simpleType name="VARCHAR">
</xsd:simpleType>And parsers don't seem to like this:
Invalid XML schema: 'Further elements required under element
<xsd:simpleType>.'The simpleType should have a child element. Is this a bug or am I missing
something?Oh yes, I didn't consider the XML Schema specification well enough. Please
try the attached patch.Do you know of an XML Schema checker that we could use to check this?