新浦京娱乐场官网-301net-新浦京娱乐www.301net
做最好的网站

微格式中有什么

趁着 AJAX 和微格式的兴起,这一个格式还会有用呢?大概微格式是或不是十足 “轻易” 了啊?看看哪些通过 JSON(比 YAML 更轻便)使用 MochiKit for AJAX(不带 X),以及哪些在云谲风诡微格式的职务中动用 reStructured Text。

XML 既用于标志文书档案也用于标志结构化数据,是好是坏有各样差别的讲授,那要看你使用哪类观点了。对于文书档案和数目界限模糊的地点来说XML 或许是赢家,不过作为一种通用技术方案,对二个难点来讲 XML 恐怕比任何给定的现实性建设方案都更目眩神摇。大卫 从前已经探究过 YAML(请参阅 参照他事他说加以考察资料)。YAML Ain't 马克up Language 或 Yet Another 马克up Language(YAML)是一种方言,以提供比 XML 更简便的多寡(数字、字符串、列表、轻巧结构)传输为对象。本文中大家将商讨JSON(JavaScript Object Notation),它是 YAML 的三个真子集,然则更易于创设和剖析。在 JavaScript 和 Python 中,假使JSON 的发源可相信,能够一贯用脚本引擎求值,对于来源离谱赖的 JSON 也许有对应的剖判器可用。

虽说 JSON 的应用临近文档-数据谱系中的数据一端,也可用结构文本格式管理文书档案色彩较浓的微格式。有二种入眼的结构化文本方法(不算丰富多彩的 Wiki 标识):reStructured Text、马克down 和 Textile。大家将深入分析这两种格式,至少从理论上看看它们怎么着管理微格式例子。

微格式中有怎么样?

微格式富含哪些的数据?微格式的核心是将(常常)少许的数量,放入一个便于供人或机器管理的格式中,假诺忽视这一限量把多少根据人类阅读或机器管理(但不可能同期)的必要编码,然后管理以博得微格式版本就能带来一些好处。hCalendar 日常的例子包罗下列音讯:

  • 摘要/标题
  • 位置
  • URL
  • 起始日期(以及可选的年华)
  • 终结日期(和可选的岁月)
  • 时区
  • 说明

亟需编码的就好像此多。清单 1 显示了叁个 hCalendar 事件的事例:

清单 1. hCalendar 事件


href="http://www.vanpyz.org/conference/keynotes.html">

August 4, 2006 - 19:00
-

21:00
-

Vancouver Python Workshop Keynotes
- at

Fletcher Challenge Canada Theatre,
SFU Harbour Center,
Downtown Vancouver



The Vancouver Python Workshop keynote address is an
opportunity to hear from leading members of the Python
community. This years speakers are Guido van Rossum of
Google and Jim Hugunin from Microsoft.



倘诺只留下基本的数据,能够用 JSON 编码同样的事件。要留心日期、时间和时区都以用 ISO8601 编码,那是格式化日期和时间的正规化格式,它本人也是一种微格式。清单 第22中学的例子在 JavaScript 或 Python 中都是法定的代码:

清单 2. 使用 JSON 编码

