[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Services Header (was Re: Unresolved symbols when creating WSDL2RPG Service Program)
Note: This e-mail is subject to the disclaimer contained at the bottom
of this message.
_________________________________________________________________
Hi Thomas.
Thanks for your patience. Of course you're right. I should have
realized that no memory had been allocated when I used
tns_GetCoverOptionsResponse_t. I was thinking that the problem was in
the generated program returning a null reference, rather than the
receiving value being unreferenced. With such long names it's easy to
miss one or two characters.
We're still on R5.4, so I presume these structures will be easier in
R6.1 with the new TEMPLATE declaration?
Now that I have a fully working service I can sit back and analyse
what I've got for future use.
There are 3 subsidiary xml files you requested. We called them a, b &
c for convenience, and to just enable us to hack our way through. I'm
not sure if it's good etiquette to communicate this through the forum
or send directly to you, so I apologise in advance. Please let me know
if I've done the right thing. It's also obvious that knowing the
structure and syntax of a Soap message is a fundamental knowledge to
have, so I will spend time in that area. I also turned on logging as
per another thread on this list, but didn't get a log file. Now that
the program is working should I expect a log?
A.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
targetNamespace="urn:au.com.iag.xml:service.thebuzz.home.GetCoverOptio
ns.0.001" elementFormDefault="qualified"
attributeFormDefault="unqualified"
xmlns:xs="[1]http://www.w3.org/2001/XMLSchema"
xmlns:ns0="urn:au.com.iag.xml:service.thebuzz.home.GetCoverOptions.0.0
01"
xmlns:ns1="urn:au.com.iag.xml:service.thebuzz.home.HomeCommonTypes.0.0
01">
<xs:import
namespace="urn:au.com.iag.xml:service.thebuzz.home.HomeCommonTypes.0.0
01" schemaLocation="c.xsd"/>
<xs:element name="GetCoverOptionsRequest">
<xs:annotation>
<xs:documentation>This operation is responsible for
obtaining the cover options required for home insurance full
quote.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="CoverOptionsStandardRequest"
type="ns1:RefDataStandardRequest"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="GetCoverOptionsResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="CoverOptionItemsAtDate"
maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="CoverOption"
maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element
name="CoverOptionCode" type="xs:string"/>
<xs:element name="CoverOption"
type="xs:string"/>
<xs:element name="CoverLevel"
type="xs:string"/>
<xs:element
name="ProductFilter" type="xs:string"/>
<xs:element
name="BuildingsFlag" type="xs:string"/>
<xs:element
name="ContentsFlag" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="EffectiveDate"
type="xs:string">
<xs:annotation>
<xs:documentation>The date that
the rating tables are effective from. When the effective date changes
it indicates that a new version of the tables has been published and
that version will be effective from its effective date until a time
when its replaced by another version. ISO8601 format
YYYY-MM-DD</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
B.xsd
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2008 rel. 2 sp2 ([2]http://www.altova.com) by
Bob Smith (The Company) --><xs:schema
targetNamespace="urn:au.com.iag.xml:service.eventures.common.ServiceHe
ader.1" elementFormDefault="qualified"
attributeFormDefault="unqualified" version="2008-12-05"
xmlns:xs="[3]http://www.w3.org/2001/XMLSchema"
xmlns:tns="urn:au.com.iag.xml:service.eventures.common.ServiceHeader.1
">
<!-- Type definitions -->
<xs:complexType name="HeaderType">
<xs:annotation>
<xs:documentation>Common header portion to be
included on all messages.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="Service">
<xs:annotation>
<xs:documentation>Information
relating to the service that this message belongs to. This should be
sent by the consumer.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element
name="ProcessName" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>The process in which this service participates (if
relevant)</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element
name="ServiceName" type="xs:string">
<xs:annotation>
<xs:documentation>The name of the service to which this message
belongs</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element
name="ServiceVersionMajor" type="xs:string">
<xs:annotation>
<xs:documentation>The version of the service used</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element
name="ServiceVersionMinor" type="xs:string">
<xs:annotation>
<xs:documentation>The version of the service used</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element
name="OperationName" type="xs:string">
<xs:annotation>
<xs:documentation>The name of the operation invoked</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element
name="InterfaceName" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>If relevant, the name of the interface which is used
to invoke this service</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Message" minOccurs="0">
<xs:annotation>
<xs:documentation>Information
relating to this instance of the message</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element
name="MessageIDs" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="MessageID" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Message Identifiers associated
with this message. An instance of this element should exist for all
identifiers associated with this message. The consumer must send an
instance with type 'Consumer' in the request</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="Type"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element
name="RequestTimestamp" type="xs:dateTime" minOccurs="0">
<xs:annotation>
<xs:documentation>Time that this message was sent. This should be sent
by the consumer and will not be modified.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element
name="ResponseTimestamp" type="xs:dateTime" minOccurs="0">
<xs:annotation>
<xs:documentation>Time that the response message is sent to the
consumer. This will be populated immediately before sending the
message.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element
name="ResponseStatus" minOccurs="0">
<xs:annotation>
<xs:documentation>Information relating to the response status. This is
only relevant for response messages going to the
consumer.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="StatusCode">
<xs:annotation>
<xs:documentation>High-level response code for this
message indicating success, information. warning, or
failure.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="OK"/>
<xs:enumeration value="Info"/>
<xs:enumeration value="Warning"/>
<xs:enumeration value="Error"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ReasonCode" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>Code associated with the specific
reason for the response status.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ReasonDescription" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>Description of the reason
code.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ReasonDetail" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>More specific detail relating to
the status, eg elaborating on the type of error</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Responses" minOccurs="0">
<xs:annotation>
<xs:documentation>A list of errors/warnings in case
more than one has occurred</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="Response"
maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element
name="ReasonCode" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>Code associated with the specific reason for the
response status.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element
name="ReasonDescription" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>Description of the reason code.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element
name="ReasonDetail" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>More specific detail relating to the status, eg
elaborating on the type of error</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="AuditInfo" minOccurs="0">
<xs:annotation>
<xs:documentation>Information
relating to audit logging. This must be sent by the consumer and will
be returned to it.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element
name="ConsumerInfo" minOccurs="0">
<xs:annotation>
<xs:documentation>Information about the initiator of this
service</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="ReferenceID" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>Reference ID for the system from
which the original request message was sent.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ApplicationID" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>Identity of the system/application
from which the original request message was sent. This must be sent by
the consumer.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="OriginatorID" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>ID of the process that was the
initiator of this service. This should be sent by the consumer if it
is applicable.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="OriginHost" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>Host name or IP address of the
machine from which this request was initiated. This will be populated
by the integration layer, NOT sent by the consumer.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element
name="References" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="Reference" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Information about the party to
which this message relates (eg customer no, quote no,
etc)</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="Type"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<!-- Element definitions -->
<xs:element name="ServiceHeader" type="tns:HeaderType"/>
</xs:schema>
C.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
targetNamespace="urn:au.com.iag.xml:service.thebuzz.home.HomeCommonTyp
es.0.001" elementFormDefault="qualified"
attributeFormDefault="unqualified"
xmlns:xs="[4]http://www.w3.org/2001/XMLSchema"
xmlns:ns1="urn:au.com.iag.xml:service.thebuzz.home.HomeCommonTypes.0.0
01">
<xs:complexType name="RefDataStandardRequest">
<xs:sequence>
<xs:element name="ProductTypeCode"
type="xs:string" minOccurs="0"/>
<xs:element name="FromDate" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="StandardRequest">
<xs:sequence>
<xs:element name="ProductTypeCode"
type="xs:string" minOccurs="0"/>
<xs:element name="InceptionDate"
type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DecisionRule">
<xs:sequence>
<xs:element name="BusinessRuleID"
type="xs:string"/>
<xs:element name="MsgID" type="xs:string"/>
<xs:element name="Decline" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="StandardGetInfoResponse">
<xs:sequence>
<xs:element name="EffectiveDate"
type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Excess">
<xs:sequence>
<xs:element name="Excess" type="xs:decimal"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ListItem">
<xs:sequence>
<xs:element name="Code" type="xs:string"/>
<xs:element name="Description"
type="xs:string"/>
<xs:element name="DisplayOrder"
type="xs:string"/>
<xs:element name="DecisionRule"
type="ns1:DecisionRule"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="BuildingPremiums">
<xs:sequence>
<xs:element name="General" type="xs:decimal"/>
<xs:element name="AccDamage"
type="xs:decimal"/>
<xs:element name="Fusion" type="xs:decimal"/>
<xs:element name="Glass" type="xs:decimal"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ContentsPremiums">
<xs:sequence>
<xs:element name="General" type="xs:decimal"/>
<xs:element name="AccDamage"
type="xs:decimal"/>
<xs:element name="Fusion" type="xs:decimal"/>
<xs:element name="Glass" type="xs:decimal"/>
<xs:element name="DependentsPremium"
type="xs:decimal"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="RiskAddress">
<xs:sequence>
<xs:element name="StreetName"
type="xs:string"/>
<xs:element name="StreetNumber"
type="xs:string"/>
<xs:element name="UnitNo" type="xs:string"
nillable="true" minOccurs="0"/>
<xs:element name="Postcode" type="xs:string"/>
<xs:element name="Suburb" type="xs:string"/>
<xs:element name="State" type="xs:string"/>
<xs:element name="PID" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="RiskLocationDetails">
<xs:sequence>
<xs:element name="DwellingCode"
type="xs:string"/>
<xs:element name="OccupancyCode"
type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="AgeOfOldestResident"
type="xs:string" nillable="true"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="BuildingDetails">
<xs:sequence>
<xs:element name="WallConstructionCode"
type="xs:string" nillable="true"/>
<xs:element name="RoofMaterialCode"
type="xs:string" nillable="true"/>
<xs:element name="YearBuildingWasBuilt"
type="xs:string" nillable="true"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ClaimsHistory">
<xs:sequence>
<xs:element name="BuildingClaimsNumCode"
type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="ContentsClaimsNumCode"
type="xs:string" nillable="true" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="BuildingCoverDetails">
<xs:sequence>
<xs:element name="SumInsured"
type="xs:decimal"/>
<xs:element name="Excess" type="xs:decimal"
nillable="true" minOccurs="0"/>
<xs:element name="Options" nillable="true"
minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element
name="AccDamage" type="xs:boolean"/>
<xs:element
name="Fusion" type="xs:boolean"/>
<xs:element
name="Glass" type="xs:boolean"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ContentsCoverDetails">
<xs:sequence>
<xs:element name="SumInsured"
type="xs:decimal"/>
<xs:element name="Excess" type="xs:decimal"
nillable="true" minOccurs="0"/>
<xs:element name="Options" nillable="true"
minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element
name="AccDamage" type="xs:boolean"/>
<xs:element
name="Fusion" type="xs:boolean"/>
<xs:element
name="Glass" type="xs:boolean"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DependentsCover">
<xs:sequence>
<xs:element name="DependentsOption"
type="xs:boolean" nillable="true" minOccurs="0"/>
<xs:element name="DependentsNumber"
type="xs:decimal" nillable="true" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="LandlordsCover">
<xs:sequence>
<xs:element name="WeeklyRent"
type="xs:decimal" nillable="true" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="SpecialItem">
<xs:sequence>
<xs:element name="ItemNumber"
type="xs:decimal"/>
<xs:element name="SpecialItemCategoryCode"
type="xs:string"/>
<xs:element name="ItemDescription"
type="xs:string"/>
<xs:element name="ItemValue"
type="xs:decimal"/>
<xs:element name="PortableCover"
type="xs:boolean"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Embargo">
<xs:sequence>
<xs:element name="EmbargoCode"
type="xs:string"/>
<xs:element name="EmbargoDescription"
type="xs:string" minOccurs="0"/>
<xs:element name="EmbargoStartDate"
type="xs:string" minOccurs="0"/>
<xs:element name="EmbargoStartTime"
type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="EligibilityRequirement">
<xs:sequence>
<xs:element name="EligibilityRequirementCode"
type="xs:string"/>
<xs:element name="EligibilityRequirementValue"
type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="YearOfClaim">
<xs:sequence>
<xs:element name="ClaimItemNumber"
type="xs:decimal"/>
<xs:element name="YearOfClaim"
type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="SecurityDetails">
<xs:sequence>
<xs:element name="Deadlocks"
type="xs:boolean"/>
<xs:element name="WindowLocks"
type="xs:boolean"/>
<xs:element name="SecurityDoorLocks"
type="xs:boolean"/>
<xs:element name="AlarmTypeCode"
type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="PersonalDetails">
<xs:sequence>
<xs:element name="CustomerNumber"
type="xs:string" minOccurs="0"/>
<xs:element name="Title" type="xs:string"
minOccurs="0"/>
<xs:element name="FirstName" type="xs:string"
minOccurs="0"/>
<xs:element name="MiddleInitial"
type="xs:string" minOccurs="0"/>
<xs:element name="LastName" type="xs:string"
minOccurs="0"/>
<xs:element name="DateOfBirth"
type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ContactDetails">
<xs:sequence>
<xs:element name="PrimaryPhoneNumber"
type="xs:string" minOccurs="0"/>
<xs:element name="AlternatePhoneNumber"
type="xs:string" minOccurs="0"/>
<xs:element name="FirstName" type="xs:string"
minOccurs="0"/>
<xs:element name="Email" type="xs:string"
minOccurs="0"/>
<xs:element name="BusinessName"
type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="MailingAddressDetails">
<xs:sequence>
<xs:element name="PostOfficeBox"
type="xs:string" minOccurs="0"/>
<xs:element name="UnitNumber" type="xs:string"
minOccurs="0"/>
<xs:element name="StreetNumber"
type="xs:string" minOccurs="0"/>
<xs:element name="StreetName" type="xs:string"
minOccurs="0"/>
<xs:element name="Postcode" type="xs:string"
minOccurs="0"/>
<xs:element name="Suburb" type="xs:string"
minOccurs="0"/>
<xs:element name="State" type="xs:string"
minOccurs="0"/>
<xs:element name="PID" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Dependant">
<xs:sequence>
<xs:element name="DependantNumber"
type="xs:decimal"/>
<xs:element name="FirstName" type="xs:string"
minOccurs="0"/>
<xs:element name="LastName" type="xs:string"
minOccurs="0"/>
<xs:element name="DateOfBirth"
type="xs:string" minOccurs="0"/>
<xs:element name="DependantAddress"
type="ns1:RiskAddress" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Mortgagee">
<xs:sequence>
<xs:element name="MortgageeNumber"
type="xs:decimal"/>
<xs:element name="MortgageeCode"
type="xs:string"/>
<xs:element name="MortgageeName"
type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
_________________________________________________________________
The information transmitted in this message and its attachments (if
any) is intended only for the person or entity to which it is
addressed.
The message may contain confidential and/or privileged material. Any
review, retransmission, dissemination or other use of, or taking of
any action in reliance upon this information, by persons or entities
other than the intended recipient is prohibited.
If you have received this in error, please contact the sender and
delete this e-mail and associated material from any computer.
The intended recipient of this e-mail may only use, reproduce,
disclose or distribute the information contained in this e-mail and
any attached files, with the permission of the sender.
This message has been scanned for viruses.
_________________________________________________________________
References
1. http://www.w3.org/2001/XMLSchema
2. http://www.altova.com/
3. http://www.w3.org/2001/XMLSchema
4. http://www.w3.org/2001/XMLSchema
-----------------------------------------------------------------------
This is the FTPAPI mailing list. To unsubscribe, please go to:
http://www.scottklement.com/mailman/listinfo/ftpapi
-----------------------------------------------------------------------