写点什么

你难道还没有用 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:091895
用户头像

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

关注

评论

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

华为云专家向宇:工欲善其事必先利其器,才能做数据的“管家”

华为云开发者联盟

云原生 物联网 时序数据库 时序 GaussDB(for Influx

Go- 数组

HelloBug

数组 Go 语言

一文了解NB-IoT四大关键特性以及实现技术

华为云开发者联盟

IoT 网络 NB- IoT 物理信号 窄带

用零代码开发应用到底要不要IT管?

明道云

Golang:定时器的终止与重置

Regan Yue

定时器 Go 语言 8月日更

模块一作业

berserker

架构实战营

如何用 Nacos 构建服务网格生态

阿里巴巴云原生

Go- 切片的使用

HelloBug

Go 语言 切片 追加 拷贝 扩缩容

从源码分析创建线程池的4种方式

华为云开发者联盟

Java 工具 高并发 线程池 Executors

餐饮店加盟该如何推广?

获客I3O6O643Z97

抖音、快手获客系统

女朋友问我 LB 是谁?

程序员鱼皮

Java 负载均衡 架构 后端 技术选型

【“互联网+”大赛华为云赛道】GaussDB命题攻略:支持三种开发语言,轻松完成数据库缓冲池

华为云开发者联盟

数据库 华为云 GaussDB 互联网+ 缓冲池

Go- 切片的定义

HelloBug

slice Go 语言 切片

面试必备常见存储引擎与锁的分类,请查收

阿Q说代码

MySQL innodb 共享锁 意向锁 8月日更

我在组内的Nacos分享

捉虫大师

微服务 dubbo nacos 服务发现

关于告警管理的软件,您还只知道Pagerduty吗?

睿象云

运维 告警 运维平台 智能告警 告警管理

干货!4大实验项目,深度解析Tag在可观测性领域的最佳实践!

观测云

可观测性 dataflux tag ngix

docker入门:极简方式发布springboot

小鲍侃java

8月日更

注意,开源Redis被爆高危漏洞,攻击者可远程注入代码

华为云数据库小助手

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

仿照Hystrix,手写一个限流组件

码农参上

限流 Hystrix 8月日更

OpenJDK源码下载

4ye

源码 后端 JVM 8月日更

学习心得-架构训练营-第一课

Fm

HTTP协议之:HTTP/1.1和HTTP/2

程序那些事

HTTP 程序那些事 HTTP协议 http2

微服务容错组件Hystrix设计分析

慕枫技术笔记

分布式 后端 熔断

分析微信朋友圈的高性能复杂度

Rabbit

架构实战营

公司新来了一个质量工程师,说团队要保证 0 error,0 warning

华为云开发者联盟

DevOps 程序 华为云DevCloud 静态代码检查 质量工程师

云小课 | 华为云KYON之VPC终端节点

华为云开发者联盟

云小课 KYON企业级云网络 VPC终端节点

架构训练营 模块一作业

初一

教你使用ApiPost中的全局参数和目录参数

Proud lion

大前端 测试 后端 Postman 开发工具

使用mock模拟登录接口数据

与风逐梦

大前端 后端 Mock

模块一作业

紫云

架构实战营

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