2016-03-05 84 views
1

我正在嘗試閱讀W3C關於XML的建議,並且我發現自己對用於定義事物的語言(使用::=表示法的語言)感到困惑。W3C XML推薦用於表示定義的語言

大多數時候這些定義看起來像正則表達式:

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

但是從我不時遇到奇怪的符號,像下面這樣:

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

什麼Char - '-'平均?匹配Char匹配的任何內容,不包括'-'

我在哪裏可以找到該語言的正式定義?我試圖通過「:: =」進行搜索,但Google忽略它。 W3C的建議本身並沒有關於此事的任何信息。

+0

這https://en.wikipedia.org/wiki/Backus%E2%80% 93Naur_Form或其衍生工具之一很可能。 –

+0

事實上,從那裏的鏈接,我到https://www.w3.org/TR/REC-xml/#sec-notation –

回答

2

這是BNF(Backus Naur Form)的很多變體之一 - 正如您指出的那樣,它與正則表達式有相似之處。

根據我的經驗,「except」運算符(「 - 」)有點不尋常。 (Char - '-')的意思是「任何與Char匹配且不匹配的東西」 - 「」 - 即除連字符以外的任何字符。

BNF的特定味道的XML規範使用在規範的第6節中描述:

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

0

XML recommendation

XML的正式語法使用 簡單的擴展巴科斯範式(EBNF)記號該說明書中給出。

,並解釋:

'串' 的 單引號中所給文字字符串匹配匹配。

相關問題