如何利用XML官方语法生成平行XML元素序列?是否遗漏规则?
XML平行元素序列的生成规则解答
你没遗漏原有XML语法规则,而是误解了XML文档的结构要求——XML必须有且仅有一个根元素,平行元素序列不能直接作为文档的顶层内容,必须被包裹在一个根元素内部。
结合原语法的解释
原W3C XML语法规则中:
document ::= prolog element Misc*明确要求文档顶层只能有一个根element- 根元素的
content规则content ::= CharData? ((element | Reference | CDSect | PI | Comment) CharData?)*允许在根元素的内容中包含任意多个子element,这正是你需要的平行元素序列的生成方式。
正确生成平行元素的示例
要得到多个平行的<p>元素,符合规范的写法是将它们包裹在一个根元素内,比如:
<root> <p>hello world</p> <p>hello world</p> <p>hello world</p> <p>hello world</p> </root>
这个结构完全匹配原语法:
- 整个文档是
prolog+ 根元素<root>+ 可选的Misc内容 - 根元素的
content包含了多个<p>元素,完全符合content规则的定义。
关于你修改后的语法的说明
你修改后的语法允许文档顶层存在多个元素,这不符合XML的**格式良好(Well-Formed)**规范,这样的文档无法被标准XML解析器正常处理。
内容的提问来源于stack exchange,提问作者LI.LE
相关产品推荐
相关产品推荐

