.dtd显示常量错误,而插入另一个文件时该行似乎是okey

时间:2015-11-12 08:24:26

标签: dtd tei

我为我最近的项目编译了一个.dtd,但是一行显示了常量错误:

<!ELEMENT front ((%model.frontPart;|%model.pLike;|%model.pLike.front;|%model.global;)*,(((_DUMMY_model.div1Like,(_DUMMY_model.div1Like|%model.frontPart;|%model.global;)*)|(%model.divLike;,(%model.divLike;|%model.frontPart;|%model.global;)*)),((%model.divBottom;),(%model.divBottom;|%model.global;)*)?)?)>

它说我错过了一个&#39;)&#39;从这一行开始,如果我将此代码插入另一个.dtd,一切都没问题。我不知道你们是否知道如何帮助我,但如果你们尝试,我真的很感激。

1 个答案:

答案 0 :(得分:0)

最有可能在您的DTD中声明一个或多个parameter entities

我相信这是因为如果我在你的问题中采用元素声明并删除所有%;以使这些参数实体引用元素名称,并且我创建了元素声明他们(仅用于测试),我没有得到任何验证错误(使用Xerces进行测试)。这排除了parens的问题。

例如,您的DTD有%model.frontPart;。您的DTD还需要声明如下:

<!ENTITY % model.frontPart "foo">

foo是实体值的任何值。

示例中的所有参数实体引用都需要一个实体声明:

%model.divBottom;
%model.divLike;
%model.frontPart;
%model.global;
%model.pLike.front;
%model.pLike;

将您收到错误的DTD与未收到错误的DTD进行比较;一个人没有所有的实体声明吗?

如果不是这种情况,请通过更多信息更新您的问题。 (整个DTD都是理想的。)