Без возможности производить различные операции с информацией на сервере, WML остался бы просто средством форматированного вывода текста. Добавление такой возможности, напротив, открывает любому WAP-совместимому устройству пути передачи сообщений через Интернет, промышленному использованию на предприятии и электронной коммерции. WAP-совместимое устройство взаимодействуют с подобными источниками информации через WAP-шлюз. Этот шлюз должен уметь взаимодействовать с различными стандартами сотовой связи, такими как CDMA, GSM или GPRS. Однако, вполне возможно установить тестовый шлюз в сочетании с популярными веб-серверами (такими как MS IIS или Apache) прямо в вашей локальной сети. Мы не будем тут сильно вдаваться в детали процесса установки шлюза, однако нельзя не предостеречь вас от самой распространенной ошибки. Вам обязательно необходимо добавить определения следующих типов в конфигурацию веб-сервера.
WML text/vnd.wap.wml wml WMLScript text/vnd.wap.wmlscript wmls
Теперь мы рассмотрим небольшой примерчик в котором пользователю будет предложено сделать выбор какой-то одной опции а затем на основе этого выбора с сервера будет загружена определенная информация. Для этого примера мы используем ASP. С тем же успехом мы могли написать скрипт использую Javascript, Servlets, Perl или любой другой язык. В следующем листинге приведен исходный код для нашей новой деки. В ней содержится всего один элемент <select>, который предлагает пользователю выбор из нескольких опций. Элемент <go> вызывает серверный скрипт с определенными параметрами.
<?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <card id="Order" title="Query Inventory"> <p> <select name="Items" title="Items"> <option value="Books">Books</option> <option value="Music">Music</option> <option value="Video">Video</option> <option value="Software">Software</option> </select> </p> <do type="accept" label="Query"> <go href="http://127.0.0.1/WML/Inventory.asp" method="post"> <postfield name="Items" value="$(Items)"/> </go> </do> </card> </wml>