<!ATTLIST 元素名 属性名称 属性类型 属性特点>

1.属性类型

类型 含义
CDATA 纯文本
enumerated 枚举类型
ID 以属性的方式唯一标识改元素,必须以字母开头
IDREF

属性值引用已定义的id值,复数形式可以应用多个id,

以空格隔开

IDREFS
entity 取值为一个已定义的实体
entities 可以包含多个实体,中间用空格隔开
nmtoken 属性值只能为字母,数字,下划线 , '.' ,  ':' ,  '-' 组成
nmtokens 可以右多个nmtoken组成,中间用空格隔开
notation  

(1)CDATA

e.g

<!ATTLIST 木偶 
姓名 CDATA #REQUIRED
年龄 CDATA #REQUIRED
> <木偶 姓名="pi Nuocao" 年龄="12">

(2) ID类型

<!ATTLIST student
number ID #REQUIRED
name CDATA #REQUIRED
> <student number="a001" name="张三" />

(3)IDREF,IDREFS

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE family[
<!ELEMENT family (person+)>
<!ELEMENT person EMPTY>
<!ATTLIST person
relId ID #REQUIRED
parenetId IDREFS #IMPLIED
name CDATA #REQUIRED
>
] > <family>
<person redId="p1" name="爸爸" />
<person redId="p2" name="妈妈" />
<person redId="p3" parenetId="p1 p2" name="儿子" />
</family>

(4)enumerated枚举类型

<!ATTLIST person
gender (男|女) #REQUIRED>

2.属性特点

名称 定义 说明方式
#REQUIRED 必须 ..
#IMPLIED 可选 ..
#FIXED value 固定 <!ATTLIST person classId CDATA #FIXED "软件一班">
default value 默认值 <!ATTLIST person classId CDATA  "软件一班">

使用dtd--属性声明的更多相关文章

  1. HTML编码规则、CSS属性声明顺序--简介

    From AmazeUI:http://amazeui.org/getting-started/html-css-guide HTML 属性顺序 HTML 属性应当按照以下给出的顺序依次排列,确保代码 ...

  2. iOS: 属性声明strong和retain竟然不一样

    今天和同事在处理一处用strong声明的Block属性引发的问题时偶然发现的.在诸多教程中都会讲到:声明属性时用strong或者retain效果是一样的(貌似更多开发者更倾向于用strong).不过在 ...

  3. 属性声明(property declarations), 自定义属性,自动生成 get 和 set 方法,getter 和 setter

    属性声明(property declarations), 自定义属性,自动生成 get 和 set 方法,getter 和 setter 一.普通的get 和set 属性. 一般的get 和set 属 ...

  4. iOS:不同属性声明方式的解析

    代码: /* 属性声明方式说明: ----------------------- 1 @interface ... { id name } @end 这样声明的属性其实可以认为是private属性,因 ...

  5. iOS的属性声明:retain和strong的区别

    声明属性时用strong或者retain效果是一样的(貌似更多开发者更倾向于用strong).不过在声明Block时,使用strong和retain会有截然不同的效果.strong会等于copy,而r ...

  6. NSMutable属性声明时为什么不能使用copy

    在iOS开发里面我们经常会进行NSMutable(可变类型的类,常用的如NSMutableString,NSMutableArray,NSMutableDictionary,NSMutableData ...

  7. nsmutablestring 属性声明为copy程序崩溃了

    obj.mutableStr = (NSMutableString *)[[NSMutableString alloc] initWithString:@"Hello"]; NSL ...

  8. React-Native 之 GD (五)属性声明和属性确认 及 占位图

    1.在 React-Native 创建的自定义组件是可以复用的,而开发过程中一个组件可能会由多个人同时开发或者多个人使用一个组件,为了让开发人员之间减少沟通成本,我们会对某些必要的属性进行属性声明,让 ...

  9. schema中属性声明

    <attribute name="属性名"   default="默认值"  fixed="固定值" use="option ...

  10. Java中什么是匿名对象,空参构造方法输出创建了几个匿名对象,属性声明成static

    package com.swift; //使用无参构造方法自动生成对象,序号不断自增 public class Person { private static int count; //如果在定义类时 ...

随机推荐

  1. Tomcat 集群 + Redis Session 共享出现 Session 瞬间失效问题

    写在前面的话 写这篇博客出于公司最近要迁移到新的云上面且对之前的资源,架构做一个升级. 本来是一个不大的项目,旧环境旧一个 TOMCAT 跑起来,不过出于高可用考虑,新环境决定使用 TOMCAT 集群 ...

  2. java 学习第三篇if判断

    JAVA 判断 单词: if 如果 else 否则 单分支: If(条件) { 代码块 } If是一个判断语句.代码格式如上. If括号的内是表达式.如果表达式值是成立的便执行代码块.之后在执行IF语 ...

  3. python添加图片验证码

    1.创建验证码模块 #!/usr/bin/env python # -*- coding:utf-8 -*- import random from PIL import Image, ImageDra ...

  4. C++期中考试

    第一题1. 补足日期类实现,使得能够根据日期获取这是一年中第多少天.(12分) date.h #ifndef DATE_H #define DATE_H class Date { public: Da ...

  5. Easyui-交互式消息弹出框

    由于项目在优化的时候需要用到弹出框,按自己的想法是傻傻的用一些alert直接弹出得了,但是这样用户体验度不是特别好,影响界面美观,所以自己还是用了封装好的easyui给的消息框,怎么用呢,这个里面很有 ...

  6. python 矩阵(mat)操作

    1.矩阵的创建 由一维或二维数据创建矩阵 a1=array([1,2,3]); a1=mat(a1); data1=mat(zeros((3,3))); #创建一个3*3的零矩阵,矩阵这里zeros函 ...

  7. 5.Min Stack(能返回最小数的栈)

    Level:   Easy 题目描述: Design a stack that supports push, pop, top, and retrieving the minimum element ...

  8. [JavaScript]Prototype继承

    JavaScript相对于其他的编程语言是比较简单的,只要吃透了Prototype和Closure(闭包),基本上就可以说精通JavaScript了. JavaScript里如何实现向Java语言的O ...

  9. 毕业设计 python opencv实现车牌识别 矩形矫正

    主要代码参考https://blog.csdn.net/wzh191920/article/details/79589506 GitHub:https://github.com/yinghualuow ...

  10. 阿里Java开发规约(2)

    本文是对阿里插件中规约的详细解释二,关于插件使用,请参考这里 及时清理不再使用的代码段或配置信息. 说明:对于垃圾代码或过时配置,坚决清理干净,避免程序过度臃肿,代码冗余 Positive examp ...