You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Oxygen验证时不接受DTD文档的DOCTYPE元素?

问题根源

你遇到的报错是因为混淆了DTD文件本身的语法和XML文件中引入DTD的DOCTYPE语法规则,两种常见错误场景的修复方案如下:

场景1:你将代码保存为了.dtd后缀的DTD文件

DTD文件本身不需要XML声明,也不需要用<!DOCTYPE []>包裹,直接写元素、属性等声明即可。你给出的极简示例修改后应为:

<!ELEMENT test (#PCDATA)>
<!ELEMENT vest (#PCDATA)>

你之前提到去掉<!DOCTYPE []>外层包裹后Oxygen不再报错,正是因为这才是DTD文件的正确写法。

场景2:你将代码保存为了.xml后缀的XML文件(使用内部DTD)

带内部DTD的XML文件除了声明和DOCTYPE定义,必须包含对应的根元素实例才符合XML良构要求,示例修改后应为:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE test [
<!ELEMENT test (#PCDATA)>
<!ELEMENT vest (#PCDATA)>
]>
<!-- 必须添加根元素内容 -->
<test>你的文本内容</test>

适配语料库标注场景的推荐方案

你需要做独立的DTD作为统一标注标准的话,按场景1的规则编写独立的.dtd文件,所有待标注的XML文件在头部引入该外部DTD即可,引入语法如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE 你的XML根元素名称 SYSTEM "你的DTD文件本地路径.dtd">
<!-- 后面跟你的XML标注内容 -->

内容的提问来源于stack exchange,提问作者Ingrid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 02:00:05