转自:
http://bbs.xml.org.cn/dispbbs.asp?boardID=77&ID=59088
5.3 预编译
WML Script的预编译主要用于在编译阶段控制编译器的行为。与编译头一般在文件开头和函数声明之前指定,WML Script规定所有的预编译头都是一关键词use加上指定的预编译属性进行指定。
在大多数的编程中,我们比较长用的预编译行为主要涉及外部文件声明、访问权和Meta信息设置。
5.3.1 外部文件
我们知道,使用URL地址可以定位一个WML Script文件。利用该URL地址;在WML Script编程中我们可以通过预编译来调用WML Script的外部文件,外部文件预编译头的声明方法是use url,其语法格式如下:
use url外部文件名 "URL"地址
这样,我们在当前文件的编程中就可以使用该预编译头声明的外部文件,从而可以调用该外部文件的函数。其语法格式为:
外部文件名#函数名(参数列表);
例如,我们希望在当前的WML Script程序中调用OtherScript外部文件中的check()函数,而且我们知道OtherScript文件的URL地址为http://www.host.com/app/script。因此,我们可以使用use url来声明这一外部文件:
use url OtherScript"http://www.host.com/script"
随后,我们就可以在程序中调用OtherScript中的check()函数了:
function test(par1,par2)
{
return OtherScript#check(par1,parr2);
};
其中调用执行的过程如下:
(1)找到WML Script外部文件的URL地址;
(2)当前函数从指定的URL地址值装载外部文件;
(3)检测外部文件的内容,并执行其中的check()函数。
ure url 预编译头指定的外部文件名在当前程序中必须唯一,用户不能指定不同URL地址的同名外部文件,否则在调用外部文件时就会发生混乱。
另外,use url预编译头中的URL地址也可以是相对URL地址。相对URL的起始位置是当前程序文件所在的位置,并在此基础上根据URL进行定位。
如果URL地址中的字符包含有转义字符,则WML Script将根据转义要求进行转义。不过,程序在编译的时候编译器并不会对他们进行转义,而是在程序执行时完成,检查URL格式和URL地址的有效性。
5.3.2 访问权限
我们可以使用访问权限预编译设保护文件的内容,实现访问控制。WML Script编程中,必须在调用外部函数之前使用访问权限预编译头声明外部文件的访问权限。不过,WML Script访问权限检查的缺省值是不进行检查,即disabled.但访问权限一经声明,以后当调用外部函数的时候,编译器就会检查外部文件的访问权限,以决定调用这是否有权使用该文件及其内含函数。
访问权限预编译头的声明方法是use access,其语法格式如下:
use access domain操作域名 path操作路径:
访问权限预编译头通过指定domain和path属性来决定编译器将要进行什么样的检查工作。如果文件有domain或者path属性,那么文件所在的URL就必须和属性中的值一致。比较时,域和路径都依据URL大写规则进行比较。具体的比较预则如下:
(1)操作域与URL中的域后缀相匹配。与后缀匹配是值所有的子域从后向前都必须一致。例如www.wapforum.org和wapforum.org相匹配,而与forum.org并不匹配。
(2)操作路径和URL中的路径前缀相匹配。路径前缀匹配是值从前向后必须一致。例如:“/X/Y”与“/X”相匹配,而不是和“/XZ”相匹配。
(3)却省的domain数行为当前的文件域,就是“/”。
不过,为了简化编程,有时WMLScript并不需要直到外部文件的绝对路径,我们只需提供文件的相对URL即可,用户浏览器执行程序是卡相对路径自动转换为绝对路径,根据路径属性进行匹配。例如:如果访问权限预编译头及其指定属性为:
use access domain"wapforum.org"path"/finance";
则可以使用以下的路径来调用指定文件中的外部函数,它们都符合相对URL地址匹配规则:
http://wapforum.org/finance/money.cgi
http://www. wapforum.org/finance/money.cgi
http://www. wapforum.org/finance/demos/packages.cgi?x+123&y+456
而以下的路径调用则非法的,因为它们或者操作域不对,或者URL地址不能与指定的相对URL相匹配:
heep//www.test.net/finance
http//www.qapforum.org/internal/foo.wml
需要强调指出的是,WML Script规定,同一程序中只能定义一个访问权限与编译头,否则就会导致编译错误。
5.3.3 Meta 信息
我们还可以通过与编译头的形式声明WML Script文件的Meta信息。Meta信息主要用于指定文件所需Mete属性的属性名(Property name)、属性值(Content)以及文件的配置(信息),属性都属于字符串类型的数据。Mate信息域编译头使用use meta声明,其语法格式为:
usr meta 属性 该属性Meta信息:
Meta的属性主要包括Name、HTTP Equiv和User Agent三种,下面我们分别讲解它们的声明方法:
(1)Name。该属性用于指定服务器使用的Meta信息。这些信息仅供服务使用,用户浏览器并不理会这些信息。
例如,以下Name属性的Meta信息指定了服务器的创建时间:
use meta name "Created""26-June-2000";
该信息只会作用于服务器,而不会影响用户浏览器的操作。
(2)HTTP Equiv。该属性用于指定需要解释为HTTP头的Meta信息。对于已经编译的文件来说,当它到达用户浏览器前,WML Script将根据HTTP Equiv属性指定的Meta信息将文件转换为WSP或HTTP的响应头,进行文件的解释和执行。
例如,以下声明的http equiv属性指定按照脚本语言的关键字来解释当前文件:
use meta http equiv"Keywords""Script,Language";
(3)User Agent。该属性用于定义用户浏览器使用的数据类型。例如:
use meta user agent"Type""Test";
它指定当前数据必须立即发送给用户浏览器,然后马上清除掉。
分享到:
相关推荐
- **预编译的作用**:提高执行效率。 - **预编译过程**:将源代码转换为中间形式。 **5.4 执行时的错误检测与处理** - **错误类型**:运行时错误。 - **异常处理**:如何捕获和处理异常。 #### 第六章:WML ...
### MTK软件开发入门知识点详解 #### 一、MTK软件架构 MTK(MediaTek)作为一家全球领先的芯片设计制造公司,在移动通信领域提供了多种解决方案。本节将详细介绍MTK软件开发的基础架构。 1. **MS Executable ...
**J2ME手机开发入门源码详解** Java 2 Micro Edition(J2ME)是Java技术的一个重要分支,主要用于嵌入式系统,如移动设备、智能家电等。它提供了跨平台的能力,使得开发者可以编写一次代码,到处运行。在本文中,...
本文档主要针对MTK平台的初学者,介绍了MTK软件构架、编译方法、开发目录结构、开发工具及其应用,帮助读者快速掌握MTK的入门知识。 MTK软件构架主要分为五个部分: 1. **L1协议**:这是物理层,负责根据05系列的...
综上所述,"J2ME移动开发视频讲义2入门教程"将引导你从零开始,逐步掌握J2ME开发的基本概念、工具使用、用户界面设计、网络通信、资源管理和应用部署等方面的知识,为你的移动开发之路打下坚实的基础。
以下是对MTK软件构架、编译过程、开发目录结构、开发工具以及MMI制作等关键知识点的详细解释。 1. **MTK软件构架** MTK的软件构架分为三个主要部分:MS Executable Software、Mobile Engineering Testing ...
本文档是针对MTK平台的开发者入门资料,主要涵盖以下几个方面: 1. **MTK软件架构**:MTK软件构架包含了L1协议、设备驱动、协议栈、MMI(人机交互界面)、WAP应用以及JAVA软件。其中,L1协议层处理物理层传输,设备...
本文档主要面向MTK开发人员,旨在介绍MTK软件架构、编译过程、目录结构、开发工具以及MMI(人机交互界面)的制作。 MTK软件架构分为五个主要部分: 1. L1协议:这是物理层,负责根据05系列技术规范在无线介质上...
MTK,全称为MediaTek,是一家著名的...总结来说,MTK入门需要理解其软件架构、开发流程、使用的工具以及如何构建用户界面。通过深入学习这些基础知识,开发者能够高效地在MTK平台上进行移动通信应用的开发和调试。
**三、JSP WAP开发基础** 1. **WML与XHTML-MP**:WML是一种专为移动设备设计的语言,类似于XML,用于创建WAP网站。随着设备性能提升,XHTML-MP成为更常见选择,它扩展了XHTML,支持更多的HTML特性。 2. **WAP ...
本教程将引导初学者深入理解J2ME手机程序开发,帮助你快速入门并掌握核心概念。 1. **J2ME概述** J2ME由Java ME配置(Configurations)和Java ME框架(Profiles)组成。配置定义了设备的基本能力,如内存大小和...
J2ME为移动设备提供了丰富的应用程序开发环境,尤其是在手机游戏领域,它曾经是开发手机游戏的主流技术之一。 在"J2ME手机游戏编程入门"这个主题中,我们主要会学习以下几个核心知识点: 1. **J2ME架构**:J2ME由...
MTK入门资料主要针对想要学习和理解MTK软件架构及其开发流程的初学者。本文将详细探讨MTK软件架构、编译过程、开发目录结构、开发工具以及MMI(人机接口)的制作等方面。 MTK的软件架构主要由以下几个部分组成: 1...
这个入门学习文档集包含了多个与MTK平台开发相关的主题,涵盖了从基本的界面管理到多媒体播放、系统编译工具的使用、故障排查等多个方面。以下是对这些文档的详细解读: 1. **软件界面管理机制.doc**:这份文档可能...
ASP.NET 2.0是微软开发的一个用于构建Web应用程序的框架,它建立在.NET Framework之上,为开发者提供了强大而高效的应用程序开发环境。本快速入门教程将帮助初学者迅速掌握ASP.NET 2.0的核心概念和技术,从而能够...
Eclipse 提供了一整套强大的开发工具,包括源代码编辑器、调试器、构建工具以及项目管理工具,极大地提高了开发效率。对于J2ME开发,Eclipse通过安装特定的插件,如Mobile Tools for Java (MTH) 或者eClipseME,可以...
WAP使得解决方案管理更加有序,支持版本控制,并且在编译时生成DLL,提高了部署效率。 3. **母版页与内容页** 母版页是ASP.NET 2.0中的一个重要概念,它允许开发者创建一个共享布局,多个内容页面可以插入到这个...
MTK,全称为MediaTek,是一家知名的半导体...学习MTK入门,不仅需要理解其软件架构,还需要熟悉开发工具的使用,掌握编译过程,理解程序的入口和流程,以及如何制作MMI。这将为开发者进入MTK平台的开发世界奠定基础。
常用的J2ME开发工具有NetBeans、Eclipse、JBuilder等,它们提供了MIDP的集成开发环境,包括代码编辑、编译、调试和模拟器功能。 9. 调试与测试 使用J2ME模拟器可以在没有物理设备的情况下进行程序测试。模拟器...