xml-DTD快速入门

DTD技术快速入门

  1. DTD与xml关联三种方式
  2. 文档实例
  3. 语法

1.DTD与xml关联三种方式

1.内部DTD —– 语法

<!DOCTYPE 你的xml文档的根元素名称 [元素声明]>

2.外部DTD (引用本地DTD)

<!DOCTYPE 你的xml文档的根元素名称 SYSTEM "本地DTD文件位置">

3.公共DTD (引用网络上DTD)

<!DOCTYPE 你的xml文档的根元素名称 PUBLIC “公共名称" "URL">
<!--* 公共DTD 使用 名称 W3C规范官方组织规定的-->

文档实例

<?xml version="1.0"?>
<!DOCTYPE note [
<!--定义此文档是 note 类型的文档。-->
  <!ELEMENT note (to,from,heading,body)>
  <!-- note 元素有四个元素:"to、from、heading,、body"-->
  <!ELEMENT to      (#PCDATA)>
  <!--to 元素为 "#PCDATA" 类型-->
  <!ELEMENT from    (#PCDATA)>
  <!--如上-->
  <!ELEMENT heading (#PCDATA)>
  <!--如上-->
  <!ELEMENT body    (#PCDATA)>
]>
<note>
  <to>George</to>
  <from>John</from>
  <heading>Reminder</heading>
  <body>Don't forget the meeting!</body>
</note>

语法

所有的 XML 文档(以及 HTML 文档)均由以下简单的构建模块构成:
1. 元素
2. 属性
3. 实体
4. PCDATA
5. CDATA
声明一个元素

在 DTD 中,XML 元素通过元素声明来进行声明。元素声明使用下面的语法:

<!ELEMENT 元素名称 类别>
<!ELEMENT 元素名称 (元素内容)>
<!--空元素-->
<!ELEMENT 元素名称 EMPTY>
<!--带有子元素(序列)的元素-->
<!ELEMENT 元素名称 (子元素名称 1,子元素名称 2,.....)>
<!--* 任意个(0到多个)--> 
<!ELEMENT 元素名称 (子元素名称*)>
<!--+ (1到多个子元素) -->
<!ELEMENT 元素名称 (子元素名称+)>
<!--? (代表0或者1个子元素)-->
<!ELEMENT 元素名称 (子元素名称?)>
<!--声明“非.../既...”类型的内容-->
<!--"note" 元素必须包含 "to" 元素、"from" 元素、"header" 元素,以及非 "message" 元素既 "body" 元素-->
<!ELEMENT note (to,from,header,(message|body))>
<!--"note" 元素可包含出现零次或多次的 PCDATA、"to"、"from"、"header" 或者 "message"。-->
<!ELEMENT note (#PCDATA|to|from|header|message)*>

在 DTD 中,属性通过 ATTLIST 声明来进行声明。
语法

<!ATTLIST 元素名称 属性名称 属性类型 默认值>
<!ATTLIST payment type CDATA "check">
<!--xml对应的是-->
<payment type="check" />

以下是属性类型选项

属性类型描述
CDATA值为字符数据 (character data)
(en1en2
ID值为唯一的 id
IDREF值为另外一个元素的 id
IDREFS值为其他 id 的列表
NMTOKEN值为合法的 XML 名称
NMTOKENS值为合法的 XML 名称的列表
ENTITY值是一个实体
ENTITIES值是一个实体列表
NOTATION此值是符号的名称
xml:值是一个预定义的 XML 值

默认值参数可使用下列值

默认值参数解释
REQUIERD属性必须
IMPLIED属性可选
fixed value属性值固定
default默认值

假如您不希望强制作者包含属性,并且您没有默认值选项的话,请使用关键词 #IMPLIED。
假如您没有默认值选项,但是仍然希望强制作者提交属性的话,请使用关键词 #REQUIRED。
如果您希望属性拥有固定的值,并不允许作者改变这个值,请使用 #FIXED 关键词。如果作者使用了不同的值,XML 解析器会返回错误。
规定一个默认的属性值
DTD:

<!--定义一个空的属性节点-->
<!ELEMENT square EMPTY>
<!--节点的默认属性值为0-->
<!ATTLIST square width CDATA "0">
<!--合法的 XML-->
<square width="100" />
<!--列举属性值-->
<!ATTLIST 元素名称 属性名称 (en1|en2|..) 默认值>
<!ATTLIST payment type (check|cash) "cash">
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值