1 WML.

WML (Wireless Markup Language) − мова розм≥тки, ¤ка базуЇтьс¤ на мов≥ XML (Extensible Markup Language). ќф≥ц≥йна специф≥кац≥¤ WML розроблена ≥ п≥дтримуЇтьс¤ WAP Forum, виробничим консорц≥умом, заснованим Nokia, Phone.com, Motorola ≥ Ericsson. ÷¤ специф≥кац≥¤ визначаЇ синтаксис, зм≥нн≥ й елементи, ¤к≥ використовуютьс¤ у файлах WML. ќстаннЇ визначенн¤ типу документа (Document Type Definition) дл¤ тих, хто знайом ≥з XML, доступн≥ за адресою: http://www.wapforum.org/DTD/wml_1.1.xml

ѕризначенн¤ WML − опис зм≥сту ≥ користувацького ≥нтерфейсу дл¤ особливого класу вузько л≥н≥йних пристроњв, типу Palm Pilot, ст≥льникових телефон≥в та пейджер≥в.

WML спец≥ально заснований з ор≥Їнтац≥Їю на особливост≥ таких пристроњв, а саме: малоформатний екран, вузьку смугу пропусканн¤ каналу зв'¤зку, малу пам'¤ть ≥ обмеженн¤ на "обчислювальн≥" зд≥бност≥. ¬раховуючи це та невисокий р≥вень стандартизац≥њ, у мов≥ "в≥зуальноњ розм≥тки" дл¤ WAP пристроњв своЇ законне м≥сце зайн¤ла ≥де¤ добре структурованих даних − WML успадковуЇ синтаксис XML.

¬ажко у¤вити, що хтось буде п≥дключати до ст≥льникового телефону мишу, тому модель "point-and-click" дл¤ WAP не годитьс¤ (принаймн≥,† так вважаЇ група розробник≥в мови), ≥ велика роль у WML в≥дводитьс¤ ≥ншим механ≥змам под≥й. ¬ ¤кост≥ альтернативи модел≥ "point-and-click" можна привести можлив≥сть керуванн¤ голосом. ≈крани WAP пристроњв в основному зустр≥чаютьс¤ двох вид≥в: вертикальн≥ або горизонтальн≥, але поЇднуЇ† њх† те, що обидва типи екран≥в Ї малоформатними.

WML код вигл¤даЇ† ¤к ≥ HTML код, але з† б≥льш твердими вимогами† до парност≥† тег≥в, використанн¤ рег≥стра й обмеженн¤ атрибут≥в лапками . ¬ WML використовуютьс¤ наступн≥ синтаксичн≥ компоненти Ц символьн≥ сутност≥, елементи, атрибути, коментар≥, зм≥нн≥ ≥ секц≥њ CDATA.

WML на в≥дм≥ну в≥д HTML не маЇ у своЇму актив≥ п≥дтримки великого набору тег≥в.††

 

1.1 ќснови WML програмуванн¤.

ѕри використанн≥ WML доводитьс¤ дотримуватис¤ дек≥лькох неформальних рекомендац≥й. ѕо WAP-протоколу дан≥ в телефон поступають у вигл¤д≥ колод (desks), розм≥р одн≥Їњ колоди невеликий приблизно 1,5  б. ÷е зроблено дл¤ п≥двищенн¤ ефективност≥ траф≥ка, ≥ розробнику необх≥дно заздалег≥дь комп≥лювати WML-тексти дл¤ п≥дбору њх оптимальних розм≥р≥в.  олода складаЇтьс¤ з карт (cards), кожна з ¤ких описуЇ один зак≥нчений модуль взаЇмод≥њ з користувачем (≥нтерактивний елемент екрана) ≥ визначаЇ спос≥б нав≥гац≥њ всередин≥ колоди. WML-тексти, чутлив≥ до рег≥стра (¤к тексти на мов≥ —), що ¤вл¤Ї собою одну хоч ≥ непринципову, але важливу в практичному план≥ особлив≥сть WML. ѕосл≥довност≥ символ≥в переведенн¤ р¤дка, табул¤ц≥њ, пропуск≥в завжди перетворюютьс¤ в один пропуск.† ¬с≥ WML-документи мають розширенн¤ wml ≥ починаютьс¤ з трьох стандартних р¤дк≥в:

 

<?xml version=У1.0Ф?> (номер верс≥њ XML)
††††† <!DOCTYPE wml PUBLIC У-//WAPFORUM//DTD WML 1.1//ENФ (≥дентиф≥катор†††††††

†††††††††† ††††††††††††††††††††††††††††††††††††††††SGML-опису мови WML)
      У<A HREF="http://www.wapforum.org/DTD/wml_1.1.xml">

www.wapforum.org/DTD/wml_1.1.xml</A>Ф>(Web-адреса DTD-визначенн¤ †††††††††††††††††WML-документа)

