(一)XHTML MP 介绍
XHTML MP(eXtensible HyperText Markup Language Mobile Profile)
WAP2.0与WCSS(WAP CSS /WAP Cascading Style Sheet)配套使用,是XHTML的子集。
XHTML Basic (XHTML子集)+另外的一些XHTML的元素和属性
WAP浏览器与互联网之间以前WAP网站(WML and WMLScript )更多的展示表现(presentation control )
XHTML MP 优势:开发的站点可以在WEB和无线上都可以使用,也可以用任何Web浏览器访问WAP2.0应用
向后兼容:XHTML MP / WCSS 和 WML / WMLScript 
(二)无线标记语言发展
HTML:WAP发展的首要任务——移动电话,PDA等访问互联网。WAP standard (WML and XHTML Mobile Profile) 类似HTML
WML(Wireless Markup Language) 1.x:WAP 1.x 规范中规定的标记语言,无线设备的第一个标记语言。Openwave、Nokia 和 Ericsson 很早都有自己的标记语言。WML规范是WAP Forum(97)创建的。而现在,很多的WAP站点依然使用的是WML。
XHTML:结构比HTML更简洁和严格。这对于无线设备(例:移动电话)很重要,对于有限的处理能力。
XHTML Basic :是XHTML的一个简化版本。为处理能力和性能有限的设备设计的(移动电话,PDA,呼机等)
但是不包含XHTML特性。例如CSS,frames和Scripting。是由W3C定义的。
XHTML MP: 在WAP2.0说明中指定的官方标记语言。WAP Forum 基于 XHTML Basic创造,并从XHTML的完整版本中增加了一些元素和属性。例如<i>,<b>,<small>,<big>和<hr>。XHTML MP支持一个简单的CSS版本,即WCSS/WAP CSS。
WCSS/WAP CSS: CSS2的一个简化版本,增加了WAP特有的扩展。可以很简单的改变XHTML MP页面的布局和风格。
WML2.0: WAP站点开发者不需要顾虑WML2.0。WML2.0向后兼容,并且对于WAP站点开发者还不可用。

(三)XHTML MP的优点
最大优点:开发者可用相同的技术开发适用于WEB和WAP的站点。
有HTML、XHTML、CSS基础即可入门。
同样的开发工具可以用来开发WEB和WAP站点。
开发过程中一般的WEB浏览器可以浏览你的WAP站点。
HTML/XHTML页面可以通过较小的修改成XHTML MP,甚至不用修改(注意:布局是否适应小屏幕,文件大小是否出最大)。
支持WCSS。移动设备有很多不同的特征,比如屏幕大小,只需写一次结构,使用不同的WCSS文件即可。
更多的表现控制。

(四) 不支持的WML 特性
1、XHTML MP 不支持<deck>和<card>标签。
       在XML中,一个文件可以包含一个或更多的card,所有的card组合成一个deck,并在无线设备中一同被下载。WAP浏览器每次只显示一个card,可以通过锚链接访问其他的card。通过这些,减少了服务器的往返的访问。对性能的提高是有意义的。在XHTML MP中要实现类似的特性,可以使用multipart messages(多个文档放到一个请求)另外一个方式是使用目标锚(一个页面的不同位置)。 
2、XHTML MP 不支持<timer>标签
       <head> &nbsp;&nbsp;<meta http-equiv="refresh" content="10;URL=http://www.planabc.net/" /> </head>
       <meta>元素10秒后告诉WAP浏览器URL。
       注意点:WML timer 仅当进入card,而HTML refresh timer当进入XHTML MP页面。
3、 XHTML MP 不支持事件。
       WML支持四个事件(ontimer,onenterbackward,onenterforward,onpick),除ontimer其他事件无法模拟。如要使用,需使用WML1.X。
4、  XHTML MP 不支持变量。
       在XML,可以声明变量,并赋值,拥有全局作用域。可以在任何的deck和card中使用。XHML MP放在服务器端处理(必须发送并保存)。
5、  XHTML MP 不支持客户端脚本。
         在XML,你可以使用客户端脚本(WMLScript)。JavaScript的简化版,常用来验证数据。放在服务器短处理。将来的版本将会支持客户端脚本(ECMAScript MP),支持所有的WMLScript功能。
