我正在学习编写XML和相关的DTD,我想知道我是否可以将某些内容组合在一起!ATTLIST。
例如:
我有一个元素weight
,我希望(kg|lb)
作为选项,但将"kg"
设置为默认值。这些都不是必需的,因此状态为#IMPLIED
,但我也希望默认权重为“1”。
我可以合法地把所有这些放在一行:
<!ELEMENT weight (#PCDATA)>
<!ATTLIST weight unit CDATA "1" (kg|lb) "kg" #IMPLIED>
或者我可以这样做:
<!ELEMENT weight (#PCDATA)>
<!ATTLIST weight unit CDATA>
<!ATTLIST weight unit "1" #IMPLIED>
<!ATTLIST weight unit (kg|lb)>
<!ATTLIST weight unit "kg" #IMPLIED>
我怀疑两者都存在问题,而且我对如何将这些功能结合起来感到有些困惑(或者我甚至可以) - 所以我真的很感激这方面做了一些指导。
答案 0 :(得分:1)
好的,我通过以下方式开展工作,虽然它可能不是“公认的做法”方式:
<!ELEMENT weight (#PCDATA)>
<!ATTLIST weight qty CDATA "1">
<!ATTLIST weight unit CDATA (kg|lb) "kg">
我不得不将值分解为它自己的属性(现在我考虑它是有意义的),并删除#IMPLIED,因为我通过设置默认值来读取某处,无论如何它隐含了。
希望这会对其他人有所帮助(假设有正确的方法)
干杯