DTD – 属性

DTD 属性声明()最全详解

(只讲属性,讲到你闭眼都能写)

1. 基本语法(永远就这两种写法)

<!-- 写法1:一个元素一种属性写法(最常见) -->
<!ATTLIST 元素名 属性名 属性类型 默认声明>

<!-- 写法2:一个元素一次写完所有属性(推荐!清晰) -->
<!ATTLIST 元素名
          属性1    类型1    默认声明1
          属性2    类型2    默认声明2
          属性3    类型3    默认声明3>

2. 10 种属性类型(实际常用只有前 5 种)

类型含义典型例子
CDATA普通字符串(最常用)name=”张三” version=”2.0″
ID文档内唯一标识(不能重复,不能以数字开头)id=”book001″
IDREF / IDREFS引用某个 ID(单/多)owner=”user123″ members=”u1 u2 u3″
NMTOKEN / NMTOKENS合法名字令牌(不能有空格)type=”book” categories=”IT 编程”
枚举值下拉菜单,只能选列出来的(male
ENTITY引用外部非解析实体(图片、文件)src=”logo”(配合 )
NOTATION引用记法(基本没人用)

3. 4 种默认声明(必须背)

声明关键字含义示例
#REQUIRED必须写!不写就报错id ID #REQUIRED
#IMPLIED可写可不写(可选)lang CDATA #IMPLIED
“默认值”不写就自动用这个默认值status CDATA “在售”
#FIXED “值”固定值,写也必须是这个值,不写自动补上version CDATA #FIXED “1.0”

4. 终极实战模板(直接抄)

<!ATTLIST 图书
          id          ID         #REQUIRED          <!-- 必须有且唯一 -->
          标题        CDATA      #REQUIRED
          分类        (计算机|小说|经管|少儿)  "计算机"   <!-- 枚举+默认 -->
          价格        CDATA      "0.00"             <!-- 默认值 -->
          是否在售    (yes|no)   "yes"              <!-- 枚举+默认 -->
          版本        CDATA      #FIXED "2.0"       <!-- 固定值 -->
          作者ID      IDREF      #IMPLIED           <!-- 引用某个作者的ID -->
          标签        NMTOKENS   #IMPLIED           <!-- 可多个,用空格分 -->
          封面        ENTITY     #IMPLIED>          <!-- 引用外部图片实体 -->

5. 高频组合记忆表(见到就能秒写)

需求描述DTD 一行写法
必须有唯一 idid ID #REQUIRED
xml:lang 可选xml:lang CDATA #IMPLIED
性别,必填sex (male
状态,默认“启用”status (启用
版本固定为 1.0version CDATA #FIXED “1.0”
可选 class 属性class CDATA #IMPLIED
多个样式类class NMTOKENS #IMPLIED
引用其他元素的 idparent IDREF #IMPLIED
多图轮播images ENTITY #IMPLIED + 配合多个 ENTITY 定义

6. 参数实体复用属性(高级但超好用)

<!-- 先定义公共属性宏 -->
<!ENTITY % common.attrs "
          id      ID      #IMPLIED
          class   CDATA   #IMPLIED
          style   CDATA   #IMPLIED
          title   CDATA   #IMPLIED">

<!-- 所有标签一键复用 -->
<!ATTLIST div   %common.attrs;>
<!ATTLIST p     %common.attrs;>
<!ATTLIST img   %common.attrs; 
                src     CDATA   #REQUIRED
                alt     CDATA   #IMPLIED>

7. 经典错误 vs 正确写法

错误写法正确写法错误原因
不能在 ATTLIST 里写具体值
#REQUIRED 必须大写
id CDATA #REQUIRED想唯一用 ID,不是 CDATA

现在你已经彻底掌握 DTD 属性了!
想直接拿走一个「完整博客系统属性模板」或「电商商品全属性模板」吗?
回复“博客属性”或“商品属性”,我立刻甩给你现成的!

文章已创建 2679

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部