6、 XHTML MP 不支持可编程序软键(Programmable SoftKeys)。
       WML的一个最大特征。通过<do>标签使用。在XHML MP中可以使用 accesskey 属性。锚链接和提交按钮支持这个属性:
       <a accesskey="1" href="part1.xhtml">XHTML MP Tutorial Part 1</a
            WCSS中的-wap-accesskey属性也可以用来定义:a.wcss_class_1 {-wap-accesskey: 1}
7、XHTML MP 不支持<u>标签。
       在XML,<u>用来在一些文字下添加下划线。可以用WCSS中的text-decoration属性。
8、XHTML MP 不支持Input框的format属性。
         在XML,可以定义类型和字数限制。可以使用WCSS中的-wap-input-format属性,语法一致。比如限制5个数字字符:input {-wap-input-format:”5N”}
9、 XHTML MP 不支持锚链接传输数据。
       <p> &nbsp;&nbsp;姓名:&nbsp;&nbsp;<input name=“name”/><br/> &nbsp;<anchor> <go method=“get” href=“yuanxin.php”><postfield name=“name” value=“$(name)”/></go> &nbsp;提交&nbsp;&nbsp;</anchor> </p> 
       <form action=“yuanxin.php” method=“get”> &nbsp;       <p>姓名:&nbsp;&nbsp;&nbsp;&nbsp;<input name=“name”/><br/><input type=“submit” value=“提交"/></p> </form>
(五) 语法规则
标签必须完全闭合。
标签和属性必须小写。
属性值必须包含在引号标记内。
不允许无属性值存在。
标签必须完全嵌套。
(六)MIME 类型和文件扩展名
MIME类型: application/vnd.wap.xhtml+xml、application/xhtml+xml 、text/html。
动态生成MIME类型。获得HTTP请求中的accept header信息。
文件扩展名:.xhtml、.html、.htm

(七)文档结构
必须包含<html>, <head>, <title>和<body> 元素。

<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
       <title>Hello world</title>
</head>
<body>
       <p>Hello world. Welcome to taobao.com.</p>
</body>
</html>

XML声明和字符编码:<?xml version="1.0" encoding="UTF-8"?>
       UTF-8/16编码可省略。XML声明也不是必须的,但如果忽略在许多WAP浏览器中出错。
必须有DOCTYPE声明。在XML声明和<html>元素之间。
<html>、<head>、<link>、<title>、<body>
<p>元素,align属性已经去除,可以通过WAP CSS的text-align属性来设置。
(八)通用的元数据
使用<meta/>标签,包含在<head>内
WAP浏览器如果不理解则忽略。
比如添加作者:<meta name="author" content=“yuanxin"/> 
Cache Control:<meta/>标签的一个应用是控制XHTML MP文件在Cache中的存在周期:
       <meta http-equiv="Cache-Control" content="no-cache"/> 
       <meta http-equiv="Cache-Control" content="max-age=0"/>
        注意点:与设备相关。一些使用不相的方法,一些没有Cache机制。还有一些不支持<meta/>但识别Cache-Control:no-cache的HTTP头。也可应用于图片的缓存。
周期性刷新。必须配合使用。不是所有浏览器都支持。
       <meta http-equiv="Cache-Control" content="no-cache"/> 
       <meta http-equiv="refresh" content="15;URL=yuanxin.xhtml"/> 
(九)常用标签介绍
注释:<!-- -- >,和HTML和WML1.X相同。
换行:<br/> ,和HTML和WML1.X相同。
水平线:<hr/>。不能包含在<p></p>标签之内。
标题:<h1>-<h6>(不同的大小和样式),有些设备看起来一样的。
字体样式:XML可以使用标签来改变字体样式( <b>、<i>、<small>、<big>等)。但一些浏览器只支持其中的部分,不支持的忽略,不会出错。 WCSS 控制字体格式。
与格式化文本:在XHTML MP中,标签间空白不显示,此外,段落中2个或更多的空白只显示一个,如果想保持文字的格式,可使用<pre>。 
列表:<ul>、<ol>、<li>。对于<ol>元素,可以用属性 start 指定数字开始的序列。还可以用WCSS来做更精确的控制。
显示图片:<img>标签用来显示图片。和HTML一样。如果文件没发现或者图片格式不支持,显示alt属性文本。Height和width属性来指定图片显示区域的高度和宽度。

