WML

advertisement
Интернет без проводов
Структура WML
• Поскольку любая WML-страница по определению
является XML – документом, необходимо использовать
спецификатор XML:
<?xml version =“1.0”?>
Затем объявляем корневой элемент документа:
<!DOCTYPE wml PUBLIC “-//WAPFORUM//DTD WML
1.1//EN” “http://www.wapforum.org/DTD/wml_1.1.xml”>
<wml>
Текст страницы
</wml>
•
Основным элементом любой WML-страницы является элемент с
наименованием wml.
<!ELEMENT wml (head?, temlate?, card+)>
<!ATTLIST wml
xml:lang NMTOKEN #IMPLIED
%coreattrs;
>
Элементы head и template могут вообще не использоваться, а
элементов card может быть несколько. В качестве атрибутов
элемента wml используется xml:lang, указывающий на
применяемый язык, и набор атрибутов, объявленный как
параметрическая сущность с наименованием coreattrs. Эта
сущность определяется так:
<!ENTITY % coreattrs “id ID #IMPLIED class CDATA #IMPLIED” >
Элемент head является необязательным неотображаемым
заголовком страницы – деки. Определяетя он следующим образом:
<!ELEMENT head (access | meta)+>
<!ATTLIST head
%coreattrs; >
Заголовок состоит из нескольких элементов типа access и meta, один
из которых должен присутствовать в содержимом элемента head.
Дочерние субэлементы access и meta, определяются так:
<!ELEMENT access EMPTY>
<!ATTLIST access
domain CDATA #IMPLIED
path
CDATA #IMPLIED
%coreattrs;
>
<!ELEMENT meta EMPTY>
<!ATTLIST meta
http-equiv CDATA #IMPLIED
name
CDATA #IMPLIED
forua
CDATA #IMPLIED
content
CDATA #IMPLIED
scheme
CDATA #IMPLIED
%coreattrs;
>
Элемент access в своих атрибутах domain и path содержит
основное доменное имя и путь к данной страничке. А
элемент meta позволяет устанавливать значения заголовков
протокола.
Элемент head может применяться только к деке. Отдельные
странички не могут иметь его в своем составе.
Эти странички являются экземплярами элемента card:
<!ELEMENT card (onevent*, timer?, (do | p)*)>
<!ATTLIST card
title
%vdata; #IMPLIED
newscontext
%boolean; “false”
ordered
%boolean; “true”
xml:lang
NMTOKEN #IMPLIED
%cardev
%coreattrs;
>
Страница может содержать либо некую отображаемую
информацию, либо выполняемые инструкции для браузера.
Отображаемая информация формируется при помощи.
Выполняемые действия
• Каждая страничка может содержать описание набора
действий, которые браузер должен выполнить при
наступлении заранее оговоренного события.
• Элемент onevent содержит описание действий при
наступлении некотых событий.
<!ELEMENT onevent (%task)>
<!ATTLIST onevent
type CDATA #REQUIRED
%coreattrs; >
Параметр task указывает на один из предопределенных
видов существующих задач-действий.
Атрибут type обязателен и с помощью него мы назначаем
событие, при наступление которого должна выполняться
установленная задача. Задания могут бы определены
следующим образом:
<!ENTITY % task “go|prev | n oop | refresh”>
• Элемент go применяется для принудителного перехода по
не некоему URL.
<!ELEMENT go (postfield | setvar)*>
<!ATTLIST go
href
%HREF; #REQUIRED
sendreferer
%boolean; “false”
method
(post | get) “get”
accept-charset CDATA
#IMPLIED
%coreatters
>
postfield – одно или несколько полей ввода
setvar – система переменных
method – выбирает один из двух механизмов выбора
данных.
• Переход на следующую страницу осуществляется при
помощи элемента prev:
<!ELEMENT prev (setvar)>
<!ATTLIST prev
%coreattrs; >
Элемент noop является просто зарезервированной
«заглушкой». Ни каких действий он не производит, но
определение его необходимо:
<!ELEMENT noop EMPTY>
<!ATTLIST noop
%coreattrs; >
Оформление текста
• Текст, помещаемый на страницу должен быть оформлен.
Текст разбивается на абзацы с помощью элемента р:
<!ELEMENT p (%fields; | do)*>
<!ATTLIST p
align
%TAlign;
“left”
mode
%WrapMode; #IMPLIED
xml:lang NMTOKEN
#IMPLIED
%coreattrs; >
Элемент fields определяется следующим образом:
<!ENTITY %fields “%flow; | input | select | fieldset”>
Все отображаемые неуправляемые элементы
обозначаются сущностью flow:
<!ENTITY %flow “text; | %layout; | img| anchor | a | table”>
Определение текста выглядит следующим образом:
<!ENTITY %text “PCDATA | %emph;”>
То есть может быть либо просто текст либо
отформатированные строки:
<!ENTITY %emph “strong | b | i | u | big | small”>
Определение элемента i создающего курсивный текст:
<!ELEMENT i (%flow;)*>
<!ATTLIST i
xml:lang NMTOKEN
%coreattrs; >
#IMPLIED
Таблицы
• Таблица определяется элементом table и выглядит, так:
<!ELEMENT table (tr)+>
<!ATTLIST table
title
%vdata
#IMPLIED
align
CDATA
#IMPLIED
columns %number #REQUIRED
xml:lang NMTOKEN
#IMPLIED
%coreattrs; >
tr – таблица обязана иметь хотя бы одну строку;
columns – количество столбцов в таблице;
title – заголовок таблицы.
• Определение элементов-строки tr:
<!ELEMENT tr (td)+>
<!ATTLIST tr
%coreattrs;
>
А сами ячейки определяются так:
<!ELEMENT td (%text; |%layout; | img | anchor | a)*>
<!ATTLIST td
xml:lang NMTOKEN
%coreattrs; >
#IMPLIED
Графики и гиперссылки
• Гиперссылки в WML-страницах задаются при помощи
элемента с наименованием а:
<!ELEMENT a (#POCDATA | br | img)*>
<!ATTLIST a
href
%HREF
#REQUIRED
title
%vdata
#IMPLIED
xml:lang NMTOKEN
#IMPLIED
%coreattrs;
>
href - URL по которому будет произведен переход;
title – содержит текст подсказки.
Закладки осуществляются при помощи элемента anchor,
определяются они так:
<!ELEMENT anchor ( #PCDATA | br | img | go | pref )*>
<!ATTLIST anchor
title
%vdata
#IMPLIED
xml:lang NMTOKEN
#IMPLIED
%coreattrs; >
Органы ввода данных
• В wml органы ввода данных объединяются не в формы, а
в наборы.
Набор органов ввода данных удаленным пользователем
является элементом с наименованием fieldset:
<!ELEMENT fieldset ( #fields | do )*>
<!ATTLIST fieldset
title
%vdata
#IMPLIED
xml:lang NMTOKEN
#IMPLIED
%coreattrs;
>
Fields – параметрическая сущность определяющая набор
отдельных полей ввода.
<!ENTITY % fields “%flow; | input | select | fieldset”>
• Элемент input предназначен для создания текстовых
полей. Его определение имеет вид:
<!ELEMENT input EMPTY>
<!ATTLIST input
name NMTOKEN
#REQUIRED
type
(text|password) “text”
value
%vdata;
#IMPLIED
title
%vdata
#IMPLIED
(….)
xml:lang NMTOKEN
#IMPLIED
%coreattrs;
>
name - обязательный атрибут и указывает уникальное
имя создаваемого поля ввода.
•
Элемент select позволяет создавать списки альтернатив.
Определяется следующим образом:
<!ELEMENT select (optgroup|option)+>
<!ATTLIST select
name NMTOKEN
#REQUIRED
type
(text|password) “text”
value
%vdata;
#IMPLIED
multiple %boolean;
“false”
(….)
xml:lang NMTOKEN
#IMPLIED
%coreattrs;
>
multiple – указывает тип переключателей(зависимые или
независимые).
Download