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.