[疯狂xml讲义]对比xhtml1.0 DTD的笔记

本文深入探讨了DTD(Document Type Definition)在XML中的应用,包括DTD注释、参数实体定义、属性定义以及元素的定义等内容。通过实例解析,帮助读者理解如何利用DTD进行XML文档类型定义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题外话:-):尽管都Schema了,了解下DTD还是有好处的.就好比拿asp的站,得至少对asp使用有个大体了解吧

做个笔记:

1.DTD注释同xml:

 1 <!--
 2    Extensible HTML version 1.0 Transitional DTD
 3 
 4    This is the same as HTML 4 Transitional except for
 5    changes due to the differences between XML and SGML.
 6 
 7    Namespace = http://www.w3.org/1999/xhtml
 8 
 9    For further information, see: http://www.w3.org/TR/xhtml1
10 
11    Copyright (c) 1998-2002 W3C (MIT, INRIA, Keio),
12    All Rights Reserved. 
13 
14    This DTD module is identified by the PUBLIC and SYSTEM identifiers:
15 
16    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
17    SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
18 
19    $Revision: 1.2 $
20    $Date: 2002/08/01 18:37:55 $
21 
22 -->

3.参数实体定义

1 <!ENTITY % Script "CDATA">
1 <!-- a color using sRGB: #RRGGBB as Hex values -->
2 <!ENTITY % Color "CDATA">
1 <!-- used for object, applet, img, input and iframe -->
2 <!ENTITY % ImgAlign "(top|middle|bottom|left|right)">
1 <!ENTITY % StyleSheet "CDATA">
2     <!-- style sheet data -->
1 <!ENTITY % coreattrs
2  "id          ID             #IMPLIED
3   class       CDATA          #IMPLIED
4   style       %StyleSheet;   #IMPLIED
5   title       %Text;         #IMPLIED"
6   >
1 <!ENTITY % i18n
2  "lang        %LanguageCode; #IMPLIED
3   xml:lang    %LanguageCode; #IMPLIED
4   dir         (ltr|rtl)      #IMPLIED"
5   >
 1 <!ENTITY % events
 2  "onclick     %Script;       #IMPLIED
 3   ondblclick  %Script;       #IMPLIED
 4   onmousedown %Script;       #IMPLIED
 5   onmouseup   %Script;       #IMPLIED
 6   onmouseover %Script;       #IMPLIED
 7   onmousemove %Script;       #IMPLIED
 8   onmouseout  %Script;       #IMPLIED
 9   onkeypress  %Script;       #IMPLIED
10   onkeydown   %Script;       #IMPLIED
11   onkeyup     %Script;       #IMPLIED"
12   >

 

使用:

1 <!ATTLIST title 
2   %i18n;
3   id          ID             #IMPLIED
4   >
1 <!ELEMENT div %Flow;>  <!-- generic language/style container -->
2 <!ATTLIST div
3   %attrs;
4   %TextAlign;
5   >

 

其实就是类似宏替换。

1 <!ENTITY % fontstyle.extra "big | small | font | basefont">
2 
3 <!ENTITY % fontstyle.basic "tt | i | b | u
4                       | s | strike ">
5 
6 <!ENTITY % fontstyle "%fontstyle.basic; | %fontstyle.extra;">
fontstyle.extra这种命名管理方式不错,嘻嘻

4.属性定义

实体:

1 <!ENTITY % attrs "%coreattrs; %i18n; %events;">
1 <!ELEMENT dd %Flow;>
2 <!ATTLIST dd
3   %attrs;
4   >

ATTLIST,所以一个声明中可以定义多个属性:

<!ATTLIST User

Id ID #REQUIRED

Name NMTOKEN #REQUIRED

>

2.元素的定义

1 <!ELEMENT html (head, body)>
1 <!ELEMENT title (#PCDATA)>
1 <!ELEMENT base EMPTY>
1 <!ELEMENT ul (li)+>
1 <!-- %Inline; covers inline or "text-level" elements -->
2 <!ENTITY % Inline "(#PCDATA | %inline; | %misc.inline;)*">
3 <!ELEMENT u %Inline;>   <!-- underline -->  

转载于:https://www.cnblogs.com/xcf007/archive/2012/11/23/2783909.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值