ѕерш≥ два р¤дки Ї так званим прологом XML-документа. ¬ цьому пролоз≥ визначаЇтьс¤ верс≥¤ XML† ≥ DTD (вказ≥вник на файл, що м≥стить DTD).

—л≥дом за прологом, у кожному XML-документ≥ м≥ститьс¤ один Їдиний елемент, що м≥стить у соб≥ ≥нш≥ п≥делементи та сутност≥. “ак само ¤к ≥ в HTML цими елементами Ї кутов≥ дужки: <></>. Ќаприклад:<element>data</element>. ” документ≥ повинен м≥ститис¤ т≥льки один елемент, ¤кий описуЇ даний документ. ” WML цим елементом Ї <wml>. ¬с≥ ≥нш≥ елементи м≥ст¤тьс¤ вже всередин≥ нього.

 олода беретьс¤ в теги

 

<wml>
...
</wml>

¬середин≥ колоди один за другим сл≥дують описи карт:

<card>
...
</card>
<card>
...
</card>
...

ƒва найпоширен≥ш≥ способи збереженн¤ ≥нформац≥њ всередин≥ XML-документа це елементи† ≥ њхн≥ атрибути. ≈лементи визначають структурну розм≥тку всередин≥ документа в≥дкритт¤м ≥ закритт¤м визначених тег≥в. ≈лементи, в свою чергу можуть м≥стити п≥делементи. јтрибути в основному використовуютьс¤ дл¤ опису елемент≥в.  оментар у WML, також ¤к ≥ в HTML† обмежений тегами <!---->.

«а допомогою спец≥альних шаблон≥в можна визначати додатков≥ стандартн≥ д≥њ при зверненн≥ до де¤ких або до вс≥х карт колоди.  ожна карта повинна мати св≥й ≥дентиф≥катор ≥ назву:††††

 

†††† <card id=Уwap.pcweek.card1" title=Уpcweek.ru demonstraciya">††

 

“ут необх≥дно зазначити, що оск≥льки далеко не вс≥ WAP-телефони, ¤к≥ використовуютьс¤ в наш≥й крањн≥ русиф≥кован≥, а тим б≥льше украњн≥зован≥, WAP-дизайнеру обов'¤зково потр≥бно пропонувати дек≥лька вид≥в представленн¤ своњх ресурс≥в,†† зокрема,† на трансл≥т≥ (латинськими буквами).

Ѕ≥льш≥сть тег≥в WML†† парн≥, тобто в≥дкриваютьс¤ й закриваютьс¤, ¤к того вимагаЇ стандарт XML, за невеликими виключенн¤ми, наприклад, кр≥м тега нового р¤дка††††††† Ќайпрост≥ший тег <р> описуЇ один параграф тексту:††

 

†††††† <р> Dobro pozhalovat' na wap-server pcweek.ru! </р>†

 

«ак≥нчена стор≥нка повн≥стю запишетьс¤ так:††††††

 

† <?xml version=У1.0Ф?>
        <!DOCTYPE wml PUBLIC У-//WAPFORUM//DTD WML 1.1//ENФ
        У<A HREF="http://www.wapforum.org/DTD/wml_1.1.xml">

††††† †www.wapforum.org/DTD/wml_1.1.xml</A>Ф>
     
<wml>
      
††††† <card id=Уwap.pcweek.card1Ф title=Уpcweek.ru demonstraciyaФ>
        
††††††††† <p>
        †
††††††††††††† Dobro pozhalovatТ na wap-server pcweek.ru!
        
††††††††† </p>
      
††††† </card>
     
</wml>

 

якщо текст, ¤кий виводитьс¤ не пом≥щаЇтьс¤ на екран≥ трубки, то користувачев≥ доведетьс¤ його скроллювати, тому краще не створювати великих карт ≥ колод, а розбивати њх на маленьк≥ складов≥, забезпечуючи њх необх≥дними продуманими засобами нав≥гац≥њ. ƒл¤ прив'¤зки р≥зних функц≥й до засоб≥в управл≥нн¤ телефону служить тег <do>.† …ого найважлив≥ш≥ атрибут膆 type (тип д≥њ; значенн¤ accept задаЇ перех≥д до наступноњ карти, значенн¤ prev до попередньоњ), name (≥дентиф≥катор дл¤ зв'¤зку з даною реал≥зац≥Їю тега) ≥ label (назва д≥њ, що виводитьс¤ на екран в область нав≥гац≥њ).†  онкретна адреса переходу задаЇтьс¤ непарним тегом <go>.

—еред ≥нших WML-тег≥в можна в≥дм≥тити засоби захопленн¤ призначеного дл¤ користувача введенн¤, створенн¤ вс≥л¤ких списк≥в, розширеноњ нав≥гац≥њ, форматуванн¤ тексту. Ќа WML-стор≥нц≥ можна також розм≥щувати невелик≥ сценар≥њ на мов≥ WMLScript, що ¤вл¤Ї собою п≥дмножину JavaScript ≥ оптим≥зована дл¤ виконанн¤ на моб≥льних пристро¤х з малими обчислювальними ресурсами.

