博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
XML DTD详解(转)
阅读量:7118 次
发布时间:2019-06-28

本文共 1393 字,大约阅读时间需要 4 分钟。

前情提要与本文内容介绍

  前面的两篇XML相关博文:

  第一篇是介绍格式正规的XML: 

  第二篇介绍DTD,引入有效的XML的概念(符合语法规范并符合DTD要求),并介绍DTD的三种使用方法:

  一个有效的XML文档必然是结构正规的,结构正规的XML文档不一定是有效的,即有效的是格式正规的一个子集。

  本文详细介绍DTD,包括其对元素的定义,属性的定义,以及实体的定义。

 

元素的定义

 

DTD中的修饰符号:

   

  这部分符号可以联系正则表达式的符号来记忆。

 

属性的定义

    

 

属性类型——CDATA

  比如:

 

  定义了一个属性,是属于title元素的,属性名叫name,类型是字符串(包括数字和中文),并且是一个必须要有的属性。

 

属性类型——NMTOKEN/NMTOKENS

    

  左边图中因为加了空格而出错。

 

属性类型——ID

  类型为ID的属性取值必须是唯一的。

 

 

  从这个例子还可以看到同一个元素可以一次定义多个属性,多个属性之间用空格分隔即可。

 

属性类型——IDREF/IDREFS

 

                                        (“儿子”后面漏掉了一个斜线)

 

属性类型——Enumerated

  实现定义好一些值,属性的值必须在所列出的值的范围内。

    

 

属性的特点

#REQUIRED

  元素的所有实例都必须有该属性的值(NOT NULL)。

  语法:

 

  DTD示例:

 

  XML示例:

 

 

#IMPLIED

  元素的实例中可以忽略该属性(NULL)。

  语法:

 

  DTD示例:

 

  XML示例:

 

  没有这个属性也是对的。

 

#FIXED value

  元素实例中该属性的值必须为指定的固定值。

  语法:

 

  DTD示例:

 

  XML示例:

 

 

Default value

  为属性提供一个默认的值。

  语法:

 

  DTD示例:

 

  XML示例:

 

 

定义实体

一般

  语法:

 

  DTD示例:

 

  XML示例:

&writer;&copyright;

 

 

外部实体:

  语法:

 

  DTD示例:

 

  XML示例:

&writer;&copyright;

 

  与上面的区别就是加上了SYSTEM关键字。

  这样就不是使用网址的字符串来代替,而是用网址的文档本身内容。

 

实体类型

 

 

  前面所讲的都是普通实体,分为内部实体和外部实体。

 

  所谓参数实体,该实体实际上不是在具体实例化文档中使用,而是在DTD文档内部被使用。

  我们可以定义一个实体,然后在DTD内部来引用它。

  如下:

 

  

总结如下:

  普通实体:DTD中定义,XML中使用,使用格式: &名;

  参数实体:DTD中定义,定义的时候要用%,DTD中使用,使用格式: %名;

  普通实体和参数实体都分为内部实体外部实体两种,外部实体定义需要加上SYSTEM关键字,其内容是URL所指向的外部文件实际的内容。

  如果不加SYSTEM关键字,则为内部实体,表示实体指代内容为字符串。

 

转载地址:http://cyfel.baihongyu.com/

你可能感兴趣的文章
ashx的学习
查看>>
利用LruCache和DiskLruCache加载网络图片实现图片瀑布流效果(升级版)
查看>>
[20170114]12c varchar2类型直方图.txt
查看>>
MySQL---数据库从入门走向大神系列(八)-在java中执行MySQL的存储过程
查看>>
Angular vs React 最全面深入对比
查看>>
我的Android进阶之旅------>Android关于Activity管理的一个简单封装
查看>>
工信部陈立东:推进5G研发和产业化的“四个统筹”
查看>>
微信公众平台开发(108) 微信摇一摇
查看>>
mongodb删除表
查看>>
ASP.NET Core应用针对静态文件请求的处理[3]: StaticFileMiddleware中间件如何处理针对文件请求...
查看>>
ICO与区块链:剖析ICO的金融与技术原理
查看>>
一文读懂深度适配网络(DAN)
查看>>
企业选择数据安全防护平台九个考虑因素
查看>>
当今云计算的挑战:规划,流程和人员
查看>>
用DeepMind教AI玩游戏?一文为你讲清原理!
查看>>
我的WCF之旅(4):WCF中的序列化[上篇]
查看>>
NGINX小技巧--将所有目录和目录下所有文件分别给与不同的权限
查看>>
DOCKER功能练习
查看>>
如何来看单片机外设A/D转换器ADC0804时序图
查看>>
NetApp发布云计算计划及新操作系统
查看>>