WAP - ไวยากรณ์ WML
เลเยอร์บนสุดในสถาปัตยกรรม WAP ประกอบด้วย WAE (Wireless Application Environment) ซึ่งประกอบด้วยภาษาสคริปต์ WML และ WML
ภาษาสคริปต์ WML ใช้ในการออกแบบแอปพลิเคชันที่ส่งผ่านอุปกรณ์ไร้สายเช่นโทรศัพท์มือถือ ภาษานี้ดูแลหน้าจอขนาดเล็กและแบนด์วิธในการรับส่งข้อมูลต่ำ WML เป็นแอปพลิเคชันของ XML ซึ่งกำหนดไว้ในข้อกำหนดประเภทเอกสาร
เพจ WML เรียกว่าเด็ค การ์ดเหล่านี้สร้างขึ้นเป็นชุดของการ์ดซึ่งเกี่ยวข้องกันด้วยลิงก์ เมื่อเข้าถึงเพจ WML จากโทรศัพท์มือถือการ์ดทั้งหมดในเพจจะถูกดาวน์โหลดจากเซิร์ฟเวอร์ WAP ไปยังโทรศัพท์มือถือที่แสดงเนื้อหา
คำสั่งและไวยากรณ์ WML ใช้เพื่อแสดงเนื้อหาและเพื่อนำทางระหว่างการ์ด นักพัฒนาสามารถใช้คำสั่งเหล่านี้เพื่อประกาศตัวแปรจัดรูปแบบข้อความและแสดงรูปภาพบนโทรศัพท์มือถือ
โครงสร้างโปรแกรม WAP
โดยทั่วไปโปรแกรม WML จะแบ่งออกเป็นสองส่วน - ส่วน document prolog และ body. พิจารณารหัสต่อไปนี้ -
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN"
"http://www.wapforum.org/DTD/wml12.dtd">
<wml>
<card>
...
</card>
...more cards...
</wml>
บรรทัดแรกของข้อความนี้ระบุว่านี่คือเอกสาร XML และเวอร์ชันคือ 1.0 บรรทัดที่สองเลือกประเภทเอกสารและระบุ URL ของไฟล์document type definition (DTD) DTD นี้ให้คำจำกัดความ XML แบบเต็มของ WML DTD ที่อ้างถึงถูกกำหนดไว้ใน WAP 1.1 แต่ส่วนหัวนี้เปลี่ยนไปตามเวอร์ชันของ WML ต้องคัดลอกส่วนหัวทุกประการเพื่อให้ชุดเครื่องมือสร้าง prolog นี้โดยอัตโนมัติ
เนื้อหาอยู่ในคู่แท็ก <wml> ... </wml> ดังที่แสดงด้านบน เนื้อหาของเอกสาร WML สามารถประกอบด้วยอย่างน้อยหนึ่งอย่างต่อไปนี้ -
Deck
Card
เนื้อหาที่จะแสดง
คำแนะนำการนำทาง
คำสั่ง WML
คำสั่งที่ใช้ใน WML สรุปได้ดังนี้ -
การจัดรูปแบบ
| คำสั่ง | คำอธิบาย |
|---|---|
| <p> | ย่อหน้า |
| เ <b> | ตัวหนา |
| <big> | ใหญ่ |
| เ <em> | เน้น |
| <I> | ตัวเอียง |
| <small> | เล็ก |
| <strong> | เน้นย้ำอย่างยิ่ง |
| <u> | ขีดเส้นใต้ |
| <br> | เส้นแบ่ง |
การแทรกรูปภาพ
<img src="image-path/image - name" alt="Picture not available" />
การใช้ตาราง
| คำสั่ง | คำอธิบาย |
|---|---|
| <table> | ความหมายของตาราง |
| <tr> | การกำหนดแถว |
| <td> | การกำหนดคอลัมน์ |
| <Thead> | ส่วนหัวของตาราง |
ตัวแปร
ประกาศเป็น -
<setvar name="x" value="xyz"/>
ใช้เป็น -
$ identifier or
$ (identifier) or
$ (Identifier; conversion)
แบบฟอร์ม
| คำสั่ง | คำอธิบาย |
|---|---|
| <select> | กำหนดรายการเดียวหรือหลายรายการ |
| <input> | ข้อมูลจากผู้ใช้ |
| <option> | กำหนดตัวเลือกในรายการที่เลือกได้ |
| <fieldset> | กำหนดชุดของช่องป้อนข้อมูล |
| <optgroup> | กำหนดกลุ่มตัวเลือกในรายการที่เลือกได้ |
องค์ประกอบของงาน
| คำสั่ง | คำอธิบาย |
|---|---|
| <go> | แสดงถึงการเปลี่ยนไปใช้การ์ดใหม่ |
| <noop> | บอกว่าไม่มีอะไรควรทำ |
| <prev> | แสดงถึงการย้อนกลับไปยังการ์ดก่อนหน้า |
| <รีเฟรช> | รีเฟรชตัวแปรการ์ดที่ระบุ |
เหตุการณ์
เหตุการณ์ต่างๆมีดังนี้ -
| คำสั่ง | คำอธิบาย |
|---|---|
| <do> | กำหนด do event handler |
| <onevent> | กำหนดตัวจัดการเหตุการณ์ onevent |
| <postfield> | กำหนดตัวจัดการเหตุการณ์หลังสนาม |
| <ontimer> | กำหนดตัวจัดการเหตุการณ์ ontimer |
| <onenterforward> | กำหนดตัวจัดการ onenterforward |
| <onenterbackward> | กำหนดตัวจัดการแบบถอยหลัง |
| <onpick> | กำหนดตัวจัดการเหตุการณ์ onpick |
ตัวอย่างโปรแกรม WML
เก็บรหัส WML ต่อไปนี้ไว้ใน info.wml บนเซิร์ฟเวอร์ของคุณ หากเซิร์ฟเวอร์ของคุณเปิดใช้งาน WAP คุณสามารถเข้าถึงหน้านี้โดยใช้อุปกรณ์ WAP ใดก็ได้
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN"
"http://www.wapforum.org/DTD/wml12.dtd">
<!-- WML prolog.declaration of file type and version>
<wml>
<!-- Declaration of the WML deck>
<card id="info" newcontext="true">
<!-- declaration of a card in deck>
<p align="center"><b>Information Center</b></p>
<!--paragraph declaration to display heading>
<p>
<!--paragraph declaration to display links>
<a href="Movie.wml">1. Movies info.</a>
<a href="Weather.wml">2. Weather Info.</a>
<!--declaration of links for weather and movies>
</p>
</card>
<!-- card end>
</wml>
<!-- program end>