<!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. Django之博客系统邮件分享博客

    在上一章中,我们创建了一个基础的博客应用,我们能在http://127.0.0.1:8000/blog/显示我们的博客.在这一章我们将尝试给博客系统添加一些高级的特性,比如通过email来分享帖子,添 ...

  2. html中img标签的url如何拼接变量

    <img id="pic" /> <script type="text/javascript"> var url = "xxx ...

  3. Codeforces Round #538 (Div. 2)D(区间DP,思维)

    #include<bits/stdc++.h>using namespace std;int a[5007];int dp[5007][5007];int main(){    int n ...

  4. Oracle复制表

    Oracle复制表分为只复制表结构或者结构和数据均复制两种: 只复制表结构 create table newTableName as select * from oldTableName where ...

  5. Python中的Numpy包

    通过本次学习你可以掌握Numpy Numpy介绍(获取地址)更多Numpy函数 numpy的主要对象是同质多维数组.也就是在一个元素(通常是数字)表中,元素的类型都是相同的. numpy的数组类被成为 ...

  6. luogu2480 [SDOI2010]古代猪文

    link 题意一开始没TM读懂... 就是给定一个\(G\le10^{10},N\le10^9\),求\(G^{\sum_{d|n}{n\choose d}}\),对999911659取模 由于999 ...

  7. 6.动态sql - if

    满足条件的数据 mapper.xml 满足if条件就执行,不满足就不加 <select id="selectStateByTitle" parameterType=" ...

  8. Qt 学习之路 2(6):Qt 模块简介

    Home / Qt 学习之路 2 / Qt 学习之路 2(6):Qt 模块简介  豆子  2012年8月26日  Qt 学习之路 2  20条评论 Qt 5 与 Qt 4 最大的一个区别之一是底层架构 ...

  9. POJ1004 Financial Management

    题目来源:http://poj.org/problem?id=1004 题目大意: Larry今年毕业并找到了工作.他开始赚很多的钱,然而他似乎总觉得不够.Larry决定好好掌控他的资产,解决他的财务 ...

  10. liunx 内置mail 发送邮件

    邮件配置文件/etc/mail.rc [root@ ~]# vim /etc/mail.rc #添加.修改如下内容 .com .com .com set smtp-auth-password=xxx ...