Upload
phamnhan
View
218
Download
1
Embed Size (px)
Citation preview
dschlier 2
What is XML? Extensible Markup Language
XML or Extensible Markup Language is a
universal method of transferring data so that any webpage can request and display content from an outside source when using dynamic scripting
languages in your web pages.
Example programming languages used in web pages:
ASP Active Server PagesPHP Preprocessed Hyptertext
JSP Java Server Pages
Example programming languages used in web pages:
ASP Active Server PagesPHP Preprocessed Hyptertext
JSP Java Server Pages
Dynamic scripting languages insert instructions into HTML tags to process XML data and display it on the page. The data is requested by user interaction with the browser and is called a request when a search button is clicked.
The data is based on the requested parameters and a response is returned to the affiliate server.
dschlier 4
What is XML? Extensible Markup Language
An XML response corresponds to data in the affiliate download files found in the Affiliate Center -> Integration -> Property Databases
An XML response corresponds to data in the affiliate download files found in the Affiliate Center -> Integration -> Property Databases
<hotel><hotelID>125727</hotelID><name>RED LION HOTEL ON 5TH AVENUE</name><address1>1415 5TH AVENUE</address1><city>SEATTLE</city><stateProvince>WA</stateProvince><country>US</country>
</hotel>
Database field name or XML element
XML Value of the database field
Database Record or XML Parent Node
XML consists of data which is inserted between datafield tags known as elements
XML data from our database is translated into extensible markup (tag-based element rather than a database field)
dschlier 5
What is XML? Extensible Markup Language
By giving the data a universal tag-based reference using XML, any webpage can be coded to request the data and write it to it s own page rather than linking to a Travelnow.com affiliate template page.
It gives the affiliate the ability to have all content on your own server and design the pagesas you choose.
It gives the affiliate the ability to have all content on your own server and design the pagesas you choose.
The affiliate has the ability to fully brandyour site.
The affiliate has the ability to fully brandyour site.
The affiliate has full control over monitoring your traffic and customizing your application.
The affiliate has full control over monitoring your traffic and customizing your application.
dschlier 7
Affiliate Template versus Custom Branding
XML Website prints out the data from the response
Recall the data tree example:
<hotel><hotelID>125727</hotelID><name>RED LION HOTEL</name><address1>1415 5TH
AVE</address1><city>SEATTLE</city><stateProvince>WA</stateProvince><country>US</country>
dschlier 8
XML data, delivered with website scripting languages, is called to the page and is dynamic or on the fly .
The page is not written until the request or search for data is made and the data is sent back to the web page to be used as the text in the layout. The browser receives the data that is requested and uses the HTML instructions to write the XML data into the page design at that very moment.
What is XML? Dynamic Data
The web page is only a design template for parsing the data each time it is requested from the source.
The web page is only a design template for parsing the data each time it is requested from the source.
Once the code is processed and data is displayed in the browser, it is availableONLY while that page is being viewed or in the browser history.
Once the code is processed and data is displayed in the browser, it is availableONLY while that page is being viewed or in the browser history.
HTML is staticHTML is hard codeHTML does not change
until manually alteredHTML instructs the
browser how to display the text and design of the page
HTML is staticHTML is hard codeHTML does not change
until manually alteredHTML instructs the
browser how to display the text and design of the page
dschlier 9
What are Web Services? Data Transportation
Web Services is another way of transporting XML data across the web.
A Web Service is a library providing data or services to other applications over the Internet. A service is called by using internet protocol standards such as SOAP over HTTP. Each "service" exposes a business functionality and means of interacting with a dataset at run-time.
HyperText Transfer Protocol (HTTP) - the underlying protocol used by the World Wide Web. HTTP defines how messages are formatted and transmitted, and what actions Web servers and browsers should take in response to various commands. For example, when you enter a URL in your browser, this actually sends an HTTP command to the Web server directing it to retrieve and transmit the requested Web page.
HyperText Transfer Protocol (HTTP) - the underlying protocol used by the World Wide Web. HTTP defines how messages are formatted and transmitted, and what actions Web servers and browsers should take in response to various commands. For example, when you enter a URL in your browser, this actually sends an HTTP command to the Web server directing it to retrieve and transmit the requested Web page.
Simple Object Access Protocol (SOAP) - SOAP provides a universal way for applications to communicate with each other over the Internet, independent of platform.
Simple Object Access Protocol (SOAP) - SOAP provides a universal way for applications to communicate with each other over the Internet, independent of platform.
SOAP relies on XML to define the format of the information or dataand then adds the necessary HTTP headers to send it.
SOAP relies on XML to define the format of the information or dataand then adds the necessary HTTP headers to send it.
dschlier 10
What are WebServices? Object Oriented Transmissions
Code in any of these languages reference anobject container that
holds data in memoryuntil it is written to the page.
Code in any of these languages reference anobject container that
holds data in memoryuntil it is written to the page.
The method of invoking a web service will depend on the programming language used.
Java or .NET utilizes inherent language functionality to compile source code along with special server configurations to make the XML Web Service request and then process the results.
Other methods may use SOAP directly within the document object.
The request or response can t be viewed directly in the browser like the XML string examples. It must
be parsed to the web page to be seen.
The request or response can t be viewed directly in the browser like the XML string examples. It must
be parsed to the web page to be seen.
dschlier 11
How is WebServices different from XML? Methodology
Data is transmitted with server-side source code instead of within web page scripts.
The request is coming from a separate source file stored on the server rather than inside the web page scripts.
XML is transported by HTTP as a string of data
defined by XML elements.
XML is transported by HTTP as a string of data
defined by XML elements.
WebServices are transported as a container of data
through SOAP within the source code and is defined by the XML elements.
WebServices are transported as a container of data
through SOAP within the source code and is defined by the XML elements.
IAN.com XML is delivered by the WebServices layer on the core system.
IAN.com XML is delivered by the WebServices layer on the core system.
dschlier 12
How is WebServices different from XML? Methodology
Affiliate Application accesses the server s compiled source file to build the request
The source file contains specific definition language (WSDL) to communicate with the IAN WebServices program
Affiliate Application accesses the server s compiled source file to build the request
The source file contains specific definition language (WSDL) to communicate with the IAN WebServices program
IANDatabase
Web Services request sent for data
Visitor places search on Affiliate Website
Visitor places search on Affiliate Website
SOAP request sent to IAN to retrieve data
SOAP response sent back to affiliate server for processing
Affiliate Application builds page and delivers results to user
Server-side source code is compiled into
machine language.
Server-side source code is compiled into
machine language.
Travelnow.com is only accessed from inside the server s source file.
Travelnow.com is only accessed from inside the server s source file.
dschlier 13
Advantages of using XML Content, Design & Marketing Control
Write our product content to the affiliate s own web pages.
You do not have to work within the confines of the affiliate template pages. You have more options than the use of your own headers and footers. You can organize the content and search results to fit your own
merchandising, target audience, and demographics.
Affiliates can include other types of data into your pages which may help sell our products or target your demographics or improve search engine rankings.
Rough Guides and Road Trips - Travelnow.com
Guest Reviews - Hotels.comTraveler Opinions - Expedia
Affiliates can include other types of data into your pages which may help sell our products or target your demographics or improve search engine rankings.
Rough Guides and Road Trips - Travelnow.com
Guest Reviews - Hotels.comTraveler Opinions - Expedia
All web pages are on the affiliate s own server.
No pages are called from Travelnow.com unless you choose to pass the customer to any of our pages such as to make the booking, or use our cancel page instead of creating your own.
All web pages are on the affiliate s own server.
No pages are called from Travelnow.com unless you choose to pass the customer to any of our pages such as to make the booking, or use our cancel page instead of creating your own.
Because you are handling your own web pages and traffic, you have full control to log and monitor the visitor s server activity for your own market research.
Because you are handling your own web pages and traffic, you have full control to log and monitor the visitor s server activity for your own market research.
dschlier 14
Advantages of using XML Unique Content
By using XML, affiliates create more of their own content which can be used to greater capacity with the search engines and other marketing efforts.
You also have the ability to integrate other appropriate content with our data.
The original/additional content will improve search engine traffic, relevancy, and alter duplicate contentwhich therefore improves rankings.
Other Content Examples :including your own reviewstravel recommendationsthings to see and doopportunities for visitors to input
their own recommendations, experiences, reviews, etc.
Other Content Examples :including your own reviewstravel recommendationsthings to see and doopportunities for visitors to input
their own recommendations, experiences, reviews, etc.
Engaging the visitor creates opportunities for :
repeat trafficunique content to be seen by the
search enginesuser referrals
Engaging the visitor creates opportunities for :
repeat trafficunique content to be seen by the
search enginesuser referrals
What other ways can you engage the user to build your traffic?
dschlier 15
Advantages of using XML Keyword Optimization
You can utilize keywords for your search engine market on each of your own pages to your best advantage.
All the content appears as if it came from the affiliate and not another source.
This gives you tremendous flexibility in your marketing and online presence.
The search engine crawler s do not see an affiliate template page if the affiliate has not linked to one. This creates less chances for exclusion in listings.
The search engine crawler s do not see an affiliate template page if the affiliate has not linked to one. This creates less chances for exclusion in listings.
dschlier 16
Advantages of using XML Version Maintenance
We maintain up to 2 versions of interface code at a time. Required changes may occur once or twice a year.
At the end of the older version s cycle, this code is removed from the system and can no longer be accessed. This insures all affiliate code and data are current and creates an efficiently managed platform.
The affiliate is notified by XML newsletters in advance of the upcoming schedules and you may typically have up to 6 months to complete any updates.
The affiliate, has a convenient time window to make any necessary updates to work with the new version before old system code is removed.
The affiliate, has a convenient time window to make any necessary updates to work with the new version before old system code is removed.
If an affiliate application attempts to access a non-existent/removed version, the application will not be found and access errors will return.
If an affiliate application attempts to access a non-existent/removed version, the application will not be found and access errors will return.
dschlier 17
Who is NOT a good candidate for XML?
Affiliates who do not have technical or financial resources to develop, purchase or maintain an xml website. Remember you receive our application and all programming logic for free when you use youraffiliate template. When you use the data interface, all you receive is data. It is up to you to create any and all logic necessary to manage your page functions, control user input and activity, and workaround common user errors.
Affiliates who do not expend time or effort on marketing, searchengine optimization or market research expend a lot of time and effort for no chance of return on investment.
Any affiliate can find a way to utilize data integration, however, because of the effort needed to do so, it s those who actually work their sites, have a sense of professionalism and a good understanding of the internet who will benefit the most from the time, money, and energy needed to create such a site.
dschlier 18
Where can I find the XML documentation?
https://www.ian.com/xmldocs/main.jsp
If an affiliate has a developer, or others, who need to access the documentation to create his application but does not want others to have his affiliate account login, we have a dummy account set up for this purpose.
You may use this login information in both the XML Documentation Center and the Affiliate Center.
CID = 60449
User = test
Pass = test
dschlier 19
What s in the XML documentation?
Every bit of known information that will assist the affiliate in developing their application as autonomously as possible.
The documents are updated continuously as more information is available or clarification becomes necessary.
The Documentation outlines all XML products along with every possible request parameter AND all response data.
The Documentation includes examples, testing procedures and any other important notices the affiliate needs.
It is a living information center.
Every bit of known information that will assist the affiliate in developing their application as autonomously as possible.
The documents are updated continuously as more information is available or clarification becomes necessary.
The Documentation outlines all XML products along with every possible request parameter AND all response data.
The Documentation includes examples, testing procedures and any other important notices the affiliate needs.
It is a living information center.
The main page of each section links to major points, announcements, notices or reminders, best practices, etc.
dschlier 20
What s in the documentation?
XML includes all API for processing requests and responses with an XML method for those available products hotel/condo, car, air, road trips
WebServices includes all API for processing requests and responses through a WebServices method for those available products hotel/condo, car, road trips
Each platform and product available through the data interface is outlined in the appropriate sections of the documentation.
dschlier 21
What s in the documentation?
Sample request documentation from the NEW XML HotelsBy reviewing each parameter
in the request outline, the affiliate is able to determine all methods of placing searches or submitting a reservation request.
Each request is preceded by a valid example.
By reviewing each parameter in the request outline, the affiliate is able to determine all methods of placing searches or submitting a reservation request.
Each request is preceded by a valid example.
By reviewing each parameter in the response outline, the affiliate is able to determine all data returned in the response and display to his best advantage within the requirements and guidelines.
By reviewing each parameter in the response outline, the affiliate is able to determine all data returned in the response and display to his best advantage within the requirements and guidelines.
dschlier 22
Basic XML Request Example
Basic XML Request string for hotel availability as created by the webpage application
The request stringis buried in the scripting code where the search engines do not recognize it as an affiliate link.
&intfc=ws indicates request to the NEW enhanced XML Platform
dschlier 23
Basic XML Full Database Record in XML Format (an XML response example)
<HotelAvailabilityListResults size="1"><Hotel><hotelId>210687</hotelId>
<name>AMARYS SIMART</name><address1>7 RUE SIMART</address1> <address2 /> <address3 /> <city>PARIS</city><stateProvince /> <country>FR</country><postalCode>75018</postalCode> <airportCode>PAR</airportCode> <lowRate>98.0</lowRate> <highRate>98.0</highRate> <rateCurrencyCode>USD</rateCurrencyCode> <latitude>48.8899</latitude> <longitude>2.3488</longitude> <shortDescription> The Amarys Simart is a economy-class hotel located
near the Sacré-Coeur Basilica in the 18th district of Paris. The hotel is also convenient to Place du Tertre and the northern Paris flea market.</shortDescription>
<thumbNailUrl>/hotels/thumbs/PAR_AMAR-exter-1-thumb.jpg</thumbNailUrl> <supplierType>H</supplierType>
<location>NEAR SACRE-COEUR BASILICA</location> <propertyRating>1.0</propertyRating> <propertyType>1</propertyType> <marketingLevel>1</marketingLevel> <hasMap>true</hasMap> <hotelInDestination>true</hotelInDestination> <referenceProximityDistance>-1.0</referenceProximityDistance> <referenceProximityUnit>MI</referenceProximityUnit>
- <HotelProperty><specialRate>N</specialRate> <promoDescription /> <promoType /> <promoDetailText /> <hrnQuoteKey>UR202490401077</hrnQuoteKey> <currentAllotment>-1</currentAllotment> <propertyId>PAR AMAR</propertyId> <propertyAvailable>true</propertyAvailable> <propertyRestricted>false</propertyRestricted> <roomDescription>standard triple room</roomDescription> <roomTypeCode>005</roomTypeCode>
- <RateInfo><displayCurrencyCode>USD</displayCurrencyCode>
- <DisplayNightlyRates size="3"><displayNightlyRate>98.0</displayNightlyRate> <displayNightlyRate>98.0</displayNightlyRate> <displayNightlyRate>98.0</displayNightlyRate> </DisplayNightlyRates><displayRoomRate>317.01</displayRoomRate><nativeCurrencyCode>USD</nativeCurrencyCode>
- <NativeNightlyRates size="3"><nativeNightlyRate>98.0</nativeNightlyRate> <nativeNightlyRate>98.0</nativeNightlyRate> <nativeNightlyRate>98.0</nativeNightlyRate> </NativeNightlyRates><nativeRoomRate>317.01</nativeRoomRate> <rateFrequency>B</rateFrequency> </RateInfo></HotelProperty></Hotel>
The data in the pre-defined tagscorresponds to the database record, as well as, the data seen on a Travelnow.com results page.
dschlier 24
Basic XML Parsing the XML Database Response into the HTML with XSL
There are a few ways to parse the data to the page but the most common is by using Extensible Style Language (XSL)which introduces the xml data into the html display instructions.
Here is a sample of parsing the data with
XSL to display the Hotel Availability to the page.
XML is dynamic data
XML is updated from the source each time accessed
XML data is written to a webpage template file each time it is accessed
XML uses another programming language to parse the data into html format
<xsl:for-each select="HotelAvailabilityListResults/Hotel"><xsl:choose><xsl:when test="supplierType = ('H')">
<table ><tr">
<td><xsl:value-of select="name"/>
</td><td> </td>
</tr><tr><td>
<img src="http://images.travelnow.com{thumbNailUrl}/></td>
<td><xsl:value-of select="shortDescription"/>
</td></tr>
</ table >
<xsl:for-each select = "HotelProperty/RateInfo/DisplayNightlyRates/displayNightlyRate">
< table ><tr><!--Show Rate--><td>
$ <xsl:value-of select="format-number(., '#.00')"/> </td></tr>
</ table ></ xsl:for-each >
Recall the data tree example:
<hotel><hotelID>125727</hotelID><name>RED LION HOTEL</name><address1>1415 5TH AVE</address1><city>SEATTLE</city><stateProvince>WA</stateProvince><country>US</country>
</hotel>
dschlier 25
WebServices Request ASP.NET Example Code
<%@ Page Language="VB" Debug="true" %><script runat=server language="VB">
Sub Page_Load(o As Object, e As EventArgs)
Dim service As New tnow.webservices.HotelFunctionsDim getList As New tnow.webservices.CityAvailabilityRequestDim listResponse As tnow.webservices.CityAvailabilityResult
getList.cid=1getList.city="Denver"getList.stateProvince = "CO"getList.country = "US"getList.numberOfAdults=1getList.arrivalDate = = "11/08/2004"getList.departureDate = "11/09/2004"getList.numberOfResults = 1
TrylistResponse = service.getCityAvailability(getList)Catch ex As Exception
Response.Write(ex.Message & " <br>")End Try
parsing the data RESPONSE to the page from the container objects
Response.write (listResponse.propertyList(0).hotel.name) Response.write (listResponse.propertyList(0).hotel.address1) Response.write ( <br> ")Response.write (listResponse.propertyList(0).hotel.city)Response.write (", ")Response.write (listResponse.propertyList(0).hotel.stateProvince)
End Sub</script>
Datafield name
Data is still designed on the page with HTML instructions even though the table isn t outlined here.
The response is still returned with an XML format but is handled differently by a Web Services implementation.
refer to the server source file for all the code behind activity
container holding the request information
container holding the response information
REQUEST interacting with the server s source file
dschlier 26
Is there an archive of XML Newsletters and System Notices?
With the archive of Newsletters, System Notices, and Updates found in the Site Map, you can always refer back to circulated publications and the date it was announced.
dschlier 27
Where do I sign up for XML Access? Follow the navigational path
On the homepage, find the Section pointing to Managing Your XML Access.
This section provides links to all pages for maintaining the affiliate s access.
dschlier 28
How do you sign up for XML?
Accounts that request access through the XML application form are now automatically validated with XML contract language so that no additional paperwork or additonal legal approval is required.The online contract acts as a digital signature and validates that you agree to all legal terms of use.
Any negotiated contracts you re working on will supersede any online contracts once completed. Here is a direct link that can be used to apply for XML access with immediate contract language.
http://12.14.173.100/xmldocs/xmlAccessForm.asp
dschlier 29
What things are not allowed?
Non-exclusivityGoogle or competitor type adsMeta Search Price comparisonSpywareDatabase or XML request scanning procedures
dschlier 30
XML Access is for Active CIDs only
The partner must fill out the XML application which includes info we need to activate your account. Missing info delays your activation.
http://12.14.173.100/xmldocs/xmlAccessForm.asp
The application includes minimum required info to set up access:
pre-approved agreement to XML language while we re waiting for a negotiated contract to be completed Your own CIDIP addresses of your requesting server
Used to authenticate access with your CIDSpecific XML Products you want activated (hotels, car, air, road trips)
Additional info that helps us manage your access
URL where XML is expected once the API is completedUsed for site reviews and audits
Email addresses who should receive any critical XML notices or update messagesInsures you know when updates are needed to your API and alerts you to scheduled downtime
Phone number we can use to contact you in the event of a problem
1
2
dschlier 31
What is the Approval to Go Live?
Once you have completed your program and is ready to go live it is crucial that we review the site for live approval against our Mandatory Requirements Checklist.
https://www.ian.com/xmldocs/checklist/checkListHome.shtml
The review process verifiesany required/legal items are present throughout all pricing and text is accurate insures the site returns a test booking
verify the test booking and confirmation text for accuracy against supplier charges
We compare the affiliate results to the same search results on Travelnow.com
These guidelines are there to protect partners in the event of any customer disputes and chargebacks by the hotel when proper pricing is not displayed or policies are not properly informed.
It is in your best interest to collaborate with us in the final step.
Apply for live approval: http://www.ian.com/xmldocs/requestReview.shtml
dschlier 32
Approved Example Sites
NewYorkCity.comundercovertourist.com orlando.com hotel.usdeutsch.hotels.com espana.hotels.comhotel.itireland.hotels.com hotels.dkhotell.comemea.hotels.comdeals.hotels.com
dschlier 33
Here s a summary list of resource links for Managing Your XML :
1. Documentation: http://www.ian.com/xmldocs/main.jsp
2. Apply for Access: http://12.14.173.100/xmldocs/xmlAccessForm.asp
3. Mandatory Requirements Checklist: http://www.ian.com/xmldocs/checklist/checkListHome.shtml
4. Apply for Approval to Go Live: http://www.ian.com/xmldocs/requestReview.shtml
5. When you need to update your IP address: http://www.ian.com/xmldocs/updateIp.shtml
6. When you need to update your XML distribution email addresses: http://www.ian.com/xmldocs/updateEmail.shtml
7. Sign up for Trip Advisor guest reviews: https://www.ian.com/xmldocs/guestReviews/guestReviews.shtml
469-335-1106 Affiliate Relations
EAN :: Expedia Affiliate Network 333 108th Ave NEBellevue, WA :: 98004
ian.com :: hotels.com10440 N. Central ExpresswaySuite 400Dallas, TX :: 75231
This document was created with Win2PDF available at http://www.daneprairie.com.The unregistered version of Win2PDF is for evaluation or non-commercial use only.