我为我最近的项目编译了一个.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,一切都没问题。我不知道你们是否知道如何帮助我,但如果你们尝试,我真的很感激。
答案 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都是理想的。)