除了老的WBMP图片格式,WAP2.0还支持WEB上的图片格式(gif, jpg和PNG),但WAP2.0无线设备支持上面图片格式的某些。GPRS-gif,CDMA-png。可以通过accept HTTP header判断设置。 
         关于大图片的发布:很多WAP浏览器都没有水平滚动功能。如果宽度大于显示屏,很多的WAP浏览器会裁切图片。图片的按比例缩小不能帮助提升性能。大图片还会造成访问站点用户的费用。
       优化图片:1、用制图软件按比例缩小图片;2、如果是gif图片,减少颜色,但降低了图片质量,权衡。3、如果是jpg图片,保存一定的压缩比例,依然是权衡。
       使用multipart messages,先下载的XHTML MP文档,后请求图片,产生多个请求。该方式可以使文档和图片在一个请求,意味着一个页面只有一个请求。减少服务器的压力。
表格:创建表格,需要使用<table>、<tr>、<td>标签,默认表格没有边线。属性有rowspan和colspan。
锚链接:一般用在导航。标签为<a></a>。属性href定义指定的URL。当前页面位置的跳转:先设置目标链接,通过id属性设置;再设置锚链接的URL为#id名称。
       对锚链接设置快捷键:<a>标签的accesskey属性,有效的值为:*,#,0-9。还可以用-wap-accesskey设置。
选择列表:选择列表使用<select>标签,包含一个或更多的<option>标签。<select>标签的name属性定义选择列表的名字。name用来取得被选择的item的值(option的value属性定义)。
       1.   多重选择列表:Option的selected属性用来设置默认的option。如果想设置多重选择列表,可使用<select>标签的multiple属性,只有一个唯一值‘multiple’。
       2.   Option分组:使用<optgroup>标签,label属性定义option组的名称。
输入元素:Text field、Password fireld、Checkbox、Radio button、Hidden field。通过<input>元素创建。传输数据到服务器,<input>元素必须和<form>一起使用。Type属性用来定义input元素的类别。Name属性用来定义名称,方便取得用户数据。
       <input type="text" name=“taobao" maxlength="16" value=“yuanxin"/> 
       input { -wap-input-format: "10N"} 
       <input type="password" name=“taobao"/> 
       <input type="checkbox" name=“taobao" value=“yuanxin" checked="checked"/> 
       <input type="radio" name=“taobao" value=“yuanxin" checked="checked"/> 
       <input type="hidden" name=“taobao" value=“yuanxin"/>

form元素:<input>、<select>等元素不能直接包含在form元素下,XHMTL MP标准规定必须有块级元素。如果有non-ASCII字符,需使用POST方法来避免编码问题。
       <form  method="get" action=“yuanxin.asp">        <p> &nbsp;&nbsp;&nbsp;       &nbsp;       <input ...> &nbsp;&nbsp;&nbsp;&nbsp;              <select ...>        </p> </form> 
提交按钮:所有的表单都必须包含一个提交按钮。<input>元素用来创建一个提交按钮。而type属性被定义为’submit’。
       <input type="submit" value="OK"/>        
(九)常用标签介绍
 重置按钮:并不是必须的。<input>元素用来创建一个重置按钮。而type属性被定义为’reset’。
       <input type="reset" value="Default"/>
 Div和Span。

