RELAX NG:表示 XML 词汇表的语法规则
RELAX NG:表示 XML 词汇表的语法规则
RELAX-NG (读音是“relaxing”)也是一种XML schema定义语言。
RELAX-NG schema 定义了xml文档的结构和内容。而RELAX-NG schema本身是xml文档。
下面通过翻译小段来简单了解一下RELAX-NG。
以邮件地址通讯录addressBook的表述为例,xml 如下:
<addressBook><card><name>John Smith</name><email>js@example</email></card><card><name>Fred Bloggs</name><email>fb@example</email></card> </addressBook>
DTD表述如下:
<!DOCTYPE addressBook [ <!ELEMENT addressBook (card*)> <!ELEMENT card (name, email)> <!ELEMENT name (#PCDATA)> <!ELEMENT email (#PCDATA)> ]>
而RELAX NG模式的表述为::
<element name="addressBook" xmlns=".0"><zeroOrMore><element name="card"><element name="name"><text/></element><element name="email"><text/></element></element></zeroOrMore> </element>
如果addressBook要求不能为空, 我们可以使用 oneOrMore来替换 zeroOrMore:
<element name="addressBook" xmlns=".0"><oneOrMore><element name="card"><element name="name"><text/></element><element name="email"><text/></element></element></oneOrMore> </element>
现在我们做些改变,让每个card 具有可选元素 note:
<element name="addressBook" xmlns=".0"><zeroOrMore><element name="card"><element name="name"><text/></element><element name="email"><text/></element><optional><element name="note"><text/></element></optional></element></zeroOrMore> </element>
注意<text/> 模式 匹配任意文本, 包括空文本。 但是分离标签的空白符不考虑.待续
最新文章
- 认证模式之Digest模式
- GridView选中状态
- java文件下载错误提示
- 所有结点对的最短路径问题之Johnson算法
- Pytorch、TorchVision、Python、Jetpack版本匹配问题
- input实现文字超出省略号功能
- [SOA介绍]什么是SOA?
- Linux下网络流量实时监控
- android图形框架之surfaceflinger分析(一)
- Idea 打包JAVA项目
- 父子组件间传值,父传子,子传父
- HTTPS单向认证双向认证
- 使用HTML写一个完整的注册页面
- Linux直接在通过终端打开图片文件
- 使用telnet登陆smtp服务发邮件(带身份验证)
- socat 虚拟串口在 linux OS中如何实现?
- Qt数据库(三)利用QSqlQuery类执行SQL语句(一)