在了解了 XML 的 DTD 之后,我真的很喜欢这个概念并希望做以下事情:我希望可以选择声明或不声明一个属性,这样如果它声明了,它就是一组选项 x,y 中的一个,z,如果未声明,则认为其值为 m。我尝试了以下方法:
type (x|y|z) "m"
但我得到了(使用读取文件的java):
The enumerated type list must end with ')' in the "type" attribute declaration.
整个xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root [
<!ATTLIST item
name ID #REQUIRED
type (type a|type b) "type a"
>]>
<root>
<item name="name1" type="type a" />
<item name="name2" />
</root>
如果我没有说明类型,作为第二项,我会收到错误消息。我希望它被暗示,如果我没有在 xml 中声明它,默认值是类型 a。此外,另一个(位)不相关的问题是我必须在 ATTLIST 中声明我的所有属性,否则它们会产生错误。有没有办法绕过它?目前我所做的是用#IMPLIED 声明它们,但也许它不是正确的方法