ƒокладн≥ше вс≥ ц≥ WML-теги† будуть розгл¤нут≥ нижче.

 

1.2 WMLзм≥нн≥.

” WML використовуютьс¤ глобальн≥ зм≥нн≥, в ¤ких можна збер≥гати дан≥ на р≥вн≥ поточного сеансу. «а допомогою зм≥нних реал≥зовуЇтьс¤ механ≥зм збереженн¤ даних в одн≥й з карт дл¤ њњ подальшого використанн¤ в ≥нш≥й. «м≥нн≥ можуть бути визначенн≥ та ≥н≥ц≥ал≥зован≥ дек≥лькома способами:

Ј        «м≥нн≥, ¤к≥ починаютьс¤ з символу $ п≥сл¤ ¤кого вказуЇтьс¤ ≥мТ¤ зм≥нноњ. Ќаприклад: $(name) або $(surname) тощо.

Ј        ¬икористовуючи тег <setvar> ¤к результат виконанн¤ користувачем визначених д≥й.  р≥м того, цей тег може бути використаний дл¤ визначенн¤ зм≥нноњ всередин≥ наступних тег≥в: <go>, <prev>, <refresh>. Ќаприклад: показаний елемент створюЇ зм≥нну x ≥ надаЇ њй значенн¤ "123"†

<setvar name="x" value="123"/>

Ј        «м≥нним також можуть присвоюватис¤ значенн¤ тег≥в <input>, <select>, <option> та ≥нш≥. ѕри цьому автоматично створюЇтьс¤ зм≥нна з ≥м'¤м цього тега. ѕо зак≥нченн≥ введенн¤, њй присвоюЇтьс¤ значенн¤, ¤ке в≥дпов≥даЇ† вибору користувача. Ќаприклад, наступний тег створить зм≥нну з ≥м'¤м "x"

<select name="x" title="X Value:">

ЌезважаючинатещоминеописуЇмоWMLScript, необх≥днозазначити, щоWMLWMLScriptвикористовують одн≥ ≥ т≥сам≥ зм≥нн≥врамкаходн≥Їњдеки.

 

1.3 ѕризначенн¤ та використанн¤ основних тег≥в WML.

¬с≥ теги† WML можна умовно под≥лити на так≥ категор≥њ:

1.   теги дл¤ колоди/карт;

2.   текстов≥ теги;

3.   теги форматуванн¤,

4.   нав≥гац≥њ,

5.   введенн¤ даних†

6.   керуванн¤ задачами/д≥¤ми.

–озгл¤немо детальн≥ше ц≥ категор≥њ.

1.3.1 “еги дл¤ колоди/карт.

Ј      <access> − задаЇ ≥нформац≥ю про елемент доступу;

Ј      <card> − визначаЇ карту;

Ј      <head>задаЇ заголовок документа;

Ј      <meta> − вказуЇ мета≥нформац≥ю;

Ј      <template> − визначаЇ шаблон;

Ј      <wml>− вказуЇ початок† WML-документа, а точн≥ше колоди;

Ј      <!--> − початок коментар¤.

1.3.2 “екстов≥ теги.

Ј      <p> − параграф. ÷ей тег маЇ наступн≥ атрибути: align− задаЇ спос≥б вир≥внюванн¤ тексту, приймаЇ значенн¤ right (по правому краю), center(по центру) або left(по л≥вому краю) та mode − задаЇ, чи буде текст на екран≥ з авто-переносом (wrap) чи н≥ (nowrap);

Ј      <br/> −† перех≥д на новий р¤док;

Ј      <table> − створюЇ таблицю;

Ј      <tr>† − описуЇ р¤док таблиц≥;

Ј      <td>†− описуЇ стовпець таблиц≥.

1.3.3 “еги форматуванн¤.

ќск≥льки на екран виводитьс¤ по одн≥й карт≥, то в тез≥ <card> передбачений атрибут id − внутр≥шн≥й ≥дентиф≥катор дл¤ переход≥в, а також видимий на екран≥ заголовок title.

ƒл¤ форматуванн¤ тексту, ¤к ≥ в HTML, використовуютьс¤ наступн≥ теги:

Ј      <em><I>− в≥дображаЇ вказаний фрагмент тексту курсивом

Ј      <strong>в≥дображаЇ вказаний фрагмент тексту нап≥вжирним шрифтом

Ј      <u>†п≥дкреслюЇ вказаний фрагмент тексту

Ј      <big>†текст б≥льшого розм≥ру

Ј      <small>†текст маленького розм≥ру.

Ј      <img/>− вставка граф≥чного зображенн¤.

 

1.3.4 “еги нав≥гац≥њ.

ƒл¤ нав≥гац≥њ та установки г≥перпосилань використовуютьс¤ теги<anchor><a>

