分享
 
 
 

RELAX NG

王朝百科·作者佚名  2011-02-02
窄屏简体版  字體: |||超大  

RELAX NG返回到最初的 XML 1.0 Recommendation,XML 已经包括了验证或者说将其与预定义的结构比较的能力。第一个验证版本称为文档类型定义(Document Type Definition,DTD),但是许多开发人员认为它太简单了:它没有使用 XML 语法,也不能让开发人员指定现实世界中需要的许多规则。于是,W3C 开发了 XML Schema,但是许多开发人员认为它太复杂了:它使用了 XML 语法,也能够让用户建立公开的任何规则,但代价是增加了复杂性。其他人把 TREX 与 RELAX 的建议结合到了RELAX NG中,许多开发人员认为它正好合适。它使用了 XML 语法,也允许开发人员建立 W3C XML Schema 语言所能创建的多数相同规则,但是语法大大简化了。

RELAX NG(读作“relaxing”),是一种基于语法的 XML 模式语言,可用于描述、定义和限制 XML 词汇表。通过本文了解某些人不喜欢使用文档类型定义(Document Type Definition,DTD)的原因,以及 RELAX NG 如何针对它进行改善。

RELAX NG[OASIS Committee Specification and ISO Standard ISO/IEC 19757-2:2003] 是一种XML 模式语言,即一种可用来定义和限制 XML 词汇表的语言。最初的 XML 模式语言是 XML 1.0 自己定义的 DTD。但是,一些人不喜欢 DTD,因为它丑陋的语法、表达文本和标记结构的局限性,并且难以处理 XML Namespaces。出现了几种新的 XML 模式语言以替代或增强 DTD,其中包括 RELAX NG,它以简洁性和表达能力著称。RELAX NG 核心规范还为架构定义了一种 XML 语法,此外,RELAX NG Compact Syntax[OASIS 委员会规范和 ISO Standard ISO/IEC 19757-2:2003/Amd.1:2006] 还为 RELAX NG 架构定义了一种简单的文本语法。RELAX NG 的 ISO 版本现在可从 ISO 的 Freely Available Standards 页面免费获得。

当 XML 1.0 Recommendation 第一次发布的时候,它包括了 DTD 的定义,DTD 是 XML 的先辈 SGML 的验证格式。DTD 很有用,它允许开发人员建立 XML 文档必须遵循的层次结构。 不幸的是,DTD 存在两个严重的缺陷。首先,它们不是 XML 文档 ―― 比如,一个 DTD 可能是这个样子:

<!ELEMENT memories (memory+)>

<!ELEMENT memory (media, subdate, donor, subject, location)>

<!ATTLIST memory mediaid CDATA #REQUIRED status CDATA #REQUIRED>

<!ELEMENT subdate (#PCDATA)>

<!ELEMENT donor (#PCDATA)>

<!ELEMENT subject (#PCDATA)>

<!ELEMENT location (description | place)>

<!ELEMENT description (#PCDATA)>

<!ELEMENT place (#PCDATA)>

其次,在建立数据类型和其他约束方面的能力有限。 于是,不同的开发人员组织开始寻求新的、基于 XML 的方法,已建立 XML 文档必须符合的层次结构(或语法)。正式的标准是 W3C XML Schema 语言,但也受到一些不利之处的困扰,主要在于建立复杂的规则可能非常难。 但是 W3C 并没有关上创建模式语言的大门。开放源代码团体结合了两种不同的建议,TREX 和 RELAX,形成了 RELAX NG(读作 “relaxing”),一种基于 XML 的模式语言,提供了许多与 W3C 模式语言等同的功能,但是又简单得多。(RELAX NG 还提供了一种非 XML 的 紧凑 语法,我将在后面的 紧凑语法 部分讨论它。)

RELAX NG 验证程序RELAX NG 验证程序存在不同语言的版本,包括:

Java 技术 ―― Jing 和 MSV C 语言 ―― Libxml2 。 C# 语言 ―― Tenuto 。 Python 语言 ―― XVIF 。 ActiveX ―― 有一个 DLL,是VBRELAXNG。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有