Purpose
The XSD Message Validation service (MVS) checks incoming messages and validates if these messages are in line with our API standard formally.
The XML schema validation of inbound OTA/IO/HTNG message is a part of the certification.
Please validate all of your inbound messages (3rd party → protel) with that tool before starting the testing with your Protel integration specialist.
Instructions
Setup
To connect MVS to the integration partner service both have to installed into a test hotel in ESB environment (see Bob - Help).
The MVS manifest is available under name:
io.protel.message_validation
or io.protel.xsd_validation
Usage
For each OTA/IO/HTNG request message you have sent to protel.I/O you will receive asynchronous OTA/IO/HTNG result message.
This pattern follows the usual way of asynchronous messaging done through ESB (see Exchanging Data).
Validation results
The result (RS) messages you receive resemble the expected OTA/IO/HTNG message but will not hold information from the operational use case.
Case 1: Integration partner sent a message that has the wrong structure
All found validation problems with the message structure come back in <Error> elements with description of the issue as well as a position.
<?xml version='1.0' encoding='utf-8'?> <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:htng="http://htng.org/PWSWG/2007/02/AsyncHeaders"> <soapenv:Header xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"> <htng:CorrelationID>TEST_Val_135-1</htng:CorrelationID> <wsa:To>https://webhook.site/64b0a35d-e9c3-4d5c-b474-252db6777ac9</wsa:To> <wsa:Action>http://htng.org/PWSWG/2010/12/OTA_HotelResNotifRS_SubmitResult</wsa:Action> </soapenv:Header> <env:Body> <OTA_HotelResNotifRS xmlns:ns2="http://htng.org/2014B" xmlns:ns3="http://protel.io/soap"> <Errors> <Error Type="ELEMENT" ShortText="Invalid content was found starting with element 'Test'. One of '{"http://protel.io/htng/extensions":POSExtensions, "http://protel.io/htng/extensions":InvBlockExtensions, "http://protel.io/htng/extensions":ReservationExtensions, "http://protel.io/htng/extensions":RateAmountExtensions, "http://protel.io/htng/extensions":FixedChargesAmountsExtensions, "http://protel.io/htng/extensions":NotificationExtensions, "http://protel.io/htng/extensions":GuestStayExtensions, "http://protel.io/htng/extensions":ProfileInfoExtensions, "http://protel.io/htng/extensions":UserDefinedFieldExtensions, "http://protel.io/htng/extensions":WakeupInfoExtensions, "http://protel.io/htng/extensions":RoomStatusExtensions, "http://protel.io/htng/extensions":FolioExtensions}' is expected." Code="cvc-complex-type.2.4.a" RecordID="line: 7, column: 15"/> </Errors> </OTA_HotelResNotifRS> </env:Body> </env:Envelope>
Case 2: Integration partner sent a message that has the correct structure
The absence of an <Error> element indicates success in validation.
<?xml version='1.0' encoding='utf-8'?> <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:htng="http://htng.org/PWSWG/2007/02/AsyncHeaders"> <soapenv:Header xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"> <htng:CorrelationID>TEST_Val_141</htng:CorrelationID> <wsa:To>https://webhook.site/64b0a35d-e9c3-4d5c-b474-252db6777ac9</wsa:To> <wsa:Action>http://htng.org/PWSWG/2010/12/OTA_HotelResNotifRS_SubmitResult</wsa:Action> </soapenv:Header> <env:Body> <OTA_HotelResNotifRS xmlns:ns2="http://htng.org/2014B" xmlns:ns3="http://protel.io/soap"/> </env:Body> </env:Envelope>
Reporting the results
Once you have successfully validated your messages, please provide the CorrelationIDs to your protel.I/O Integration Specialist for confirmation!