WAP2.0(XHTML MP)基础介绍的更多相关文章

  1. WAP 2.0开发XHTML MP语法及常用功能

    XHTML Mobile Profile 的基本结构 <?xml version="1.0" encoding="utf-8"?> <!DOC ...

  2. (转)第一天 XHTML CSS基础知识 文章出处:标准之路(http://www.aa25.cn/div_css/902.shtml)

    欢迎大家学习<十天学会web标准>,也就是我们常说的DIV+CSS.不过这里的DIV+CSS是一种错误的叫法,建议大家还是称之为web标准. 学习本系列教程需有一定html和css基础,也 ...

  3. wap2.0开发

    前言 移动通信和互联网的迅速发展,使得互联网从固定向移动转移(即移动互联网)成为一种必然的趋势.由于手机终端本身的限制条件和无线链路的特点,现有无线传送技术的效率和可靠性会越来越难以令用户满意.如何让 ...

  4. DIV+CSS专题:第一天 XHTML CSS基础知识

    欢迎大家学习<十天学会web标准>,也就是我们常说的DIV+CSS.不过这里的DIV+CSS是一种错误的叫法,建议大家还是称之为web标准.   学习本系列教程需有一定html和css基础 ...

  5. [教程]phpwind9.0应用开发基础教程

    这篇文章着重于介绍在9.0中如何开发一个插件应用的示例,step by step来了解下在9.0中一个基础的应用包是如何开发的.1.目录结构OK,首先是目录结构,下面是一个应用我们推荐的目录. 应用包 ...

  6. 可在广域网部署运行的QQ高仿版 -- GG叽叽V3.0,完善基础功能(源码)

    (前段时间封闭式开发完了一个项目,最近才有时间继续更新GG的后续版本,对那些关注GG的朋友来说,真的是很抱歉.)GG的前面几个版本开发了一些比较高级的功能,像视频聊天.远程桌面.文件传送.远程磁盘等, ...

  7. Web3D编程入门总结——WebGL与Three.js基础介绍

    /*在这里对这段时间学习的3D编程知识做个总结,以备再次出发.计划分成“webgl与three.js基础介绍”.“面向对象的基础3D场景框架编写”.“模型导入与简单3D游戏编写”三个部分,其他零散知识 ...

  8. C++ 迭代器 基础介绍

    C++ 迭代器 基础介绍 迭代器提供对一个容器中的对象的访问方法,并且定义了容器中对象的范围.迭代器就如同一个指针.事实上,C++的指针也是一种迭代器.但是,迭代器不仅仅是指针,因此你不能认为他们一定 ...

  9. [译]AngularJS 1.3.0 开发者指南(一) -- 介绍

    [译]AngularJS 1.3.0 开发者指南(一) -- 介绍 Angular是什么 ? AngularJS是一款针对动态web应用的结构框架. 它可以让像使用模板语言使用HTML, 并且可以扩展 ...

随机推荐

  1. javascript构造函数强制使用new

    如果有时候我们忘记对构造函数使用new的话,构造函数的this将指向window function Person(){ this.name = 'Julie'; } var good_moring = ...

  2. HDU 2159 FATE (二维背包)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2159 解题报告:这题实际上是一个二维的背包问题,也可以由01背包扩展而来,01背包用一维数组,可想而知 ...

  3. Linux笔记之如何分割文件或管道流:split

    一.简介 在Linux中合并文件可以使用cat命令,后面跟上要合并的文件然后重定向到一个新的文件中即可,甚至可以追加合并.但如果要将一个大文件分割为多个小文件应该如何操作呢? 在Linux的coreu ...

  4. 数链剖分(Housewife Wind )

     题目链接:https://vjudge.net/contest/279350#problem/B 题目大意:给你n,q,s.n指的是有n个点,q代表有q次询问,s代表的是起点.然后接下来会有n-1条 ...

  5. RabbitMQ集群下队列存放消息的问题

    RabbitMQ中队列有两种模式 1.默认 Default 2.镜像 Mirror [类似于mongoDB,从一直在通过主的操作日志来进行同步] *如果将队列定义为镜像模式,那么这个队列也将区分主从, ...

  6. 转:存储之直连存储Dell Powervault MD 3000

    存储之直连存储DellPowervault MD 3000 存储根据服务器类型可以分为:封闭系统的存储和开放系统的存储 1.封闭系统的存储:封闭系统主要指大型机,AS400等服务器 2.开放系统的存储 ...

  7. mongo批量操作存在更新否则插入

    def save_data(ok_ps): ns = [] for ok in ok_ps: ok['last_use_time'] = 0 ok['protocol'] = 0 # 协议类型 0:h ...

  8. JavaScript之this学习心得

    this在运行时绑定,并不是在编写时绑定,它的上下文取决于函数调用的各种条件.this既不指向自身,也不指向函数的词法作用域.this是在函数被调用时发生的绑定,指向什么完全取决于函数在哪里被调用. ...

  9. LOJ 10155 - 「一本通 5.2 例 3」数字转换

    前言 从现在开始,这个博客要写一些题解了.起初,开这个博客只是好玩一样,没事就写写CSS.JS,然后把博客前端搞成了现在这个样子.以前博客只是偶尔记录一些东西,刷题也从来不记录,最近受一些学长的影响, ...

  10. linux中如何清空一个文件的内容

    方法1: echo "" > /www.jbxue.com /xxx.log 方法2: echo "" >> /www.jbxue.com / ...