—емантика <a> повторюЇ HTML, а в тез≥ <anchor> використовуЇтьс¤ або п≥дтег <go> з атрибутом href, що задаЇ адресу посиланн¤, або <prev> − повернутис¤ до попереднього екрана.

¬≥добразивши стор≥нку на екран≥, ми побачимо першу карту. ўоб перейти до наступноњ, необх≥дно ¤кось адресувати† карти, дл¤ цього служить атрибут id тега <card> − ун≥кальний ≥дентиф≥катор карти. «верн≥ть увагу також на атрибут title − назву карти, що маЇ зм≥ст, зокрема, дл¤ закладок.

 

††††††††††† <anchor>List of Tales

††††††††††† <go href="tales.wml"/></anchor>

 

††††††††††† <anchor>Previous page<prev/></anchor>

 

††††††††††† <a href="story.wml">goto Story</a><br/>

 

¬ наведеному приклад≥ посиланн¤ встановлюютьс¤ за допомогою тегу <anchor> та традиц≥йного тегу <a>. ” <anchor>† Ї два атрибути: href − визначаЇ об'Їкт, на ¤кий ми посилаЇмос¤, ≥ title − екранна п≥дказка, ¤ка ≥дентиф≥куЇ зв'¤зок.

 

1.3.5 “еги введенн¤ даних.

Ѕезумовно, усю м≥ць ≥де¤ зм≥нних здобуваЇ при можливост≥ щось одержати в≥д користувача. ƒл¤ цього передбачений комплект тег≥в введенн¤, досить близький до своњх HTML аналог≥в:

ѕоле <input> призначене дл¤ введенн¤ даних користувачем

select/option† − поле† вибору ≥з† заздалег≥дь заданого списку.

<postfield> аналог прихованих <input> у HTML-формах. Ќасправд≥, це б≥льш потужн≥ша р≥ч, тому що маючи зм≥нн≥, у <postfields>† можна збирати й перегруповувати ≥нформац≥ю.

јтрибути name тег≥в <input><select> збер≥гаютьс¤ ¤к зм≥нн≥ у всьому простор≥ колоди ≥ виступають параметрами в переходах по <go><a>. «а допомогою ≥нших атрибут≥в<input> типу type, formatmaxlength, можна керувати форматним введенн¤м. ¬икористовуючи тег <fieldset>, можна задавати де¤к≥ стил≥ оформленн¤.

ѕриклад<input><select>

 

<wml>

<card id="search" title="search">

<p align="left">

CD: <input name="band" title="JazzBand:" size="18"

† value="Rolling Stones" emptyok="false"/><br/>

Type: <select name="type" value="double" title="Type:">

† <option value="single">Single CD</option>

† <option value="double">Double CD</option>

</select>

</p>

</card>

 

<card id="add" title="Add CD">

CD: <input name="CD" size="18" type="text" /><br/>

Price: <input name="Price" size="8"/><br/>

</card>

</wml>

 

“ут атрибут name − ≥м'¤ зм≥нноњ, куди заноситьс¤ значенн¤, type − тип форми ( текст або число), value − значенн¤ за замовчуванн¤м, aemptyok показуЇ, чи припустимий в ¤кост≥† значенн¤ порожн≥й р¤док..

 

1.3.6 “еги керуванн¤ задачами/д≥¤ми.

"ƒ≥њ" (tasks, do) використовуютьс¤ дл¤ структур типу меню ≥ дл¤ опису окремих д≥й, наприклад, дл¤ вибору новоњ карти/посиланн¤. “ипов≥ "виконавч≥" теги д≥й − це <go>, <prev>, <refresh> (перечитати поточну карту) або <noop> (н≥чого не робити). ƒ≥њ на р≥вн≥ конкретноњ карти описуютьс¤ за допомогою тегу <do>, а на р≥вн≥ вс≥Їњ колоди −† <template>.

«а допомогою тега <timer> ≥ атрибута ontimer тега <card> можна, наприклад, на де¤кий час УзаморозитиФ стор≥нку. Ќа практиц≥ часто застосовуЇтьс¤ ontimer="url", що говорить, що де¤кий час карта повинна в≥дображатис¤, а пот≥м повинен завантажитис¤ ресурс, ¤кий знаходитьс¤ за адресою url. „ас в атрибут≥ value вказуЇтьс¤ в 0,1 сек.

 

<wml>

<card id="variable" title="Variable" ontimer="WMLScript.wml">

†<timer value="5"/>

†<p align="left"> Wait for 5 seconds ... </p>

</card>

<!-- Card and deck linking -->

<card id="input1" title="Input">

<do type="Next input properties">

† <go href="#input2"/> </do>

<do type="Task properties">

† <go href="Task.wml"/> </do>

† ...

</card>

</wml>

 

