<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

  <xsd:element name="ttp_options" type="ttpOptions"/>

  <xsd:complexType name="ttpOptions">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="autoturn" type="autoturnConfig"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="server" type="serverConfig"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="system" type="systemConfig"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="ui" type="uiConfig"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="library" type="libraryConfig"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="sd" type="sdConfig"/>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="autoturnConfig">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="pages" type="xsd:boolean"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="pagecount" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="bookcount" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="pause_min" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="pause_max" type="xsd:integer"/>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="serverConfig">
    <xsd:sequence>
	  <xsd:element minOccurs="0" maxOccurs="1" name="application_server_uri" type="xsd:string"/>
	  <xsd:element minOccurs="0" maxOccurs="1" name="application_server_dir" type="xsd:string"/>
	  <xsd:element minOccurs="0" maxOccurs="1" name="media_server_uri" type="xsd:string"/>
    <xsd:element minOccurs="0" maxOccurs="1" name="media_server_dir" type="xsd:string"/>
    <xsd:element minOccurs="0" maxOccurs="1" name="media_dir_local" type="xsd:string"/>
    <xsd:element minOccurs="0" maxOccurs="1" name="web_service_uri" type="xsd:string"/>
    <xsd:element minOccurs="0" maxOccurs="1" name="web_service_filename" type="xsd:string"/>
    <xsd:element minOccurs="0" maxOccurs="1" name="book_load_timeout" type="xsd:integer"/>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="systemConfig">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="view_angle" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="view_distance" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="object_offset_x" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="object_offset_y" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="page_turn_speed" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="stack_pages" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="ambient_light_colour" type="xsd:string"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="dim_light_colour" type="xsd:string"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="memory_saver_mode" type="xsd:boolean"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="transparency_fix" type="xsd:boolean"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="debug_mode" type="xsd:boolean"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="log_mode" type="xsd:boolean"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="log_stats" type="xsd:boolean"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="language" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="online" type="xsd:boolean"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="multiple_objects" type="xsd:boolean"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="book_drag_factor" type="xsd:double" />
      <xsd:element minOccurs="0" maxOccurs="1" name="wildcard_search" type="xsd:boolean" />
      <xsd:element minOccurs="0" maxOccurs="1" name="book_pause_animations_on_pageturn" type="xsd:boolean" />
      <xsd:element minOccurs="0" maxOccurs="1" name="book_remove_animations_on_pageturn" type="xsd:boolean" />
      <xsd:element minOccurs="0" maxOccurs="1" name="book_pageturn_single_click" type="xsd:boolean" />
      <xsd:element minOccurs="0" maxOccurs="1" name="ambientlight_fade_in_duration_ms" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="ambientlight_fade_out_duration_ms" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="spotlight_fade_in_duration_ms" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="spotlight_fade_out_duration_ms" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="app_width" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="app_height" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="app_scale_x" type="xsd:double" />
      <xsd:element minOccurs="0" maxOccurs="1" name="app_scale_y" type="xsd:double" />
      <xsd:element minOccurs="0" maxOccurs="1" name="touchscreen" type="touchScreenConfig"/>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="uiConfig">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="application_default_font" type="xsd:string"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="overlay_offset_x" type="xsd:double"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="overlay_offset_y" type="xsd:double"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="disable_menu_view_toggle_button" type="xsd:boolean"/>   
      <xsd:element minOccurs="0" maxOccurs="1" name="textDisplay_Width" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="textDisplay_Height" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="textDisplay2_Width" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="textDisplay2_Height" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="textDisplayDefaultTitleFontSize" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="textDisplayDefaultBodyFontSize" type="xsd:integer"/>    
      <xsd:element minOccurs="0" maxOccurs="1" name="media_default_width" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="media_default_height" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="media_select_default_width" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="media_select_default_height" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="helpDisplay_Width" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="helpDisplay_Height" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="glossaryDisplay_Width" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="glossaryDisplay_Height" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="glossaryDisplayPromptText" type="xsd:string"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="link_select_panel_width" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="link_select_panel_height" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="link_select_panel_prompt" type="xsd:string"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="media_select_panel_hotspot_title" type="xsd:string"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="inputErrorColour" type="xsd:string"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="inputOkColour" type="xsd:string"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="searchPanel" type="xsd:boolean"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="graphic_Info_Image_Name" type="xsd:string"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="image_detail_width" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="dcmi_data_display" type="xsd:boolean"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="startup_info_display" type="xsd:boolean"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="startup_info_display_header" type="xsd:string"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="startup_info_display_close_label" type="xsd:string"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="media_player_controls" type="xsd:boolean"/>     
      <xsd:element minOccurs="0" maxOccurs="1" name="panel_positions" type="panelPositionsConfig"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="userdisplay_background_border_color" type="userDisplayBackgroundBorderColorConfig"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="button_bar" type="buttonBarConfig"/>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="buttonBarConfig">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="buttons" type="buttonsConfig"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="auto_minimize_toolbar" type="xsd:boolean"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="auto_hide_toolbar" type="xsd:boolean"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="disable_toolbar" type="xsd:boolean"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="lock_toolbar" type="xsd:boolean"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="zoom_toolbar_buttons" type="xsd:boolean"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="button_menu" type="xsd:boolean"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="button_media" type="xsd:boolean"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="button_reset_label" type="xsd:string"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="button_texts" type="xsd:boolean"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="button_text2" type="xsd:boolean"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="button_notes" type="xsd:boolean"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="mini_spread_navigator" type="xsd:boolean" />
      <xsd:element minOccurs="0" maxOccurs="1" name="button_search" type="xsd:boolean"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="button_glossary" type="xsd:boolean"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="button_glossary_label" type="xsd:string"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="button_manipulate_label" type="xsd:string"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="button_graphic_info" type="xsd:boolean"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="button_graphic_info_label" type="xsd:string"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="button_search_links" type="xsd:boolean"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="button_search_links_label" type="xsd:string"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="button_image_detail" type="xsd:boolean"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="button_image_detail_label" type="xsd:string"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="button_zoom_icons_horizontal" type="xsd:boolean"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="button_overlay_label" type="xsd:string"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="button_link_label" type="xsd:string"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="button_restart" type="xsd:boolean"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="color" type="buttonBarColorConfig"/>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="buttonsConfig">
    <xsd:sequence>
      <xsd:element minOccurs="0" name="button" type="buttonConfig"/>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="mediaSelectPanelConfig">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="width" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="height" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="position_x" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="position_y" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="prompt" type="xsd:string"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="title" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="mediaDisplayPanelConfig">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="width" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="height" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="position_x" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="position_y" type="xsd:integer"/>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="buttonConfig">
    <xsd:sequence>
      <xsd:element minOccurs="1" maxOccurs="1" name="type">
        <xsd:simpleType>
          <xsd:restriction base="xsd:string">
            <xsd:enumeration value="media" />
            <xsd:enumeration value="audio" />
            <xsd:enumeration value="video" />
            <xsd:enumeration value="text" />
          </xsd:restriction>
        </xsd:simpleType>
      </xsd:element>
      <xsd:element minOccurs="0" maxOccurs="1" name="label" type="xsd:string"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="caption" type="xsd:string"/>
      <xsd:element minOccurs="1" maxOccurs="1" name="meta_type">
        <xsd:simpleType>
          <xsd:restriction base="xsd:string">
            <xsd:enumeration value="universal" />
            <xsd:enumeration value="state" />
            <xsd:enumeration value="hotspot" />
            <xsd:enumeration value="none" />
          </xsd:restriction>
        </xsd:simpleType>
      </xsd:element>
      <xsd:element minOccurs="0" maxOccurs="1" name="image" type="xsd:string"/>
      <xsd:element minOccurs="1" maxOccurs="1" name="number" type="xsd:int"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="slot" type="xsd:int"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="column" type="xsd:int"/>
      <xsd:element minOccurs="0" name="select_panel" type="mediaSelectPanelConfig"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="display_panel" type="mediaDisplayPanelConfig"/>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="userDisplayBackgroundBorderColorConfig">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="a" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="r" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="g" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="b" type="xsd:integer"/>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="buttonBarColorConfig">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="a" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="r" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="g" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="b" type="xsd:integer"/>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="panelPositionsConfig">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="text_display_Xpos" type="xsd:double"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="text_display_Ypos" type="xsd:double"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="text_display2_Xpos" type="xsd:double"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="text_display_2Ypos" type="xsd:double"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="help_display_XPos" type="xsd:double"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="help_display_YPos" type="xsd:double"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="glossary_display_XPos" type="xsd:double"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="glossary_display_YPos" type="xsd:double"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="link_select_panel_x" type="xsd:double"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="link_select_panel_y" type="xsd:double"/>

      <xsd:element minOccurs="0" maxOccurs="1" name="media_display_hotspot_x" type="xsd:double"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="media_display_hotspot_y" type="xsd:double"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="media_display_hotspot_size_x" type="xsd:double"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="media_display_hotspot_size_y" type="xsd:double"/>

      <xsd:element minOccurs="0" maxOccurs="1" name="media_select_hotspot_x" type="xsd:double"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="media_select_hotspot_y" type="xsd:double"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="media_select_hotspot_size_x" type="xsd:double"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="media_select_hotspot_size_y" type="xsd:double"/>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="touchScreenConfig">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="large_visuals" type="xsd:boolean"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="button_back_to_beginning" type="xsd:boolean"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="attractor_timeout" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="touch_text" type="xsd:string"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="welcome_text" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>  

  <xsd:complexType name="libraryConfig">
    <xsd:sequence>
      <xsd:element minOccurs="1" maxOccurs="1" name="id" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="autolaunch_object_id" type="xsd:string"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="autolaunch_object_params" type="xsd:string"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="autolaunch_delay" type="xsd:integer"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="local_config" type="xsd:string"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="notesterms_uri" type="xsd:string"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="notesreport_email" type="xsd:string"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="logo_file" type="xsd:string"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="logo_link_uri" type="xsd:string"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="online_objects" type="xsd:boolean"/>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="sdConfig">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="media_local" type="xsd:boolean"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="drag_factor" type="xsd:double" />
      <xsd:element minOccurs="0" maxOccurs="1" name="tile_fade_time_ms" type="xsd:int" />
      <xsd:element minOccurs="0" maxOccurs="1" name="hit_test_interval_ms" type="xsd:int" />
      <xsd:element minOccurs="0" maxOccurs="1" name="multiple_hit_points" type="xsd:boolean"/>
      <xsd:element minOccurs="0" maxOccurs="1" name="spotlight_detailup_w" type="xsd:int" />
      <xsd:element minOccurs="0" maxOccurs="1" name="spotlight_detailup_h" type="xsd:int" />
    </xsd:sequence>
  </xsd:complexType>
</xsd:schema>