event = {
'title': 'Vancouver Python Workshop Keynotes',
'location': 'Fletcher Challenge Canada Theatre,
SFU Harbour Center, Downtown Vancouver',
'url': 'http://www.vanpyz.org/conference/keynotes.html',
'start': '2006-08-04T19:00-0700',
'end': '2006-08-04T21:00-0700',
'description': 'The Vancouver Python Workshop keynote address
is an opportunity to hear from leading members of the Python
community. This years speakers are Guido van Rossum of Google
and Jim Hugunin from Microsoft.'};

设若只留下基本的数额,能够用 JSON 编码同样的风云。要专一日期、时间和时区都以用 ISO8601 编码,那是格式化日期和时间的正儿八经格式,它本身也是一种微格式。清单 第22中学的例子在 JavaScript 或 Python 中都以官方的代码:

清单 2. 使用 JSON 编码

event = {
'title': 'Vancouver Python Workshop Keynotes',
'location': 'Fletcher Challenge Canada Theatre,
SFU Harbour Center, Downtown Vancouver',
'url': 'http://www.vanpyz.org/conference/keynotes.html',
'start': '2006-08-04T19:00-0700',
'end': '2006-08-04T21:00-0700',
'description': 'The Vancouver Python Workshop keynote address
is an opportunity to hear from leading members of the Python
community. This years speakers are Guido van Rossum of Google
and Jim Hugunin from Microsoft.'};

下边将见到,这种格式也很轻易在 Web 上流传。

您从自己的文书档案中猎取了数据!

对微格式内容使用 JSON 代表了数据一端。对于文书档案方面,大家得以从结构化文本开首临近微格式。假如接纳reStructured Text 编写 hCalendar 是哪些样子呢?当然,reST 允许选拔指令创制插件扩大,因而解析类 hCalendar 数据的指令能够是那样:

.. event::

LOCATION: Fletcher Challenge Canada Theatre,
SFU Harbour Center, Downtown Vancouver
DTSTART: TZID=America/Vancouver:20060804T190000
DTEND: TZID=America/Vancouver:20060804T210000
SUMMARY: Vancouver Python Workshop Keynotes
DESCRIPTION: The Vancouver Python Workshop keynote address
is an opportunity to hear from leading members of the Python
community. This years speakers are Guido van Rossum of Google
and Jim Hugunin from Microsoft.

有关这种思路有意思的地点是:hCalendar 规范是从原本的 iCalendar 标准到二个HTML 子集的照射。那么这种诡秘的 iCalendar 什么体统呢?清单 3 呈现了 iCalendar 中的同样事件:

清单 3. iCalendar 中的事件

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Apple Computer, Inc//iCal 2.0//EN
BEGIN:VEVENT
DURATION:PT3H
LOCATION: Fletcher Challenge Canada Theatre,
SFU Harbour Center, Downtown Vancouver
DTSTAMP:20060615T034522Z
UID:FE31377A-AB78-4D99-BC25-3F09C99E5928
DTSTART;TZID=America/Vancouver:20060704T100000
SUMMARY:Vancouver Python Workshop Keynotes
DESCRIPTION:The Vancouver Python Workshop keynote address
is an opportunity to hear from leading members of the Python
community. This years speakers are Guido van Rossum of Google
and Jim Hugunin from Microsoft.
END:VEVENT
END:VCALENDAR

没有错,iCalendar 是一种基于文本的格式,分析比较轻松,能够找到剖判这种格式的库,可用选拔的其它语言操作结果。因而只要达成了获取 hCalendar 整体数码元素的 reStructured Text 指令,只要修改 .. include::指令即可将 iCalendar 内容一贯格式化为 hCalendar 。由于存在大气导入导出 iCalendar 格式的工具,比方 Apple 的 iCal,直接援引这种格式恐怕更加好一些。咱们不计划详细座谈怎样增加或涂改 reStructured Text 中的指令,不仅仅为了简洁,还因为 Dethe 已经与 reStructured Text 的主要开垦职员 大卫 Goodger 合营编写那方面包车型地铁学科。

轻于空气,但麻烦呼吸

虽说 JSON 提供了一种比 YAML 或 XML 都轻松的数码格式,可是 reStructured Text 是一种极度复杂的工具。reStructured Text 文书档案大概比 XML 更便于阅读,假设你不准备利用它的任何特色,它也更加的简约。不过一旦加多了广大的一声令下、表格和任何特色,Dethe 的 Complexity Meter 就能变得紧Baba起来。既然 JSON 通过正式一种广泛的折中方案,导致了 Domain Specific Language 即 DSL 的产出)获得了简化,倘若愿意就义 reStructured Text 的一对意义和灵活性还足以尤其简化结构化文本。而且这种比轻量级的以文书档案为基本的格式特别轻易的格式已经存在了。

我们将研商 Textile 和 马克Down,这二种特别轻量级的组织化文本格式简化了微格式数据的创立。缺憾的是,那个使这三种工具在成立以文书档案为中央的从头到尾的经过方面得到成功的特点,对于越来越面向数据的办事比方hCalendar 却绝不扶助。Textile 未有 <DIV>或 标识,也未曾为 增多类的任何格局。即便它极度灵活,很轻巧助长 class、id和 style属性,却力所不及增多 title属性。马克down 根本未曾加多属性的编写制定即便Py马克down 有一种扶助属性的增添),也从未 <DIV>或 那样的结构。多个系统都能传递预格式化的 HTML,但这么就全盘失去了利用一种轻量级格式的裨益。

那些轻量级标识语言缺少对微格式的帮忙是能够领会的。从实质上来讲微格式正是数据,而 Textile 和 MarkDown 都以用以 Web 创作的工具。它们的靶子是赞助您轻便找到供给的字,加上一些格式,可是忽视了插入机器可读数据的难题。XML 的老难题之一,即相同的时间用于数据机器可读的音信)和内容人类易懂的文书)。结构化文本格式紧靠在内容一端,而 YAML 和 JSON 则在数码一端。每一样格式或者都做得科学可能比 XML 好,但是在多少和内容的境界不那么清楚的地方,例如微格式,这么些语言都很难高出界线。

AJAX 和微格式的起来,这么些格式还应该有用呢?恐怕微格式是还是不是十足 “轻便” 了吧?看看哪些通过 JSON(比 YAML 更轻便)使用 MochiKit for AJAX(不...

本文由新浦京娱乐场官网-301net-新浦京娱乐www.301net发布于www.301net,转载请注明出处:微格式中有什么

您可能还会对下面的文章感兴趣: