<!-- Copyright 1999-2000 Citrix Systems Inc                                 -->

<!-- DTD for the NFuse protocol                                             -->
<!-- Version 3.6.4 5 June 2000                                              -->
<!--                                                                        -->

<!--  <!DOCTYPE NFuseProtocol [  -->


  <!ELEMENT NFuseProtocol (
    RequestProtocolInfo |
    ResponseProtocolInfo |
    RequestAppData |
    ResponseAppData |
    RequestDiscSessionData |
    ResponseDiscSessionData |
    RequestServerData |
    ResponseServerData |
    RequestServerFarmData |
    ResponseServerFarmData |
    RequestAddress |
    ResponseAddress |
    RequestTicket |
    ResponseTicket |
    ResponseError )> 

  <!ATTLIST NFuseProtocol 
    version CDATA #REQUIRED>

  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
  <!--                   Protocol message declarations                      -->
  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->

  <!ELEMENT RequestProtocolInfo (
    ServerAddress )>

  <!ELEMENT ResponseProtocolInfo (
    ServerAddress
    | ErrorId )>

  <!ELEMENT RequestAppData (
    Scope,
    DesiredDetails*,
    AppName*,
    ServerType+,
    ClientType+,
    (Group | Credentials?),
    CRC? )>

  <!ELEMENT ResponseAppData (
    (AppDataSet*,
     CRC?)
    | ErrorId )>

  <!ELEMENT RequestDiscSessionData (
    Scope,
    ClientName?,
    Credentials? )>

  <!ELEMENT ResponseDiscSessionData (
    AppDataSet*
    | ErrorId)>

  <!ELEMENT RequestServerData (
    ServerType+,
    ClientType+ )>

  <!ELEMENT ResponseServerData (
    ServerData*
    | ErrorId )>

  <!ELEMENT RequestServerFarmData (
    Nil )>

  <!ELEMENT ResponseServerFarmData (
    ServerFarmData*
    | ErrorId )>

  <!ELEMENT RequestAddress (
    Name,
    ClientName?,
    ClientAddress?,
    ServerAddress, 
    Flags,
    Credentials? )>

  <!ELEMENT ResponseAddress (
    (ServerAddress,
     ServerType,
     ConnectionType,
     ClientType,
     TicketTag)
    | ErrorId )>

  <!ELEMENT RequestTicket (
    Credentials,
    TicketType,
    TicketTag,
    TimetoLive? )>

  <!ELEMENT ResponseTicket (
    Ticket 
    | ErrorId )>

  <!ELEMENT ResponseError (
    ErrorId )>

  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
  <!--                        Data type declarations                        -->
  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->

  
  <!ELEMENT AppData (
    InName,
    FName?,
    Details*,
    DataType?,
    SeqNo?,
    ServerType,
    ClientType )>

  <!ELEMENT AppDataSet (
    Scope,
    AppData* )>

  <!ELEMENT AppName (#PCDATA)>

  <!ELEMENT AppOnDesktop (#PCDATA)>
  <!ATTLIST AppOnDesktop value (true | false) "false">
  
  <!ELEMENT AppInStartmenu (#PCDATA)>
  <!ATTLIST AppInStartmenu value (true | false) "false">

  <!ELEMENT ClientAddress (#PCDATA)>

  <!ATTLIST ClientAddress
    addresstype CDATA #REQUIRED>        <!-- no-change | dot | dns | 
                                             dot-port | dns-port | uri      -->

  <!ELEMENT ClientName (#PCDATA)>

  <!ELEMENT ClientType (#PCDATA)>       <!-- ica30 | viewsoft | all         -->
 
  <!ELEMENT ConnectionType (#PCDATA)>   <!-- tcp | ssl | socks | http-tunnel-->

  <!ELEMENT Credentials (
    UserName,
    Password?,
    Domain?)>

  <!ELEMENT DataType EMPTY>

  <!ATTLIST DataType
    value CDATA #REQUIRED>              <!-- app | server                   -->
 
  <!ELEMENT Description (#PCDATA)>              

  <!ELEMENT DesiredDetails (#PCDATA)>   <!-- <null> | defaults | icon | all -->
  
  <!ELEMENT Details (
    Settings | Icon)*>

  <!ELEMENT Domain (#PCDATA)>
  <!ATTLIST Domain 
    type (NT|UNIX) "NT">

  <!ELEMENT Encryption (#PCDATA)>       <!-- basic | rc5-login | rc5-40
                                             rc5-56 | rc5-128              -->

  <!ATTLIST Encryption minimum (true | false) "false">

  <!ELEMENT ErrorId (#PCDATA)>          <!-- failed-credentials | no-server |
                                             must-change-credentials |
                                             expired-credentials |
                                             version-mismatch | bad-request |
                                             no-alt-address |  parser-error |
                                             unspecified |
                                             Ticketing-Disabled |
                                             GroupEnumeration-Disabled |
                                             FolderEnumeration-Disabled      -->
  
  <!ELEMENT Folder (#PCDATA)>

  <!ELEMENT Flags (#PCDATA)>            <!-- alt-addr                       -->
  
  <!ELEMENT FName (#PCDATA)>

  <!ELEMENT Group (
    GroupName+,
    Domain )>

  <!ELEMENT GroupName (#PCDATA)>

  <!ELEMENT Icon (#PCDATA)>

  <!ELEMENT InName (#PCDATA)>

  <!ELEMENT Name (
    UnspecifiedName
    | ServerName
    | ServerFarmName
    | AppName )>

  <!ELEMENT Nil EMPTY>

  <!ELEMENT Password (#PCDATA)>

  <!ATTLIST Password
    encoding CDATA #REQUIRED>           <!-- cleartext | ctx1 |
                                              rsa56 | rsa128                -->

  <!ELEMENT Settings (
    Folder,
    Description?,
    WinWidth,
    WinHeight,
    WinColor,
    WinType,
    WinScale,
    SoundType,
    VideoType,
    Encryption,
    AppOnDesktop,
    AppInStartmenu )>

  <!ATTLIST Settings 
    appisdisabled (true | false) "false"
    appisdesktop  (true | false) "false">

  <!ELEMENT Scope (#PCDATA)>

  <!ATTLIST Scope
    traverse (onelevel | subtree) "onelevel"
    type (PNFolder | IMADName ) "PNFolder">

  <!ELEMENT SeqNo (#PCDATA)>

  <!ELEMENT ServerAddress (#PCDATA)>

  <!ATTLIST ServerAddress
    addresstype CDATA #REQUIRED>        <!-- no-change | dot | dns | 
                                             dot-port | dns-port | uri      -->


  <!ELEMENT ServerData (
    ServerName,
    ServerType,
    ClientType )>

  <!ELEMENT ServerFarmData (ServerFarmName?)>

  <!ELEMENT ServerFarmName (#PCDATA)>

  <!ELEMENT ServerName (#PCDATA)>

  <!ELEMENT ServerType (#PCDATA)>       <!-- win32 | videoframe | x |
                                             java | viewsoft | all          -->

  <!ELEMENT SoundType (#PCDATA)>        <!-- none | basic                   -->

  <!ATTLIST SoundType
    minimum (true | false) "false">

  <!ELEMENT Ticket (#PCDATA)>

  <!ELEMENT CRC (#PCDATA)>

  <!ELEMENT TicketTag (#PCDATA)>

  <!ELEMENT TicketType (#PCDATA)>

  <!ATTLIST TicketType type CDATA "CtxLogon">

  <!ELEMENT TimetoLive (#PCDATA)>

  <!ELEMENT UnspecifiedName (#PCDATA)>

  <!ELEMENT UserName (#PCDATA)>

  <!ELEMENT VideoType (#PCDATA)>        <!-- none | basic                   -->

  <!ATTLIST VideoType
    minimum (true | false) "false">

  <!ELEMENT WinColor (#PCDATA)>

  <!ELEMENT WinHeight (#PCDATA)>

  <!ELEMENT WinScale (#PCDATA)>

  <!ELEMENT WinType (#PCDATA)>          <!-- pixels | percent |
                                             seamless | fullscreen          -->

  <!ELEMENT WinWidth (#PCDATA)>

<!--  ]> -->  













