类型
标记语言通常可以分为三类:标识性的、过程性的以及描述性的。1
标识性置标语言**“标识性置标语言”** (外语:Presentational markup)是在编码过程中,标记文档的结构信息。例如,在文本文件中, 文件的标题可能需要用特定的格式表示(居中,放大等),这样我们就需要标记文件的标题。字处理以及桌面出版产品有时候能够自动推断出这类的结构信息,但是绝大多数的,像Wiki这样的纯文本编辑器还不能解决这个问题。
过程性标识**“过程性置标语言”**(外语:Procedural markup) 一般用于文字的表达,通常对于文本编辑者可见,并且被软件依其出现顺序依次解读 。 为了格式化标题,在标题文本之前,紧接着插入一系列的格式标识符,指示计算机转换到居中的显示模式,同时加大及加粗字体。在标题文本之后,会紧接缀上格式中止标识; 对于更高级的系统宏命令或者堆栈模式会让这一过程的实现方式更加丰富 。大多数情况下, 过程性置标能力包含有一个Turing-complete编程语言。 过程性置标语言的范例有:nroff, troff, TeX, Lout 以及 PostScript. 过程性置标语言被广泛应用在专业出版领域, 专业的出版商会根据要求使用不同的置标语言已达到出版要求.
描述性标记**“描述性的标记”**——有时被称为逻辑标记或概念上的标记,鼓励作者编写的方式描述概念上,而非视觉上。2
历史
“置标”这个词来源自传统出版业的“标记”一个手稿,也就是在原稿的边缘加注一些符号来指示打印上的要求。 长久以来,这个工作都是由专门的“标记人”(外语:markup men )或**“复制标记”**(外语全称:copy markers3)以及校对人来进行,对原稿标志出使用什么样的字体,字型以及字号,然后再将原稿交给其他人进行手工的排版工作。
GenCode
TeX
TeX是一个由美国电脑教授高德纳(Donald E. Knuth)编写的功能强大的排版软件。它在学术界十分流行,特别是数学、物理学和计算机科学界。TeX被普遍认为是一个很好的排版工具,特别是在处理复杂的数学公式时。利用诸如是LaTeX等终端软件,TeX就能够排版出精美的文本。
标准通用标记语言
标准通用标记语言是一种专门的置标语言,被用作编写《牛津英语词典》的电子版本。由于它的复杂,导致难以普及。
超文本标记语言
超文本标记语言(标准通用标记语言下的一个应用、外语缩写:HTML)是为网页创建和其它可在网页浏览器中看到的信息设计的一种标记语言。
可扩展标记语言
可扩展标记语言(标准通用标记语言下的一个子集、外语缩写:XML),又称可扩展置标语言,是一种标记语言。置标指电脑所能理解的信息符号,通过此种标记,电脑之间可以处理包含各种信息的文章等。
XHTML
可延伸超文件标记语言(外语全称:Extensible HyperText Markup Language、外语缩写:XHTML),是一种标记语言,表现方式与超文本标记语言类似,不过语法上更加严格。
其他基于可扩展标记语言的应用
还有其他一些基于可扩展标记语言的应用,比如RDF、XForms、DocBook、SOAP以及**“网络本体语言”**(外语缩写:OWL)。
历史发展标记语言,用一系列约定好的标记来对电子文档进行标记,以实现对电子文档的语义、结构、及格式的定义。这些标记必须很容易的和内容区分,并且易于识别。标记语言的发展如下:
当今广泛使用的置标语言是超文本标记语言和可扩展标记语言。置标语言广泛应用于网页和网络应用程序。标记最早用于出版业,是作者、编辑以及出版商之间用于描述出版作品的排版格式所使用的。
一、为了促进数据交换和操作,在20世纪60年代,通过IBM公司研究人员的杰出工作,得出了重要的结论:要提高系统的移植性,必须采用一种通用的文档格式,这种文档的格式必须遵守特定的规则。这也就是创建通用标记语言的指导原则,从人们所产生的将文件结构化为标准的格式的动机出发,IBM创建了通用标记语言。
二、在标记语言的概念达成共识的基础上,IBM公司的研究人员Charles Goldfarb带领的开发团队完善着通用标记语言,将其称为标准通用标记语言,标准通用标记语言成为了IBM内部格式化和维护合法化文件的手段。后来被拓展和修改,作为一种全面的信息标准以适应工业范围的广泛应用,1986年,标准通用标记语言被国际标准化组织(ISO)所采纳。
他的功能非常强大,但是非常复杂,需要许多昂贵的软件配合运行,因此在很长一段时间内没有被推广。
三、1989年,欧洲粒子物理实验室(CERT)的研究员Tim Berners-Lee和Anders Berglund共同创建了一种基于标记的语言HTML,他可看做标准通用标记语言的简单应用,开始时仅仅提供一种对静态文本的信息显示的方法,后来越来越多的标签产生,两大浏览器厂商微软和网景格式,甚至创建了自己的产品的兼容标签,使HTML变得臃肿不堪,兼容性不好。
四、1996年人们开始致力于描述一个新的标记语言,它是一种在WEB中应用标准通用标记语言的灵活性和强大功能的方法,万维网联盟--领导万维网,制定其公共的协议,促进万维网的发展并确保其互操作性的国际组织)专门成立了专家小组以从事这项工作。1998.2,w3c批准了XML1.0规范。可扩展标记语言具备标准通用标记语言的核心特性,但简洁,他的内容甚至不到标准通用标记语言的十分之一。
其他应用XAML(ExtensibleApplicationMarkupLanguage),基于XML语言,在微软WPF(WindowsPresentationFoundation)中使用。
XAML提供了一种便于扩展和定位的语法来定义和程序逻辑分离的用户界面,而这种实现方式和ASP.NET中的"代码后置"模型非常类似。XAML是一种解析性的语言,尽管它也可以被编译。它的优点是简化编程式上的用户创建过程,应用时要添加代码等。
用文本编辑器打开一个XAML文件,会发现一个XAML文件只有一个元素作为根,这个根是应用程序整个运行时的对象图。在这个根下,可以采用3中、种方式来声明对象以构建一个有意义的XAML文件。接下来介绍一下XAML文件的结构和对象:
1.直接使用对象元素语法
如果objectName是一个需要实例化的类型名称,纳闷可以用如下代码创建对象:
一般一个对象还包括其他对象,那么可以这样表示:
为了方便,也可以省略成如下形式:
2.使用属性语法设置属性
如果objectName是要实例化的对象,propertyName是要设置的属性名称,propertyValue是要设置的属性的值。那么应该使用的代码如下所示:
或者:
...
3.标记扩展
标记扩展是一个XAML属性语法,采用花括号({和})表示标记扩展。此方法可以讲属性值不仅仅看做一段字符或者文本,分析器会调用适用该特定标记扩展的代码,从而在标记中构造对象。
这种方法被广泛用于数据绑定上,比如:
:Name="LayoutRoot"Background="White">
以上代码将ComboBox的Itemssource属性的值绑定为Layoutroot。4