XSD to temp-tables/dataset??? - Forum - OpenEdge Development - Progress Community
 Forum

XSD to temp-tables/dataset???

  • Hi all,

    I have tried using bproxsdto4gl and that is not working.  (Guess it is for only progress generated xsd's.)

    Has anyone written such a beast yet and would like to share?

    Scott Augé
    President
    Amduus Information Works, Inc.
    Technical Services for Business and Government
    http://www.amduus.com/cms

  • No, bproxsdto4gl is for generating ABL templates based on any WSDL file, for use with communicating with a Web Service with the ABL.  Not every WSDL parameter can map to a temp-table/prodataset.  Please share more details or log a request with Tech Support.

    Regards,

    Robin

  • Here is a partial of the XSD.

    It really goes on and on and I am hoping to escape manually typing all the temp table definitions and relations in a dataset...

    I am checking if there is a wsdl file available for it (I am behind security that uses a blind web service to call a web service.)

    <?xml version="1.0" encoding="UTF-8"?>

    <xs:schema xmlns:xs="www.w3.org/.../XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">

     <!-- RESPONSE -->

     <xs:element name="Response">

       <xs:complexType>

         <xs:all>

           <xs:element name="TransactionID" type="String" minOccurs="0"/>

           <xs:element name="IntegratorTransactionID" type="String" minOccurs="0"/>

           <xs:element ref="ErnstResponse" minOccurs="0"/>

           <xs:element ref="TitleResponse" minOccurs="0"/>

           <xs:element ref="Block6Response" minOccurs="0"/>

           <xs:element ref="DocumentResponse" minOccurs="0"/>

           <xs:element name="Error" type="Error" minOccurs="0"/>

         </xs:all>

       </xs:complexType>

     </xs:element>

     <!-- ERNST RESPONSE -->

     <xs:element name="ErnstResponse">

       <xs:complexType>

         <xs:all>

           <xs:element ref="Request" minOccurs="0"/>

           <xs:element ref="Data" minOccurs="0"/>

           <xs:element ref="SupplementalAddress" minOccurs="0"/>

           <xs:element name="Display" minOccurs="0">

             <xs:complexType>

               <xs:all>

                 <xs:element ref="Calculation" minOccurs="0"/>

                 <xs:element ref="RecordingWorksheet" minOccurs="0"/>

                 <xs:element ref="DocumentLinks" minOccurs="0"/>

                 <xs:element name="Error" type="Error" minOccurs="0"/>

               </xs:all>

             </xs:complexType>

           </xs:element>

           <xs:element name="Audit" type="Audit" minOccurs="0"/>

           <xs:element name="Error" type="Error" minOccurs="0"/>

         </xs:all>

       </xs:complexType>

     </xs:element>

     <!-- ERNST REQUEST -->

     <xs:element name="Request">

       <xs:complexType>

         <xs:all>

           <xs:element name="ClientTransactionID" type="String" minOccurs="0"/>

           <xs:element name="TransactionID" type="String" minOccurs="0"/>

           <xs:element name="Page" type="String" minOccurs="0"/>

           <xs:element name="City" type="String" minOccurs="0"/>

           <xs:element name="County" type="String" minOccurs="0"/>

           <xs:element name="State" type="String" minOccurs="0"/>

           <xs:element name="TransactionCode" type="String" minOccurs="0"/>

           <xs:element name="DeedNumberOfPages" type="Pages" minOccurs="0"/>

           <xs:element name="MortgageNumberOfPages" type="Pages" minOccurs="0"/>

           <xs:element name="MortgageAmount" type="DecimalOrEmpty" minOccurs="0"/>

           <xs:element name="OriginalDebtAmount" type="DecimalOrEmpty" minOccurs="0"/>

           <xs:element name="UnpaidPrincipalBalance" type="DecimalOrEmpty" minOccurs="0"/>

           <xs:element name="EstimatedValue" type="DecimalOrEmpty" minOccurs="0"/>

           <xs:element name="Title" type="String" minOccurs="0"/>

           <xs:element name="TitleAmount" type="DecimalOrEmpty" minOccurs="0"/>

           <xs:element name="OwnersTitleAmount" type="DecimalOrEmpty" minOccurs="0"/>

           <xs:element name="OriginalTitleAmount" type="DecimalOrEmpty" minOccurs="0"/>

           <xs:element name="OriginalMortgageDate" type="String" minOccurs="0"/>

           <xs:element name="AssignmentPages" type="Pages" minOccurs="0"/>

           <xs:element name="AssignmentNumber" type="IntegerOrEmpty" minOccurs="0"/>

           <xs:element name="ReleasePages" type="Pages" minOccurs="0"/>

           <xs:element name="ReleaseNumber" type="IntegerOrEmpty" minOccurs="0"/>

           <xs:element name="SubordinationPages" type="Pages" minOccurs="0"/>

           <xs:element name="SubordinationNumber" type="IntegerOrEmpty" minOccurs="0"/>

           <xs:element name="POAPages" type="Pages" minOccurs="0"/>

    Scott Augé
    President
    Amduus Information Works, Inc.
    Technical Services for Business and Government
    http://www.amduus.com/cms

  • You could try using the READ-XMLSCHEMA into a dynamic dataset. If this succeeds, it’s a fairly simple exercise to loop through the tables and fields in the dataset and write out definitions. If you’re interested, I can send you a quick example of this.
     
    Tom
     
  • Yea I tried a dynamic READ-XMLSCHEMA already.  It  doesn't work.  It pukes on stuff like this:

    <xs:element name="OriginalDebtAmount" type="DecimalOrEmpty" minOccurs="0"/>

    I have found a WSDL for it - anyone know how to use a WSDL to generate the temp-table and dataset  code?

    Scott Augé
    President
    Amduus Information Works, Inc.
    Technical Services for Business and Government
    http://www.amduus.com/cms

  • So what is the xsd definition for DecimalOrEmpty?  If bproxsdto4gl cannot map the element to a dataset(temp-tables are only accepted with Progress WSDL's), then you get a LONGCHAR?  Or does bproxsdto4gl fail to generate anything?

  • One more shot in the dark – Use SoapUI to read the wsdl, then generate an actual response from the service. Try reading the response xml into a dataset using READ-XML.
     
    Tom
     
  • The WSDL stuff just uses a character for the request and respond.  (Used bprowsdldoc)  Such a bummer.

    Scott Augé
    President
    Amduus Information Works, Inc.
    Technical Services for Business and Government
    http://www.amduus.com/cms

  • How about editing the offending types to something known, then using the tools on the cleaned up version and then patch the result to handle the problem datatypes?

    Consulting in Model-Based Development, Transformation, and Object-Oriented Best Practice  http://www.cintegrity.com

  • Yea, that is going to be tomorrows plan.  Unless I dream up something different.

    Scott Augé
    President
    Amduus Information Works, Inc.
    Technical Services for Business and Government
    http://www.amduus.com/cms

  • Hi

    you can try using this from proenv: xsdto4gl c:\Temp\myxsd.xsd -output c:\temp\

    This will generate the include file for you that contains your temp-tables and datasets.

    However it might not work with your xml.

  • The point here is that every complexType in a WSDL's xsd will not be mapped to a ProDataSet..  If the WSDL Analyzer fails to generate ABL templates for you to use, then there might be a bug.  You might want to log an issue with tech support to get this sorted out.

    Regards,

    Robin

  • It might depend on the version of Progress you are on. I tried generating a complex xsd in 10.2 but it choked on it, whereas 11.6 happily ate it. If you're not on 11.6 I could test it for you.