我有一个属性:
preprocessFile CDATA #IMPLIED
我想要这个属性:
我如何在DTD中表达这一点?为了最小化参数,请假设我知道rng / xsd并且不能将它们用于此特定任务。
答案 0 :(得分:2)
使用XML DTD无法验证如果存在属性,则不能为空。
以下是您的选择:
preprocessFile CDATA "novalueprovided"
在任何一种情况下,您都可以在XML解析代码中将该属性强制为“缺席或不存在(如果存在)”。
答案 1 :(得分:1)
我同意DwB,这超出了DTD,即使有上述建议仍然允许明确指定空字符串。但由于DTD也不允许数据类型规范,因此这适用于图片,因为您不仅需要字符串数据类型,还需要长度限制。当然任何真正的模式语言,如RNG(RelaxNG)或XML:Schema都可以轻松支持这样的检查,RNG在这里给出:
<optional>
<attribute name="preprocessFile">
<data type=string">
<minLength value="1"/>
</data>
</attribute>
</optional>