Подробнее о приложении FlightSchedule.hdml
Подробнее о приложении FlightSchedule.hdml
Как и приложение формата WML, файл FlightSchedule.hdml позволяет пользователю определить состояние выбранного рейса, используя переносное устройство(в нашем случае сотовый телефон). Этот файл имеет следующий исходный код:
<HDML Version=3.0 Markable=True TTL=0>
<Choice Name=GetAirline1 Key=AirCode>
<Action Type=Accept Task=GO Dest=#GetFlightNum>
<Center>Flight Schedule <br><Line>Airline:
<CE Value=SU>Aeroflot <CE Value=AC>Air Canada <CE Value=AF>Air France <CE Value=NZ>Air New Zealand <CE Value=AS>Alaska Airlines <CE Value=AQ>Aloha Airlines <CE Value=HP>America West <CE Value=AA>American Airlines <CE Value=TZ>American Trans Air <CE Task=GO Dest=#GetAirline2>...More
</Choice>
<Choice Name=GetAirline2 Key=AirCode>
<Action Type=Accept Task=GO Dest=#GetFlightNum> <Action Type=Soft1 Label=Back Task=GO Dest=#GetAirline1>
<Center>Flight Schedule <br><Line>Airline:
<CE Value=CO>Continental <CE Value=DL>Delta Airlines <CE Value=LH>Lufthansa <CE Value=JL>Japan Airlines <CE Value=KL>KLM Royal Dutch <CE Value=NW>Northwest Airlines <CE Value=QF>Qantas Airlines <CE Value=QQ>Reno Air <CE Value=SR>SwissAir <CE Task=GO Dest=#GetAirline3>...More
</Choice>
<Choice Name=GetAirline3 Key=AirCode>
<Action Type=Accept Task=GO Dest=#GetFlightNum> <Action Type=Soft1 Label=Back Task=GO Dest=#GetAirline2>
<Center>Flight Schedule <br><Line>Airline:
<CE Value=TW>TWA <CE Value=UA>United Airlines <CE Value=US>USAir <CE Value=VS>Virgin Atlantic
</Choice>
<Entry Name=GetFlightNum Format=5N Key=FlightNum Default="">
<Action Type=Accept Task=GO Label=Find Method=Post PostData=$(AirCode)&$(FlightNum) Dest=../waplibcgi/FlightScheduleHDML.pl>
Flight Number:
</Entry>
</HDML>
Первый элемент внутри деки сообщает браузеру (или другим программистам), какая версия языка HDML используется приложением. Далее выражение Markable=True сообщает браузеру, что он может установить закладку в исходной деке, атть=0 сообщает ему о невозможности кэширования (таким образом, браузер должен перегружать эту деку каждый раз при обращении к нему пользователя).
Как вы видите, для отображения списка авиакомпаний, приложение используетэлемент <Choice>. Внутри <Choice> используется элемент <Action> для определения места в деке, куда приложение передает управление, когда пользовательпроизводит выбор авиакомпании. В отличие от версии формата WML, где используются два отдельных файла (один для получения названия авиакомпании иодин для получения номера рейса), в версии приложения формата HDML используется только один файл. Если вы подробнее изучите приложение, вы заметите,что в элементе <Choioe> с именами GetAirline2 и GetAirlineS используетсяэлемент <Action>, который определяет место в деке, куда передается управлениепосле того как пользователь нажимает кнопку Back (Назад).
После выбора пользователем авиакомпании в исходном коде осуществляется переход к элементу GetFlightNum, который предлагает пользователю ввести номеррейса и загружает сценарий языка Perl FlightScheduleHDML.pl.