DTD中的ATTLIST怎么定义元素属性_技术教程_七洗推广网

DTD中的ATTLIST怎么定义元素属性

#技术教程 发布时间: 2025-12-25
DTD中ATTLIST声明属性须按顺序写全四部分:元素名、属性名、属性类型、默认声明;常用类型有CDATA、ID、IDREF、枚举和NMTOKENS;默认声明包括#REQUIRED、#IMPLIED、#FIXED"值"或直接字符串。

DTD 中用 ATTLIST 声明元素的属性,语法固定、逻辑清晰,关键在写对四部分:元素名、属性名、属性类型、默认声明(含约束条件)。

基本语法结构

必须按顺序写出这四个成分,缺一不可(除非默认声明被省略且满足规则):

  • 元素名:该属性归属的 XML 元素名称,如 bookperson
  • 属性名:属性自身名称,如 idlang
  • 属性类型:决定属性值允许的内容形式,常见有:CDATAIDIDREF(a|b|c)(枚举)、NMTOKENENTITY
  • 默认声明:控制该属性是否必须出现、能否省略、是否固定,包括:#REQUIRED#IMPLIED#FIXED "值",或直接写一个默认字符串(如 "en"

四种默认声明怎么选

这是最容易出错的地方——不同约束对应不同的写法要求:

  • #REQUIRED:XML 实例中必须显式写出该属性,不能省略,也不允许写空值;后面不能跟默认值
  • #IMPLIED:完全可选,不写也合法;后面不能跟默认值
  • #FIXED "xxx":属性值强制为指定字符串;XML 中可以不写这个属性,解析器会自动补上;必须带引号内的值
  • 直接写字符串(如 "default"):表示该属性可选,若未提供则取此默认值;不能和 #REQUIRED / #IMPLIED / #FIXED 同时出现

常用属性类型举例

不是所有类型都常用,掌握以下五种就够应付绝大多数场景:

  • CDATA:任意文本,支持中文、数字、符号,最通用
  • ID:必须全局唯一、符合标识符规则(如不能以数字开头),用于锚点或引用
  • IDREF:值必须是文档中某个 ID 属性的值,实现单向关联
  • (html|xml|json):枚举类型,只允许括号内列出的几个值之一
  • NMTOKENS:多个合法标识符,用空格分隔,适合标签、权限列表等

一次声明多个属性更清晰

推荐把同一元素的所有属性写在一条 ATTLIST 中,结构紧凑、易维护:

  title CDATA #REQUIRED
  category (fiction|nonfiction|reference) "fiction"
  published CDATA #IMPLIED
  version CDATA #FIXED "1.0">

这样定义后, 是合法的,而漏掉 idtitle 就会报错。

技术教程SEO

上一篇 : 又一款性感女巨人游戏?玉足践踏装甲车化为齑粉

下一篇 : 韩国游戏产业新变途 正在集中资源到高收益游戏
品牌营销
专业SEO优化
添加左侧专家微信
获取产品详细报价方案