2011-10-21 76 views
0

我遇到了一个自定义XML DOCTYPE的问题,其中没有任何元素似乎被PHPStorm注册。XML检查忽略声明的元素

因此,我所得到的只是一吨红色。我已经使用了文档中建议的“ALT-ENTER - > Fetch DTD”方法,该方法摆脱了DOCTYPE URI不被解析......但是这些元素仍然不被认为是有效的。还有什么需要做的吗?

这里如果你想重现该问题的一个片段:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE ONIXmessage SYSTEM http://www.editeur.org/onix/2.1/short/onix-international.dtd> 
<ONIXmessage release="2.1"> 
    <header> 
     <m174>foo</m174> 
     <m182>bar</m182> 
    </header> 
</ONIXmessage> 
+0

您应该注明您的系统标识符,然后查看由@jasso答案。 –

+0

似乎.dtd包含几十个带有相对路径的.ent文件,其中一些在指定的URI下无法访问。我下载了完整的.dtd,.elt和.ent文件集,并用本地副本的引用取代了URI--现在检查工作正常。 – cjoy

回答

1

快速验证表明,你的文档是无效的。在<header>元素之后,需要有这些元素中的至少一个:

  • <product>
  • <mainseriesrecord>
  • <subseriesrecord>
+0

虽然这是肯定的,但它应该只为元素抛出检查错误,而不是它的正确子元素。感谢你的努力! – cjoy