【发布时间】:2019-03-08 13:00:15
【问题描述】:
我正在向我们的 DITA DTD 添加一些元素(基于 dita 1.2 的 DTD 定制)
我想要的是允许一个 p 元素在同一个实体元素内一个接一个以上,但最多四次。
用户在 textcont-element 中必须有一个 P 元素,最多总共 4 个。
当使用下面的 DTD 时,我得到:
sect.mod:非确定性内容模型。元素 p 的一个实例可以同时匹配内容模型中的两个或多个标记。
<!ENTITY % textcont.content
"(%p;,
%p;?,
%p;?,
%p;?)
">
有没有办法写这个,所以我没有得到错误 - 基于最少 1 个 p 元素,最多 4 个 p 元素?
还是我必须使用
<!ENTITY % textcont.content
"(%p;,(%p;)*)">
这可能是对构建 DTD 的限制吗?
【问题讨论】:
-
考虑迁移到 Relax NG 语法。在这里你有更大的灵活性,你也可以直接在语法中包含 schematron 规则。