¬≥дпов≥дно до WML-специф≥кац≥њ, в тега <do>повинн≥ бути ун≥кальн≥ атрибути name, але ¤кщо ¤ке-небудь значенн¤ атрибута name не вказане, то воно екв≥валентне значенню атрибута type. ” таких випадках р≥зн≥ теги <do> легко можуть почати перетинатис¤ по ≥менах, що може стати джерелом важко д≥агностованих помилок.

 

<do type="accept" name="yeah" label="Menu">

<go href="Menu.asp#menu"/>

</do>

<do type="accept" name="blah" label="Back">

<prev/>

</do>

 

WML Їтакожможлив≥стьпризначатиклав≥ш≥нав≥гац≥њ. “ег<onevent type="button"><д≥¤></onevent>дозвол¤Їприписатидоодн≥Їњзкнопоктелефону (залежитьв≥дмодел≥) де¤куд≥ю. ¬ ¤кост≥ д≥њ зазвичай використовуЇтьс¤ <go href="url"/>. “ак, додавши до карти р¤док <onevent type= "GO"><go href="#card2"/></onevent>, ми призначимо кнопц≥ GO перех≥д безпосередньо в меню. ѕриклад,

 

<do type="accept" label="Search">

<go href="table.asp?srch=$varsearch"/></do>

 

≥люструЇ ≥нший вар≥ант перепризначенн¤ стандартного меню телефону й спос≥б передач≥ зм≥нних у сервер-ор≥Їнтован≥ скрипти. «наченн¤ параметра type показуЇ, ¤ка саме клав≥ша буде перевизначена (у даному випадку кнопка, що в≥дпов≥даЇ OK).† ѕреф≥кс $ перед ≥м'¤м зм≥нноњ говорить про те, що буде використане значенн¤ зм≥нноњ, а не саме слово "varsearch".

 

1.4 ¬икористанн¤ граф≥ки в WML.

¬ даний час† WML п≥дтримуЇ граф≥чний формат, ¤кий називаЇтьс¤ WBMP (Wireless BMP type 0) −монохромн≥ (двокол≥рн≥) зображенн¤. ‘ормат WBMP type 0 маЇ наступн≥ характеристики :

No compression

One bit color (white=1, black=0)

One bit color deep (monochrome)

ƒл¤ вставки в WML картинки призначений тег <img/>, в ¤кому, ¤к ≥ в HTML, дл¤ посиланн¤ на джерело картинки використовуЇтьс¤ атрибут src. “иповий вигл¤д тега <img>:

 

<img alt=† src="url"† localsrc="icon"

† align=† height=† width=† vspace=† hspace= />.

 

ѕризначенн¤ атрибут≥в здеб≥льшого очевидно. ѕо¤сненн¤ вимагаЇ лише localsrc, в≥н дозвол¤Ї, зам≥сть src, вказати в ¤кост≥ джерела внутр≥шню п≥ктограму браузера. јтрибут align задаЇ вир≥внюванн¤ картинки ≥ може приймати наступн≥ значенн¤: top, bottommiddle.

ѕриклад використанн¤ граф≥чних зображень у ¤кост≥ г≥перпосилань.

 

<anchor title="Home">

†<img alt="Home" src="url" localsrc="house" />Home

†<go href="default.wml"/>

</anchor><br/>

 

ƒл¤ конвертац≥њ у формат WBMP найкраще вибирати маленьк≥ контрастн≥ зображенн¤.

ћаксимальний розм≥р малюнку в байтах залежить в≥д пристрою (телефону), але в≥н не повинен перевищувати обмежень на розм≥р карти (близько 1,4k). ¬≥дпов≥дно, граничний розм≥р у п≥ксел¤х дл¤, скажемо, Nokia 7110 складаЇ близько 96 x 65 (width, height), хоча ф≥зичний екран (без скрол≥нга) ще менший ≥ маЇ розм≥р 96 x 44 (4 р¤дка по 11 п≥ксел≥в), так д뤆 Ericsson R320 ¾ 101x52 (р¤док у 13 п≥ксел≥в). Ќеобх≥дно враховувати, що п≥ксел≥ окремих пристроњв не завжди квадратн≥.

Ќаведемо де¤к≥ засоби дл¤ роботи з WBMP зображенн¤ми:

