写点什么

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

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

关注

评论

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

StarRocks Community Monthly Newsletter (Mar)

StarRocks

OLAP 存算分离架构 StarRocks 湖仓一体 数据库 大数据

阿里云OSS应对DDoS攻击策略

网络安全服务

阿里云 CDN 域名解析 DDoS DDoS 攻击

zk源码—会话的实现原理

电子尖叫食人鱼

Java

促销系统:促销活动、优惠券、优惠规则概念模型设计

量贩潮汐·WholesaleTide

重大升级| SecGPT V2.0:打造真正“懂安全”的大模型

云起无垠

Anolis OS 8.10 发布:软硬协同优化,满足多行业实际应用需求

OpenAnolis小助手

操作系统 龙蜥社区 龙蜥操作系统 Anolis OS

CAD怎么根据浮动范围选择圆

极客天地

数字先锋|文化传承新引擎:班智达科研项目云端腾飞!

天翼云开发者社区

云服务 教育数字化

云备份技术解析:云备份 CT-CBR 关键技术介绍

天翼云开发者社区

云备份

CAD怎么将实体转换为网格

极客天地

真正懂生产的工业智能体长啥样?一个评测告诉你答案

王吉伟频道

工业互联网 智能体 工业智能体 Agents 工业大模型

【IoTDB 线上小课 14】我们为什么要做树表双模型?

Apache IoTDB

Sentinel源码—ProcessorSlot的执行过程

电子尖叫食人鱼

[方案讨论]怎么把大量电话号码批量导入手机通讯录,联系人号码导入苹果iphone华为小米等手机

一码平川

通义灵码 Rules 库合集来了,覆盖Java、TypeScript、Python、Go、JavaScript 等

阿里云云效

阿里云 云原生 通义灵码

让我看看有多少人不知道Vue3中也能实现高阶组件HOC

不在线第一只蜗牛

Java JavaScript 前端

小白速进!30 天吃透低代码,全是超绝干货!

代码制造者

低代码 自学 无代码

赋能能源 | 智慧数据,构建更高效智能的储能管理系统

KaiwuDB

数据库 kwdb

Arthas watch (方法执行数据观测)

刘大猫

Arthas 图像处理 图像分割 光学成像 光电成像技术

1688代采系统功能深度解析:如何通过自动采集商品详情数据API接口实现高效运营

代码忍者

1688代采集运系统

MES助力电线电缆行业生产:从质量管控到追溯管理

万界星空科技

mes 电线电缆行业 制造业工厂 电线电缆mes 生产管理MES系统

Java 开发玩转 MCP:从 Claude 自动化到 Spring AI Alibaba 生态整合

阿里巴巴云原生

Java

虚拟化NFSoRDMA基础的分离式存储解决方案,用于AI工作负载

Sergey Platonov

性能测试 虚拟化 高性能计算, 高性能计算架构

《Operating System Concepts》阅读笔记:p733-p734

codists

CAD如何放大图纸

极客天地

Edge 浏览器推出 Copilot Vision:免费实时解析屏幕内容;Aqua Voice:极速 AI 语音输入工具丨日报

声网

京东3D空间视频生成技术探索与应用

京东零售技术

SvelteKit 最新中文文档教程(21)—— 最佳实践之图片

冴羽

前端 前端框架 React Svelte SvelteKit

深入研究:微店商品详情API接口详解

tbapi

微店商品详情接口 微店API 微店数据采集

通义灵码 Rules 库合集来了,覆盖Java、TypeScript、Python、Go、JavaScript 等

阿里巴巴云原生

阿里云 云原生 通义灵码

如何与Cursor结对编程?

RockBot

AI技术实践 cursor

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