【发布时间】:2017-03-26 17:21:16
【问题描述】:
我创建了一个 XML 文件,该文件利用 .dtd 文件中定义的实体来缩写重复内容。该文件还引用了一个用于验证的 XSD 文件。 .dtd 文件不用于验证,除了<!ENTITY ...> 声明和 cmets 之外,它不包含任何内容。
MS Visual Studio 接受这种安排并且不会标记任何错误。 (我已经通过暂时扰乱 XML 文件的内容并观察到出现预期的验证错误来测试 XSD 确实被用于验证。)但是,我很好奇这种安排是否严格符合 DTD 文件的方式应该可以工作,所以我尝试将这 3 个文件提交给基于 Web 的验证器。基于 Web 的验证器吐出 2,000 个左右的错误列表,这些错误的形式都是“必须声明元素类型“元素名称””。这表明它希望 DTD 文件包含其他内容,用于验证目的。
Visual Studio 的观察行为对我很有用,但它在技术上是否偏离了这里的相关标准?
XML 文件的前几行格式如下:
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE FooCollection SYSTEM "entities.dtd">
<FooCollection
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FooCollection.xsd">
...
【问题讨论】:
标签: xml visual-studio validation xsd dtd