写点什么

你难道还没有用 RELAX-NG 吗?

  • 2007-10-30
  • 本文字数:523 字

    阅读完需:约 2 分钟

RELAX-NG (读音是“relaxing”)也是一种 XML schema 定义语言,它的主要特征是比目前通用的基于 DTD 或是 XSD 的语言要简洁优雅的多。W3C XML Schemas 已经因为“卓越”的复杂性而臭名昭著了,许多 XML 大师都对此表示过不满,Tim Bray评论说:

W3C XML Schemas (XSD) 烂透了。又难读,又难写,还不容易理解,交互性也成问题,而且你想用 XML 来做的很多事情都没法描述出来。

Griffin Brown 最近列出了使用RELAX-NG,而不是W3C XML Schema 来进行XML 建模的 10 条原因,把网络上散落的对 RELAX-NG 的赞誉做了归纳。如下所示:

  1. “好的规格说明就意味着好的交互性”。
  2. “提供了简洁的语法”(RELAX-NG 支持使用 DSL 来精确的描述约束条件,而不是使用尖括号)。
  3. “它的规范是一个稳定的 ISO 标准”。
  4. “没有 PSVI”(PSVI 被认为是有害的)
  5. “没有给内容提供默认值”。
  6. “更好的数据类型支持”。
  7. “更加完善的模型”
  8. “更加完善的语法校验”
  9. “文档实例没有依赖性 _”。_
  10. 正在获得越来越广泛的应用”。

我们可以使用“ Sun Multi-Schema Validator ”工具来将 XSD 文件转换成 RELAX-NG(.RNG)格式,该工具会生成比较冗长的.RNG 文件。而后可以使用 Trang 来把它们转换成更加简洁的格式。查看英文原文 Should you be using RELAX-NG?

2007-10-30 20:091687
用户头像

发布了 197 篇内容, 共 60.2 次阅读, 收获喜欢 21 次。

关注

评论

发布
暂无评论
发现更多内容

ShardingSphere UI 初步体验

源码 ShardingSphere

区块链产业正处于繁荣前夜(下)

CECBC

☕【Java技术指南】「TestNG专题」单元测试框架之TestNG使用教程指南(上)

码界西柚

Java 测试 单元测试 8月日更 testNG

今天聊一聊Golang的互斥锁吧

Regan Yue

互斥锁 互斥锁Mutex 8月日更

牛掰!“基础-中级-高级”Java程序员面试集结,看完献出我的膝盖

Java 编程 程序员 架构 面试

华为云数据库内核专家为您揭秘:GaussDB(for MySQL)并行查询有多快?

华为云数据库小助手

GaussDB 华为云数据库 GaussDB(for MySQL)

Docker 系列 _ 01_ 一念缘起

编程三昧

Docker 8月日更

ShardingSphere JDBC 语句执行初探

源码 ShardingSphere

mycat入门:落地分库分表与读写分离

小鲍侃java

8月日更

微校园小程序(云开发)设计方案

CC同学

阿里的新“宠儿”!终于有人总结出了Spring源码从初级到高级手册

Java架构追梦

Java spring 阿里巴巴 架构 面试

Java全家桶的这些知识,不用学了

Java 架构 后端 计算机

neo4j 基本概念与入门实例

escray

学习 neo4j 8月日更

如何使用python制作动感炫酷的 动态二维码

4ye

Python 后端 二维码 8月日更

CC校园运动小程序云开发解决方案

CC同学

量化机器人软件开发|自动交易机器人

量化系统19942438797

机器人 量化交易

死锁终结者:顺序锁和轮询锁!

王磊

Java 死锁 8月日更

聊聊 PC 端自动化最佳方案 - Pywinauto

星安果

Python 自动化 Pywinauto PC

区块链产业正处于繁荣前夜(上)

CECBC

springboot使用redis(从配置到实战)

Python研究者

8月日更

成为高效工程师的四步法则

俞凡

生产力 认知

一种单机支持 JavaWeb 容器万级并发的设想

Java 编程 程序员 面试

Linux之time命令

入门小站

Linux

架构实战营 模块六 作业

一雄

作业 架构实战营 模块六

谈 C++17 里的 Factory 模式

hedzr

c++ factory pattern c++17 factory method

JAVA应用生产问题排查步骤

Java 编程 架构 程序人生 架构师

SSH免登陆

Mike

轻松让你的nginx服务器支持HTTP2协议

程序那些事

Java nginx HTTP 程序那些事 http2

架构实战训练营模块六作业

NewBranSTONE

#架构实战营

在线JSON转HTML工具

入门小站

工具

模块六作业:拆分电商系统为微服务

Felix

你难道还没有用RELAX-NG吗?_架构_Gavin Terrill_InfoQ精选文章