Ј      Ќевеликий плаг≥н УUnWired plug-inФ ф≥рми RCP Distributed Systems. ƒозвол¤Ї збер≥гати у вид≥ WBMP малюнки з Photoshop 5.x чи Paintshop Pro на платформ≥ Windows (у команд≥ меню Save As з'¤витьс¤ пункт "UnWired.wbmp").

Ј      Wapaint.dll (в≥д Wapaint.com) − Active Server module, призначений дл¤ роботи в ASP-скриптами на сервер≥ ≥ зручний дл¤ генерац≥њ динам≥чних малюнк≥в (типу статистичних д≥аграм ≥ ≥н.).

Ј      –едактора зображень з NokiaSDK.

ѕриклад† виклику динам≥чних зображень через ASP ≥ Wapaint.dll

 

<wml>

<card id="home" title="example">

REM GRAPH.asp is the image to construct

 

<p align="center">example<br/>

<img src="GRAPH.asp" alt="problem"/><br/></p>

 

<do type="prev" label="prev"> <prev/> </do>

</card>

</wml>

 

якщо ви використовуЇте ≥м≥татор, необх≥дно ретельно протестувати стор≥нки на реальному телефон≥, тому що багато ≥м≥татор≥в погано п≥дтримують граф≥чн≥ файли. Ѕажано перев≥рити усе в реальних умовах − це Їдиний спос≥б застрахуватис¤ в≥д неприЇмностей.

 

1.5 WMLScript.

ћова† WMLScript вносить процедурну лог≥ку в користувацьк≥ WML-стор≥нки. ÷¤ мова базуЇтьс¤ на специф≥кац≥њ ECMAScript, котра в свою чергу, Ї стандартом мови JavaScript. ћова WMLScript модиф≥кована таким чином, щоб забезпечити п≥дтримку низькоњ швидкост≥ передач≥ даних та УтонкиФ кл≥Їнт≥в. ¬икористанн¤ скриптовоњ мови та включенн¤ ≥њ в специф≥кац≥ю дозвол¤ють в≥дмовитис¤ в≥д реал≥зац≥њ багатьох функц≥њ на сервер≥ ≥, в≥дпов≥дно скоротити к≥льк≥сть звернень до сервера. ѕерерахуЇмо основн≥ сфери застосуванн¤ мови WMLScript в склад≥ WML-стор≥нок:

1.   перев≥рка введених користувачем даних;

2.   доступ до функц≥ональност≥ пристрою Ц забезпеченн¤ програмного виконанн¤ таких функц≥й, ¤к наб≥р номера, в≥дправка пов≥домленн¤, доданн¤ номера в телефону книгу тощо;

3.   локальна генерац≥¤ пов≥домлень та д≥алогових панелей;

4.   розширенн¤ функц≥ональност≥ програмного забезпеченн¤ пристрою та його параметр≥в;

ћова WMLScript п≥дтримуЇ основн≥ типи даних (Boolean, Integer, Floating-point, String, Invalid), стандартн≥ оголошенн¤ зм≥нних (ключове слово var), функц≥њ (ключове слово function) та ≥нш≥ загальн≥ структури типу вираз≥в if-then-else, цикл≥в for/while та вираз≥в break ≥ continue. —еред ≥нших характеристик мови в≥дм≥тимо можлив≥сть використанн¤† в≥дкомпельованих всередин≥ модул≥в (через прагму use url), контроль доступу (через прагму access), а також наб≥р стандартних б≥бл≥отек, описаних в специф≥кац≥њ мови. ƒо цих б≥бл≥отек в≥днос¤тьс¤ б≥бл≥отеки Lang, Float, String, WMLBrowser та Dialogs (див. "—тандартн≥ б≥бл≥отеки WMLScript"). —пециф≥кац≥¤ мови також визначаЇ ≥нтерпретатор байт коду, оск≥льки код на WMLScript комп≥люЇтьс¤ в б≥нарну форму (WAP-шлюзом) перед в≥дправкою до кл≥Їнта.

 

1.5.1 —тандартн≥ б≥бл≥отеки WMLScript.

—пециф≥кац≥¤ мови WMLScript описуЇ ш≥сть стандартних б≥бл≥отек, функц≥њ котрих можуть бути використан≥ дл¤ вир≥шенн¤ р≥зноман≥тних задач, ¤к≥ часто зустр≥чаютьс¤.

Ѕ≥бл≥отека Lang Ц м≥стить наб≥р функц≥й, т≥сно повТ¤заних з ¤дром мови WMLScript. ¬ склад б≥бл≥отеки вход¤ть функц≥њ дл¤ ман≥пул¤ц≥њ типами даних, обчисленн¤ абсолютних значень та генерац≥њ випадкових чисел.

Ѕ≥бл≥отека Float Ц Ї опц≥ональною ≥ використовуЇтьс¤ т≥льки кл≥Їнтами, ¤к≥ мають розширенн¤ дл¤ п≥дтримки операц≥й з плаваючою точкою. —еред функц≥й включених в цю б≥бл≥отеку, в≥дм≥тимо функц≥њ† sqrt(), round() ≥ pow().

Ѕ≥бл≥отека String Ц м≥стить наб≥р функц≥й дл¤ виконанн¤ операц≥й з стр≥чками. ƒо таких в≥днос¤тьс¤: length(), charAt(), find(), replace() ≥ trim().

Ѕ≥бл≥отека URL Ц м≥стить функц≥њ дл¤ обробки абсолютних ≥ в≥дносних адрес. —еред функц≥й включених в цю б≥бл≥отеку сл≥д в≥дм≥тити getPath(), getRefer() ≥ getHost().

Ѕ≥бл≥отека WMLBrowser Ц м≥стить функц≥њ дл¤ реал≥зац≥њ користувацького ≥нтерфейсу. —еред функц≥й, включених в цю б≥бл≥отеку в≥дм≥тимо функц≥њ go(), prev(), next(), getCurrentCard() ≥ refresh().

Ѕ≥бл≥отека Dialogs Ц м≥стить функц≥њ дл¤ реал≥зац≥њ користувацького ≥нтерфейсу. ƒо них в≥днос¤тьс¤ функц≥њ† prompt(), confirm() ≥ alert().

 

1.6 ѕоради по розробц≥ WML додатк≥в

WAP пристроњ обмежен≥ в своњх можливост¤х через невеликий обТЇм пам'¤т≥, маленьку швидк≥сть процесора, невелику швидк≥сть передач≥ даних т.д., однак дещо все-таки можна робити, знаючи про ц≥ обмеженн¤. ј технолог≥њ удосконалюютьс¤, ≥ з'¤вл¤ютьс¤ нов≥ пол≥пшен≥ р≥шенн¤.

Ј      ƒодатки необх≥дно проектувати, виход¤чи з принципу Уколоди картФ. “ому що вона завантажуЇтьс¤ вс¤ в≥дразу, що зменшуЇ обм≥н даними ≥з сервером. Ѕудь-¤кий запит на ≥ншу колоду ≥н≥ц≥юЇ нове з'Їднанн¤ з сервером, що у свою чергу потребуЇ додаткового часу так побудована WAP-технолог≥¤.

Ј      „ерез малий розм≥р екрана особливу увагу потр≥бно прид≥лити читабельност≥ тексту. –озм≥р "стор≥нки" краще обмежити 4- 5-ма екранами.

Ј      ƒл¤ зручноњ нав≥гац≥њ ≥ швидкого керуванн¤ доц≥льн≥ше використовувати теги select/option (виб≥р ≥з списку), н≥ж ¤к≥сь ≥нш≥.

Ј      „ерез маленький об'Їм пам'¤т≥ бажано уникати використанн¤ великоњ к≥лькост≥ граф≥чних зображень, л≥пше всього взагал≥ не використовувати њх.

Ј      Ќе потр≥бно в≥дкидати атрибут† alt дл¤ зображень (альтернативний текст дл¤ випадк≥в, коли браузер не п≥дтримуЇ граф≥чних зображень) ¤кщо серед Internet-браузер≥в в≥дсутн≥сть такоњ п≥дтримки Ї архањзмом, то в WAP це розповсюджене ¤вище.

Ј      WAP стандарти не ф≥ксують стандарт≥в по нав≥гац≥њ, типу back, forwardhome, ¤к це прийн¤то в Internet-браузерах. ѕроробленн¤ цих питань залишаЇтьс¤ на розсуд дизайнера.

Ќа даний час у пошуков≥й систем≥ Pinpoint.com, ¤ка призначена дл¤ ≥ндексуванн¤ сайт≥в з використанн¤м WML, уже б≥льш 1,5 м≥льйон≥в wap-стор≥нок.

 

1.7 WML-редактори.

Ќа сьогодн≥шн≥й день в ≤нтернет≥ можна знайти велику к≥льк≥сть р≥зноман≥тних редактор≥в WML-стор≥нок. ¬ даному розд≥лу ми розгл¤немо де¤к≥ з цих редактор≥в.

SantanaBuilder for WAP 1.0

ƒовол≥ непоганий WYSIWYG-редактор дл¤ створенн¤ WAP-сайт≥в (), розроблений компан≥Їю† Inetis Ltd. (http://inetis.com/). ƒозвол¤Ї працювати з наступними елементами:

Ј      посиланн¤;

Ј      форми;

Ј      граф≥чн≥ зображенн¤;

Ј      бази даних;

Ј      скр≥пти;

Ј      таймери;

Ј      под≥њ.

ћал. 1.1 –едактор WML-стор≥нок SantanaBuilder for WAP 1.0.

ƒо переваг цього редактора можна в≥днести наступн≥ його можливост≥:

Ј      автоматична конвертац≥¤ граф≥чних зображень з формат≥в gif, bmp, jpeg, ico в WBMP;

Ј      SQL query builder;

Ј      автоматична публ≥кац≥¤ WAP-сайта (по FTP); можлив≥сть попереднього перегл¤ду сайта.

WAPPage 2.1

ѕотужний редактор, розроблений компан≥Їю Zyglobe Inc. (http://www.zyglobe.com/). WAPPage представл¤Ї собою ц≥ле середовище розробки WAP-сайт≥в (). ¬≥н дозвол¤Ї редагувати, комп≥лювати та ≥нтегрувати WML-стор≥нки.

ѕрацюючи в цьому середовищ≥, користувач може створювати стор≥нки в режим≥ WYSIWYG або вручну, зм≥нюючи згенерований системою WML-код.  р≥м цього, WAPPage надаЇ можлив≥сть перегл¤ду XML-дерева дл¤ створюваних карт та колод. “акож Ї можлив≥сть редагувати та публ≥кувати† ASP- ≥ JSP- стор≥нки в межах WAP-сайта. ¬ пакет поставки також входить емул¤тор дл¤ перегл¤ду й тестуванн¤ сайт≥в.

ћал. 1.2 –едактор WML-стор≥нок WAPPage 2.1.

 

WAPtor

WAPtorЦ довол≥ простий† WML-редактор дл¤ Windows, розроблений ф≥рмою† WAPtop (http://www.waptop.cz/, англомовний ресурс − http://www.waptop.net/). ћ≥стить вбудоване в≥кно попереднього перегл¤ду, п≥дсв≥тку синтаксису WML, передбачаЇ роботу з шаблонами. ƒозвол¤Ї в ≥нтерактивному режим≥ форматувати текст та вставл¤ти граф≥чн≥ зображенн¤.  р≥м усього цього Ї передн≥й перегл¤д, але дуже дов≥р¤ти йому не потр≥бно, оск≥льки насправд≥ виконуЇтьс¤ рендер≥нг HTML, конвертованого з WML-карти, ≥ б≥льш≥сть помилок просто не в≥дображаЇтьс¤.

ћал. 1.3 –едактор WML-стор≥нок WAPtor.

 

 

1.8 ѕор≥вн¤нн¤ HTML та WML.

Ќав≥що був придуманий WAP, ¤кщо Ї готовий ≤нтернет-протокол HTTP? Ќа жаль, сучасному р≥вню рад≥опослуг властива безл≥ч недол≥к≥в − дан≥ передаютьс¤ пов≥льно ≥ з великими паузами (нав≥ть текст HTML-стор≥нки буде завантажуватис¤ довго, не говор¤чи вже про граф≥ку чи роботу в захищеному режим≥), а сам телефон (трубка) волод≥Ї скромними обчислювальними ресурсами й обмеженою здатн≥стю до представленн¤ ≥нформац≥њ в м≥кробраузер≥ (наприклад, мон≥тор може складатис¤ усього з трьох текстових р¤дк≥в) ≥ до введенн¤ ц≥Їњ ≥нформац≥њ (наб≥р короткого слова може потребувати дек≥лькох хвилин).

WAP зн≥маЇ б≥льш≥сть цих проблем, додаючи, ут≥м, своњ. ÷ей протокол використовуЇ компактний дв≥йковий формат дл¤ передач≥ даних, ≥нтерпретований вбудованим у трубку ч≥пом, але вимагаЇ, щоб запитуваний ≤нтернет-ресурс був ц≥лком сформований† мовою WML (W≥reless Markup Language), створеною на основ≥ мови XML. ƒана мова трохи нагадуЇ HTML ≥ ор≥Їнтована на оптимальне представленн¤ контента на р≥зноман≥тних текстових ≥ граф≥чних м≥кромон≥торах, тому п≥дтримка малюнк≥в у н≥й м≥н≥мальна (т≥льки монохромн≥ зображенн¤). ≤снуЇ безл≥ч розходжень в ≥нтерпретац≥њ дв≥йкового WAP-коду телефонами р≥зних виробник≥в, тому нав≥ть маючи дв≥ однаков≥ модел≥ телефон≥в ≥з р≥зними програмними прошивками, можна одержати р≥зн≥ результати представленн¤ WML-контента на екран≥. ∆оден† телефон поки не п≥дтримуЇ вс≥ теги WML, а перев≥р¤ти спос≥б представленн¤ на вс≥х модел¤х телефон≥в ≥ п≥д ус≥ прошивки практично нереально. ” цьому план≥ розробка WML-контента сильно в≥др≥зн¤Їтьс¤ в≥д п≥дготовки HTML-контента, б≥льш-менш однаково в≥дображуваного дек≥лькома попул¤рними браузерами.

WAP-протокол був запропонований WAP ‘орумом, заснованим компан≥¤ми Motorola, Er≥csson, Nok≥a ≥ Phone.com. …ого перша верс≥¤ WAP 1.0 мала визначен≥ недол≥ки, ≥ в червн≥ 1999 р. ‘орум випустив стандарт WAP 1.1 (несум≥сний з колишн≥м) −† ¤к оф≥ц≥йно пов≥домл¤лос¤, з метою наблизити його до специф≥кац≥њ мови розм≥тки XHTML, запропонованого консорц≥умом W3C, а за неоф≥ц≥йною ≥нформац≥Їю − п≥д тиском Nok≥a, ¤ка намагалас¤ випередити конкурент≥в. ≤ д≥йсно, де¤к≥ модел≥ трубок S≥emens, що п≥дтримують верс≥ю WAP 1.0, не можуть працювати з WAP 1.1. WAP-протокол.

 

Hosted by uCoz