XML的notation声明语法是什么?

来源:Golang编程网作者:天穹小白头衔:草根站长
导读:本期聚焦于小伙伴创作的《XML的notation声明语法是什么?》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《XML的notation声明语法是什么?》有用,将其分享出去将是对创作者最好的鼓励。

XML的notation声明是在DTD(文档类型定义)中使用的语法结构,主要作用是标识非XML格式的数据类型,比如图片、视频、其他格式的文档等,方便XML解析器理解对应外部资源的格式。它通常和外部实体、NOTATION属性配合使用,是XML规范中处理非XML数据的重要部分。

XML的notation声明语法是什么?

XML notation声明的基础语法

notation声明的标准语法格式如下:

<!NOTATION 记号名称 SYSTEM "外部标识">
<!NOTATION 记号名称 PUBLIC "公共标识" "外部标识">

两种语法格式的区别在于标识方式不同,第一种使用SYSTEM关键字指定系统级的外部标识,第二种使用PUBLIC关键字指定公共标识,同时可以附带系统外部标识。其中记号名称是自定义的标识符,需要符合XML名称的命名规则,不能包含空格和特殊字符。

语法各部分的含义

  • <!NOTATION:声明notation的关键字,固定写法,不区分大小写,通常大写以符合DTD的书写习惯。
  • 记号名称:自定义的名称,用于后续在DTD或XML元素中引用该notation,比如可以命名为JPEG、PDF等。
  • SYSTEM/PUBLIC:二选一的关键字,SYSTEM表示使用系统本地的标识,PUBLIC表示使用公共的标识,公共标识通常是标准化的格式标识。
  • 外部标识:用于说明对应数据格式的标识信息,比如MIME类型或者其他格式标识字符串。

完整使用示例

下面是一个完整的DTD示例,包含notation声明以及对应的使用场景:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE 文档 [
    <!NOTATION jpeg SYSTEM "image/jpeg">
    <!NOTATION png PUBLIC "-//W3C//DTD PNG 1.0//EN" "image/png">
    <!ELEMENT 图片 EMPTY>
    <!ATTLIST 图片
        格式 NOTATION (jpeg|png) #REQUIRED
        路径 CDATA #REQUIRED
    >
]>
<文档>
    <图片 格式="jpeg" 路径="test.jpg"/>
    <图片 格式="png" 路径="test.png"/>
</文档>

在这个示例中,首先声明了jpeg和png两个notation,然后在图片元素的格式属性中,限制属性值只能是这两个notation名称,这样就能明确每个图片元素的格式类型,解析器可以根据notation的定义处理对应的资源。

注意事项

  • notation声明只能出现在DTD内部子集或者外部DTD文件中,不能出现在XML文档的正文部分。
  • 记号名称在整个DTD范围内需要唯一,不能重复声明同名的notation。
  • 外部标识的内容没有固定格式要求,只要能准确标识对应数据格式即可,通常建议使用标准的MIME类型作为SYSTEM的外部标识。
  • 不是所有的XML解析器都会处理notation声明,部分轻量级解析器可能会忽略这部分内容,使用时需要根据解析器的特性调整。

XMLnotation声明语法格式DTD修改时间:2026-07-15 08:09:09

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。