首页 > 解决方案 > 为 XML 编写 BNF 语法

问题描述

我想为一个 XML 程序写一个 BNF 语法,但是我有一些问题。我正在尝试为两个元素编写规则,Worksheet并且Table. Worksheet具有可选Table元素、必需特征Name和可选特征Protected。另一方面,Table具有可选ColumnRow元素,如果同时存在和可选特​​征,则必须与此序列一起出现ExpandedColCountExpandedRowCount并且StyleID。我的规则是:

Worksheet ::= Name Worksheet
            | Name Protected Worksheet
            | Worksheet Table Worksheet
            | Protected Name Worksheet
            |
            ;

Table ::= ExpandedColumnCount Table
        | ExpandedRowCount Table
        | StyleId Table
        | Column Row Table
        | Column Table
        | Row Table
        |
        ;

问题是第一条规则也接受TableTable Name而第二条规则接受Row Column, Column StyleID。有什么办法解决这个问题吗?

标签: bnf

解决方案


推荐阅读