DTD中的条件部分(Conditional Sections) INCLUDE/IGNORE怎么用

4次阅读

DTD条件部分通过include/IGNORE关键字配合参数实体实现动态声明控制,用于多版本、多语言或单位制适配,必须位于外部DTD或内部子集的声明区,且IGNORE会强制忽略其内所有嵌套条件节。

DTD中的条件部分(Conditional Sections) INCLUDE/IGNORE怎么用

DTD中的条件部分(Conditional Sections)用于在解析时动态决定是否包含或忽略某段声明,核心是 INCLUDEIGNORE 关键字。它们不直接写在xml文档里,而是嵌套在DTD中,配合参数实体控制逻辑分支,常见于需要适配多版本、多语言或不同单位制的场景。

条件部分必须出现在外部DTD或内部子集的DTD声明区,且只能由XML处理器识别处理

比如要为建筑图纸DTD同时支持英制与公制单位,可这样组织:

  • 定义参数实体标记开关

    DTD中的条件部分(Conditional Sections) INCLUDE/IGNORE怎么用

    Musho

    AI网页设计Figma插件

    DTD中的条件部分(Conditional Sections) INCLUDE/IGNORE怎么用 76

    查看详情 DTD中的条件部分(Conditional Sections) INCLUDE/IGNORE怎么用

  • 使用条件节包裹对应声明
    ]]>
    ]]>

注意:%English; 展开后变成 处理器就包含其中内容;换成 %Metric; 就变成 ,整块被跳过。

嵌套需谨慎
IGNORE 包裹的部分,其内部所有子条件节(哪怕写着 INCLUDE)也一并忽略。所以不能靠内层翻转来“绕过”外层忽略。

实际使用中几乎不用裸写 INCLUDE/IGNORE
而是通过参数实体间接控制,好处是:

  • 同一份DTD文件可被多个XML文档复用
  • XML文档可通过重定义参数实体切换行为(例如在内部子集里写
  • 更易维护,避免硬编码逻辑

基本上就这些。

text=ZqhQzanResources