CruiseCharts Also available: DeckCharts
· interactive deck plans · more than 1,000 cruise ships ·

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>