我试图用外部DTD验证我的XML文件。但我每次都会收到这个错误。
Document root element "A", must match DOCTYPE root "test".
我无法弄清楚这一点。
我的xml文件的想法是它需要尽可能短。 我认为它很好,但就像我说的,我不会验证。有人有想法吗?
这是我的XML文件
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE test SYSTEM "test.dtd">
<A>
<B>
<F>name</F>
</B>
<D>lastname</D>
<F>name</F>
</A>
我的DTD
<!ELEMENT A (B, (C|D), E?, (F, G?)+)>
<!ELEMENT B (F|G)+>
<!ELEMENT D (#PCDATA|C)*>
<!ELEMENT F (#PCDATA)>
<!ELEMENT G (#PCDATA)>
<!ELEMENT C (#PCDATA)>
<!ELEMENT E (#PCDATA)>
由于
答案 0 :(得分:14)
Doctype声称根元素为<test>
,但您使用了<A>
<!DOCTYPE test
^^^^
更改Doctype,使其声明root为<A>
或更改XML和DTD以使用<test>
。
答案 1 :(得分:4)
<!DOCTYPE test SYSTEM "test.dtd">
声明符合DTD的文档的根ELEMENT称为test
。你想要:
<!DOCTYPE A SYSTEM "test.dtd">