Consultor Eletrônico



Kbase P122968: bproxsdto4gl fails to convert XML Schema document
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   8/12/2008
Status: Unverified

SYMPTOM(s):

bproxsdto4gl fails to convert XML Schema document

Getting errors 13106, 13111, 13121, 13138, 13853 when converting XML Schema document

XML Schema does not map to a dataset definition. (13106)

Unable to create data-relation based on nested Temp-Table schema elements. (13111)

Unable to find complexType definition <name>. (13121)

Temp-table <table_name> not found in XML Schema. (13138)

Unable to map simpleType <name> to Progress data type. (13853)

FACT(s) (Environment):

OpenEdge 10.1x
All Supported Operating Systems
OpenEdge Category: Language (4GL/ABL)

CAUSE:

In order for the bproxsdto4gl tool to work on the XML Schema document, the XSD must specify a dataset which contains a sequence of temp-table definitions. The temp-table definitions will then consist of a sequence of field definitions. In addition there are XML Schema constructs for defining indexes and data-relations.

FIX:

The following example shows the XML Schema format that must be used:

<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="" xmlns:prodata="urn:schemas-progress-com:xml-prodata:0001" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="myDataset" prodata:proDataSet="true" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ttSimple" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="RcId" type="xsd:long" nillable="true" prodata:label="Record id"/>
<xsd:element name="Name" type="xsd:string" nillable="true" prodata:format="x(15)" prodata:label="Customer Name" prodata:help="Please Enter a name"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>

Running the bproxsdto4gl tool on this document will generate the following output:

DEFINE TEMP-TABLE ttSimple NO-UNDO
FIELD RcId AS INT64

LABEL "Record id"
FIELD Name AS CHARACTER FORMAT "x(15)"
LABEL "Customer Name"
HELP "Please Enter a name" .
DEFINE DATASET myDataset FOR ttSimple.