【发布时间】:2021-01-05 06:08:51
【问题描述】:
我有许多使用相同主文档类型定义 (mrinitialman.dtd) 的 XML 文档。某些元素会根据它们所在的页面进行小幅调整:例如,SetPage 元素,其定义如下:
<!ELEMENT SetPage ((SetImgInf|SetRecInf)?, SetPageName,SetPageDesc?,%credits;)>
<!ELEMENT SetPageName (#PCDATA)>
<!ELEMENT SetPageDesc (#PCDATA)>
SetImgInf 和 SetRecInf 未在此文档类型定义中定义;它们在需要这些元素的文件的 doctype 子集中定义。
例如,recordings.xml 有一个文档类型声明:
<!DOCTYPE MainPage SYSTEM "../Site_Data/XML_Etc/mrinitialman.dtd"[
<!ELEMENT SetRecInf EMPTY>
<!ATTLIST SetRecInf recfile CDATA #REQUIRED>
]>
我在那里定义了 SetRecInf,因为它是 only 使用该元素的文件。
但是,有两个文件使用 SetImgInf:art_gallery.xml 和 photo_gallery.xml;他们的文档类型是这样的:
<!DOCTYPE MainPage SYSTEM "../Site_Data/XML_Etc/mrinitialman.dtd" [
<!ELEMENT SetImgInf EMPTY>
<!ATTLIST SetImgInf
imgkeywords CDATA #IMPLIED
imgfile NMTOKEN #REQUIRED
imgformat (jpg|gif|png|tff|bmp) #IMPLIED
thumbformat (jpg|gif|png|tff|bmp) #IMPLIED
>
]>
是否可以将该位放入它自己的 DTD 中,从而使 art_gallery.xml 和 photo_gallery.xml 有效地引用两个单独的外部文档类型定义?
【问题讨论】: