我有多个元素,我想给这些属性:
这在DTD中是否有可能,或者我必须手动完成吗?
(另外,虽然我在这里,但我认为以这种方式声明margin
和padding
属性并不是一个好主意.有没有人知道更好的方法?)
每个元素都需要有自己的属性声明(ATTLIST
).但是,您可以使用参数实体来重用其中的大部分内容.
例...
<!ENTITY % attrs 'width CDATA "0" height CDATA "0" margin CDATA "0 0 0 0" padding CDATA "0 0 0 0" rotation CDATA "0" halign (left|center|right|full) "center" valign (top|middle|bottom|full) "middle"'> <!ELEMENT elem1 (#PCDATA)> <!ATTLIST elem1 %attrs;> <!ELEMENT elem2 (#PCDATA)> <!ATTLIST elem2 %attrs;>
这是另一个示例,它混合了参数实体引用以及仅出现在各个元素上的属性.
<!ELEMENT elem1 (#PCDATA)> <!ATTLIST elem1 attr1 CDATA #IMPLIED %attrs; > <!ELEMENT elem2 (#PCDATA)> <!ATTLIST elem2 attr2 CDATA #IMPLIED %attrs; >