|
|
XML Data
Our cruise content is supplied as two static XML files, regularly updated, in the following format:
Here is a sample schema file for our CruiseCharts XML file. We can customize your data package and the data can be published in other formats as well.
<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema'>
<!-- Copyright (C) Alsek Technologies, Inc. -->
<xs:element name="CruiseCharts"><xs:complexType>
<xs:sequence>
<xs:element ref="Itinerary" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="Copyright" use="required" type="xs:string" />
<xs:attribute name="Exported" use="required" type="xs:dateTime" />
</xs:complexType></xs:element>
<xs:element name="Itinerary"><xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="ItineraryType" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="ItineraryItem" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="Departure" minOccurs="1" maxOccurs="unbounded" />
</xs:choice>
<xs:attribute name="TotalFullDays" use="required" type="xs:int" />
<xs:attribute name="CruisingFullDays" use="required" type="xs:int" />
<xs:attribute name="StartLocationName" use="required" type="xs:string" />
<xs:attribute name="EndLocationName" use="required" type="xs:string" />
<xs:attribute name="DistributorName" use="required" type="xs:string" />
<xs:attribute name="DistributorCode" use="required" type="xs:string" />
<xs:attribute name="LargeMapFilename" use="required" type="xs:anyURI" />
<xs:attribute name="LargeMapHtmlMap" use="required" type="xs:string" />
<xs:attribute name="SmallMapFilename" use="required" type="xs:anyURI" />
<xs:attribute name="ItineraryContent" use="optional" type="xs:string" />
</xs:complexType></xs:element>
<xs:element name="Departure"><xs:complexType>
<xs:sequence>
<xs:element ref="Price" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="DepartureDate" use="required" type="xs:date" />
<xs:attribute name="ShipName" use="required" type="xs:string" />
<xs:attribute name="OperatorName" use="required" type="xs:string" />
<xs:attribute name="OperatorDepartureCode" use="optional" type="xs:string" />
<xs:attribute name="OperatorCode" use="optional" type="xs:string" />
<xs:attribute name="ShipCode" use="optional" type="xs:string" />
<xs:attribute name="OperatorDepartureName" use="optional" type="xs:string" />
</xs:complexType></xs:element>
<xs:element name="ItineraryItem"><xs:complexType>
<xs:attribute name="SortOrder" use="required" type="xs:int" />
<xs:attribute name="CalendarDayOffset" use="required" type="xs:int" />
<xs:attribute name="AbsoluteDayOffset" use="required" type="xs:int" />
<xs:attribute name="LocationID" use="required" type="xs:int" />
<xs:attribute name="LocationName" use="required" type="xs:string" />
<xs:attribute name="ArrivalTime" use="optional" type="xs:time" />
<xs:attribute name="DepartureTime" use="optional" type="xs:time" />
</xs:complexType></xs:element>
<xs:element name="ItineraryType"><xs:complexType>
<xs:attribute name="ItineraryTypeName" use="required" type="xs:string" />
<xs:attribute name="ItineraryTypeNameShort" use="required" type="xs:string" />
</xs:complexType></xs:element>
<xs:simpleType name="Filename">
<xs:restriction base="xs:string">
<xs:pattern value="[a-f0-9]+[.](jpg|png|gif)" />
</xs:restriction>
</xs:simpleType>
<xs:element name="Price"><xs:complexType>
<xs:attribute name="CategoryCode" use="required" type="xs:string" />
<xs:attribute name="Rate" use="required" type="xs:decimal" />
<xs:attribute name="CurrencyCode" use="required" type="Currency" />
</xs:complexType></xs:element>
<xs:simpleType name="Currency">
<xs:restriction base="xs:string">
<xs:enumeration value="USD" />
<xs:enumeration value="CAD" />
<xs:enumeration value="EUR" />
<xs:enumeration value="AUD" />
<xs:enumeration value="GBP" />
<xs:enumeration value="JPY" />
</xs:restriction>
</xs:simpleType>
</xs:schema>
Here is a sample schema file for our DeckCharts XML file. The data package can be customized and we offer several methods of visualization of cabin availability.
<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema'>
<!-- Copyright (C) Alsek Technologies, Inc. -->
<xs:element name="DeckCharts"><xs:complexType>
<xs:sequence>
<xs:element ref="Ship" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="Exported" use="required" type="xs:dateTime" />
<xs:attribute name="ImagesUrlRoot" use="required" type="xs:string" />
</xs:complexType></xs:element>
<xs:element name="Ship"><xs:complexType>
<xs:sequence>
<xs:element ref="ShipChart" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="ShipName" use="required" type="xs:string" />
<xs:attribute name="OperatorName" use="required" type="xs:string" />
<xs:attribute name="InitialDeployment" use="required" type="RecentYear" />
<xs:attribute name="LatestRefurbishment" use="optional" type="RecentYear" />
<xs:attribute name="CdcAverageInspectionScore" use="optional" type="AverageCdcScore" />
<xs:attribute name="CdcLastInspectionDate" use="optional" type="xs:date" />
<xs:attribute name="CdcLastInspectionScore" use="optional" type="CdcScore" />
<xs:attribute name="SmallPhoto" use="required" type="Filename" />
<xs:attribute name="LargePhoto" use="required" type="Filename" />
<xs:attribute name="ShipID" use="required" type="xs:int" />
</xs:complexType></xs:element>
<xs:element name="ShipChart"><xs:complexType>
<xs:sequence>
<xs:element ref="Legend" minOccurs="1" maxOccurs="1" />
<xs:element ref="Deck" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="StartDate" use="required" type="xs:date" />
<xs:attribute name="EndDate" use="required" type="xs:date" />
<xs:attribute name="Copyright" use="required" type="xs:string" />
<xs:attribute name="NumberOfPublicDecks" use="required" type="xs:int" />
<xs:attribute name="NumberOfInsideCabins" use="required" type="xs:int" />
<xs:attribute name="NumberOfOutsideCabins" use="required" type="xs:int" />
<xs:attribute name="NumberOfBalconyCabins" use="required" type="xs:int" />
<xs:attribute name="NumberOfSuiteCabins" use="required" type="xs:int" />
<xs:attribute name="PassengerCapacity" use="required" type="xs:int" />
<xs:attribute name="CrewCapacity" use="required" type="xs:int" />
<xs:attribute name="Tonnage" use="optional" type="xs:int" />
<xs:attribute name="ProfileFilename" use="required" type="Filename" />
<xs:attribute name="SpecificToDistributorID" use="optional" type="xs:int" />
</xs:complexType></xs:element>
<xs:element name="Legend"><xs:complexType>
<xs:sequence>
<xs:element ref="LegendItem" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType></xs:element>
<xs:element name="LegendItem"><xs:complexType>
<xs:attribute name="LegendText" use="required" type="xs:string" />
<xs:attribute name="IconFilename" use="required" type="Filename" />
</xs:complexType></xs:element>
<xs:element name="Deck"><xs:complexType>
<xs:sequence>
<xs:element ref="ShipProfileImageMapArea" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="ConnectingCabins" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="PublicArea" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="Category" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="DeckName" use="required" type="xs:string" />
<xs:attribute name="OtherDeckName" use="optional" type="xs:string" />
<xs:attribute name="SortOrder" use="required" type="xs:int" />
<xs:attribute name="DeckFilename" use="required" type="Filename" />
<xs:attribute name="IsDefaultDeck" use="required" type="xs:boolean" />
<xs:attribute name="ProfileFilename" use="required" type="Filename" />
<xs:attribute name="HorizontalOffsetWithinShipsBoundingRectangle" use="optional" type="xs:int" />
<xs:attribute name="VerticalOffsetWithinShipsBoundingRectangle" use="optional" type="xs:int" />
</xs:complexType></xs:element>
<xs:element name="PublicArea"><xs:complexType>
<xs:attribute name="PublicAreaName" use="required" type="xs:string" />
<xs:attribute name="DisplayInList" use="required" type="xs:boolean" />
<xs:attribute name="ImageMapAreaType" use="required" type="AreaType" />
<xs:attribute name="ImageMapCoordinates" use="required" type="CoordinateList" />
<xs:attribute name="VirtualTourURL" use="optional" type="URL" />
<xs:attribute name="LargePhoto" use="optional" type="Filename" />
<xs:attribute name="SmallPhoto" use="optional" type="Filename" />
<xs:attribute name="Description" use="optional" type="xs:string" />
</xs:complexType></xs:element>
<xs:element name="Category"><xs:complexType>
<xs:sequence>
<xs:element ref="Cabin" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="CategoryCode" use="required" type="xs:string" />
<xs:attribute name="IsMetaCategory" use="required" type="xs:boolean" />
<xs:attribute name="ConstituentCategoriesOnThisDeck" use="optional" type="xs:string" />
<xs:attribute name="ConstituentCategoriesAnywhereOnShip" use="optional" type="xs:string" />
<xs:attribute name="CategoryColor" use="required" type="HtmlColor" />
<xs:attribute name="CategoryName" use="required" type="xs:string" />
<xs:attribute name="CabinClassCode" use="required" type="xs:string" />
<xs:attribute name="CabinType" use="required" type="CabinType" />
<xs:attribute name="ExtendedCabinType" use="required" type="ExtendedCabinType" />
<xs:attribute name="MinimumOccupancy" use="required" type="Occupancy" />
<xs:attribute name="MaximumOccupancy" use="required" type="Occupancy" />
<xs:attribute name="SortOrder" use="required" type="xs:int" />
<xs:attribute name="RelatedCategories" use="optional" type="xs:string" />
<xs:attribute name="CategoryIcon" use="required" type="Filename" />
<xs:attribute name="ShortDescription" use="optional" type="xs:string" />
<xs:attribute name="FullDescription" use="optional" type="xs:string" />
<xs:attribute name="SmallPhoto" use="optional" type="Filename" />
<xs:attribute name="LargePhoto" use="optional" type="Filename" />
<xs:attribute name="CategoryFloorplan" use="optional" type="Filename" />
<xs:attribute name="VirtualTourURL" use="optional" type="URL" />
</xs:complexType></xs:element>
<xs:element name="ShipProfileImageMapArea"><xs:complexType>
<xs:attribute name="ImageMapAreaType" use="required" type="AreaType" />
<xs:attribute name="ImageMapCoordinates" use="required" type="CoordinateList" />
</xs:complexType></xs:element>
<xs:element name="Cabin"><xs:complexType>
<xs:attribute name="CabinNumber" use="required" type="xs:string" />
<xs:attribute name="CabinName" use="optional" type="xs:string" />
<xs:attribute name="Coordinates" use="optional" type="TopLeftCoordinates" />
<xs:attribute name="IsPrimary" use="required" type="xs:boolean" />
<xs:attribute name="ImageMapAreaType" use="required" type="AreaType" />
<xs:attribute name="ImageMapCoordinates" use="required" type="CoordinateList" />
<xs:attribute name="MinimumOccupancy" use="required" type="Occupancy" />
<xs:attribute name="MaximumOccupancy" use="required" type="Occupancy" />
<xs:attribute name="IsComposite" use="optional" type="xs:boolean" />
<xs:attribute name="IsAccessible" use="optional" type="xs:boolean" />
</xs:complexType></xs:element>
<xs:simpleType name="CabinType">
<xs:restriction base="xs:string">
<xs:enumeration value="Inside" />
<xs:enumeration value="Outside" />
<xs:enumeration value="Balcony" />
<xs:enumeration value="Suite" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ExtendedCabinType">
<xs:restriction base="xs:string">
<xs:enumeration value="Inside" />
<xs:enumeration value="InsideInteriorView" />
<xs:enumeration value="InsideVirtualView" />
<xs:enumeration value="Outside" />
<xs:enumeration value="OutsideObstructed" />
<xs:enumeration value="Lanai" />
<xs:enumeration value="Balcony" />
<xs:enumeration value="BalconyObstructed" />
<xs:enumeration value="ConciergeClass" />
<xs:enumeration value="Suite" />
<xs:enumeration value="SuiteObstructed" />
<xs:enumeration value="BalconyBoardwalkView" />
<xs:enumeration value="BalconyCentralParkView" />
<xs:enumeration value="OutsideBoardwalkView" />
<xs:enumeration value="OutsideCentralParkView" />
<xs:enumeration value="AquaClass" />
<xs:enumeration value="SuiteWithBalcony" />
<xs:enumeration value="SuiteWithWindowOnly" />
<xs:enumeration value="FrenchBalcony" />
<xs:enumeration value="BestPrice" />
</xs:restriction>
</xs:simpleType>
<xs:element name="ConnectingCabins"><xs:complexType>
<xs:attribute name="CabinNumber1" use="required" type="xs:string" />
<xs:attribute name="CabinNumber2" use="required" type="xs:string" />
</xs:complexType></xs:element>
<xs:simpleType name="AreaType">
<xs:restriction base="xs:string">
<xs:enumeration value="rect" />
<xs:enumeration value="poly" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Occupancy">
<xs:restriction base="xs:integer">
<xs:minInclusive value="1" />
<xs:maxInclusive value="12" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="RecentYear">
<xs:restriction base="xs:integer">
<xs:minInclusive value="1950" />
<xs:maxInclusive value="2050" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="CdcScore">
<xs:restriction base="xs:integer">
<xs:minInclusive value="0" />
<xs:maxInclusive value="100" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="AverageCdcScore">
<xs:restriction base="xs:decimal">
<xs:minInclusive value="0" />
<xs:maxInclusive value="100" />
<xs:fractionDigits value="1" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TopLeftCoordinates">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]+,[0-9]+" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="CoordinateList">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]+,[0-9]+(,[0-9]+,[0-9]+)+" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HtmlColor">
<xs:restriction base="xs:string">
<xs:pattern value="#[A-F0-9]{6}" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Filename">
<xs:restriction base="xs:string">
<xs:pattern value="[a-f0-9]+[.](jpg|png|gif)" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="URL">
<xs:restriction base="xs:string">
<xs:pattern value="https?://.+" />
</xs:restriction>
</xs:simpleType>
</xs:schema>
|
|