使用 AND 运算符的 DTD 混合内容
DTD Mixed Content with AND operator
我用 Framemaker .edd 创建了一个 .dtd。
我用旧脚本做了这个,但它会产生一些错误...
不知道可不可以,我找了很久都没有成功。
该脚本创建如下元素定义:
<!ELEMENT BodyText
((#PCDATA | Bold | Data | Link | Subscript | Graphic | SpecialCharacter |
SpecialTerm | Superscript | Italic | E_Norm | H_Norm | WebCable | fm:Linefeed |
fm:UserVar)*, Index*, CCN*) >
我想我想生产什么很清楚:
第一个括号中的元素可以按预期出现。其他元素(索引和 CCN)必须按该顺序出现,并且在这些元素之后应该不可能添加其他元素之一。
谁能提供解决方案?
您想要的内容模型 无法 使用 XML 内容模型来表达,因为 XML 需要具有 #PCDATA
的内容模型(混合内容模型) 根据 Extensible Markup Specification, section 3.2.2 具有 (#PCDATA)
或 (#PCDATA | element1 | ...)
的形式。 FrameMaker EDDs/FrameMaker SGML 可以使用不受限制的完整 SGML,它没有此限制(以及对 SGML XML subset/profile 施加的所有其他限制,例如 XML,以及其他)。
我用 Framemaker .edd 创建了一个 .dtd。 我用旧脚本做了这个,但它会产生一些错误...
不知道可不可以,我找了很久都没有成功。
该脚本创建如下元素定义:
<!ELEMENT BodyText
((#PCDATA | Bold | Data | Link | Subscript | Graphic | SpecialCharacter |
SpecialTerm | Superscript | Italic | E_Norm | H_Norm | WebCable | fm:Linefeed |
fm:UserVar)*, Index*, CCN*) >
我想我想生产什么很清楚:
第一个括号中的元素可以按预期出现。其他元素(索引和 CCN)必须按该顺序出现,并且在这些元素之后应该不可能添加其他元素之一。
谁能提供解决方案?
您想要的内容模型 无法 使用 XML 内容模型来表达,因为 XML 需要具有 #PCDATA
的内容模型(混合内容模型) 根据 Extensible Markup Specification, section 3.2.2 具有 (#PCDATA)
或 (#PCDATA | element1 | ...)
的形式。 FrameMaker EDDs/FrameMaker SGML 可以使用不受限制的完整 SGML,它没有此限制(以及对 SGML XML subset/profile 施加的所有其他限制,例如 XML,以及其他)。