W3C XML Recommendation用于表示定义的语言

时间:2016-03-05 18:54:44

标签: xml specifications w3c

我正在尝试阅读W3C对XML的建议,我发现自己对用于定义事物的语言感到有点困惑,使用::=符号的语言。

大多数情况下,这些定义看起来像正则表达式:

STag       ::=      '<' Name (S Attribute)* S? '>'

但我不时会遇到奇怪的符号,如下所示:

Comment    ::=      '<!--' ((Char - '-') | ('-' (Char - '-')))* '-->'

Char - '-'是什么意思?匹配Char匹配排除'-'的所有内容?

我在哪里可以找到该语言的正式定义?我试图通过&#34; :: =&#34;但谷歌只是忽略了它。 W3C推荐本身并没有任何关于此事的信息。

2 个答案:

答案 0 :(得分:2)

这是BNF(Backus Naur Form)的众多变体之一 - 正如您所指出的那样与正则表达式有相似之处。

根据我的经验,“除”运算符(“ - ”)有点不寻常。 (Char - '-')表示“任何与Char匹配但不匹配' - '”的东西 - 也就是说,除了连字符之外的任何字符。

规范的第6部分描述了XML规范使用的BNF的特殊风格:

https://www.w3.org/TR/REC-xml/#sec-notation

答案 1 :(得分:0)

来自XML recommendation

  

本规范中使用a给出了XML的形式语法   简单的扩展Backus-Naur形式(EBNF)表示法。

并解释:

  

'string'匹配匹配在其中的给定的文字字符串   单引号。