Предел мобильности! Дмитриев Данил aka xbit Хакер, номер #084, стр. 084-124-4 domain - имя домена для запрета доступа. Мобильный браузер будет просматривать, и сравнивать со значением этого атрибута все имена доменов, встречающиеся в документе. К примеру, встретив строку "<access domain="motorola.com"/>", браузер сможет зайти на www.motorola.com, но не сможет зайти на www.rola.com или на www.motorola.net. path - путь для сравнения. Работает так же, как и атрибут домена. Так, если "<access path="/internal"/>" путь "/internal/wml" пройдет проверку, то "/internal-wml" - нет. Элемент Access с примерно такими атрибутами: "<access domain="motorola.com" path="/spin"/>" разрешит ссылку на деку только со следующих адресов: http://www.motorola.com/spin/getuid.cgi https://www.motorola.com/spin/index.wml http://www.motorola.com/spin/********** А с этих запретит: http://www.mot.com/spin/getuid.cgi http://www.motorola.com/internal/spin/getuid.cgi В качестве примера использования структур приведу более сложную, чем раньше деку: <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <head> <access domain="motorola.com" path="/spin"/> </head> <template> <do type="accept" name="accept1" label="OK"> <go href="#accept"/> </do> </template> <card id="start" title="Start Here"> <p> Start Here. </p> </card> <card id="accept" title="Okay Card"> <do type="accept" name="accept1" label="Okay"> <go href="#accept2"/> </do> <p> Card Accept </p> </card> <card id="accept2" title="OK Card" > <do type="accept" > <go href="#start" /> </do> <p> Card Accept2 </p> </card> </wml> [WMLScript] Если ты хочешь создать что-то реально хорошее, тебе не обойтись без библиотек, встроенных в спецификацию протокола WAP 1.1. Всего библиотек шесть: преобразование булевых, целых и обычных переменных (LANG); операции с плавающей точкой (FLOAT); операции со строками (STRING); манипуляции с абсолютными и относительными URL (URL); взаимодействие с WML-браузером (WMLBrowser) и пара основных функций интерфейса пользователя (DIALOGS). Давай разберемся с тем, как работать с этими библиотеками в процессе создания несложной игры magic square, в которой игрок помещает целые числа в квадратную матрицу, следя за тем, чтобы сумма чисел в столбцах равнялась сумме в строках. Итак, создадим WML-документ и назовем его magic.wml. Он будет содержать весь интерфейс пользователя и логику игры. А также создадим второй файл magic.wmls, в котором будут содержаться все вычисления. Для начала мы должны описать взаимодействие между основными элементами пользовательского интерфейса и функциями WMLScript (то есть функциями наших библиотек). Создадим деку. Она сначала будет спрашивать у игрока позицию и значение целого числа, которое будет помещено в массив, а затем будет вызывать функцию для того, чтобы положить этот элемент в массив. Ниже я привожу пример кода деки, вызывающей функцию. Обрати внимание, что когда игрок нажмет кнопку OK, чтобы ввести значение, наша дека вызовет функцию FormRow, находящуюся в /magic.wmls. |