RELAX NG:表示 XML 词汇表的语法规则

编程入门 行业动态 更新时间:2024-10-28 05:21:31

RELAX NG:表示 XML <a href=https://www.elefans.com/category/jswz/34/1762307.html style=词汇表的语法规则"/>

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/> 模式 匹配任意文本, 包括空文本。 但是分离标签的空白符不考虑.
待续

更多推荐

RELAX NG:表示 XML 词汇表的语法规则

本文发布于:2024-02-12 00:03:09,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1684464.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:词汇表   语法   规则   RELAX   NG

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!