无意义的XML

之前说过因为xml没有预设的标签,所以说你怎麽写他一般都不会报错。

所以需要对xml的书写格式进行一些限制,这就引入了DTD

下面的这个xml你可以给book添加各种属性还不会报错,但是有时属性是固定的,所以就需要对xml进行一定的约束。

 DTD的引入(有意义的XML)

文档类型定义(DTD)可定义合法的XML文档构建模块。它使用一系列合法的元素来定义文档的结构。

DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用。

内部dtd(还是以上面的例子进行书写)

id只能在001、002、003中选,默认是001

id可有可无

解释一下book的"+"号

因为books可以存在多个book所以用来'+',还有'*'、'?'

books(book)声明了:books 子元素必须在 "book" 元素内出现一次。

books(book+)声明了:books 子元素必须在 "book" 元素内出现至少一次。

books(book*)声明了:books 子元素必须在 "book" 元素内出现零次或者多次。

books(book?)声明了:books 子元素必须在 "book" 元素内出现零次或者一次。

外部dtd

外部dtd的书写

注意:写完一定要crtl+S,不然无法导入,以及类似于books(book+)中间一定要加空格,books  (book+)

PCDATA和CDATA

XML规范化(DTD)的更多相关文章

  1. 【PHP XML与dtd概述【完整版】】

    一.XML文件简介 关于XML的大多数人都知道一些,HTML->xhtml->xml,这个顺序本来应当是HTML发展的顺序. XML可以当做配置文件使用,还可以充当小型的数据库. vers ...

  2. XML约束——DTD约束

    参考: 方立勋老师的讲课视频.   什么是XML约束 •在XML技术里,可以编写一个文档来约束一个XML文档的书写规范,这称之为XML约束. 为什么需要XML约束 常用的约束技术 •XML DTD • ...

  3. xml约束DTD演示

    此演示xml和DTD在一个文件中 book.xml <?xml version="1.0" encoding="utf-8"?> <!DOCT ...

  4. jdom dom4j解析xml不对dtd doctype进行验证(转)

    一.写在所有之前:因为dom4j和jdom在这个问题上处理的方法是一模一样的,只是一个是SAXBuilder 一个SAXReader,这里以jdom距离,至于dom4j只需要同理替换一下就可以了.二. ...

  5. XML 和 DTD

    1.XML 1.1xml简介 a)xml,eXtensible Markup Language,可扩展标记语言,是一种标记语言: b)xml是一种非常灵活的语言,没有固定的标签,所有的额标签都可以自定 ...

  6. 【JAVA与XML、dtd约束、Schema约束】

    一.XML. (1)XML:Extensible Markup Language (2)XML是一种标记语言. (3)XML的设计宗旨是传输数据,而不是显示数据. (4)XML标签没有被预定义,即使用 ...

  7. 【php基础】XML,DTD实例

    要求一:能看懂别人写的DTD文件,自己能写更好.例如products.dtd: <!ENTITY AUTHOR "John Doe"> <!ENTITY COMP ...

  8. javaweb学习总结八(xml约束DTD)

    一:XML约束概念 xml约束:可以编写一个文档来约束xml文件的书写规范. xml语言格式比较严谨,不可能让程序员随意编写,所以必须要有约束. 二:常用的xml约束技术 1:DTD,document ...

  9. 关于XML的DTD概述

    1 DTD概述 1.1 什么是DTD DTD(Document Type Definition),文档类型定义,用来约束XML文档.或者可以把DTD理解为创建XML文档的结构!例如可以用DTD要求XM ...

随机推荐

  1. ie8无法拉伸背景图

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  2. 操作word

    package com.gwt.flow.task; import java.io.File; import java.io.FileInputStream; import java.io.FileN ...

  3. 1、TensorFlow如何工作?

    TensorFlow特殊的张量计算引擎使得TensorFlow能够很好的满足机器学习的计算需要,从2015年开始发起 本书基于TensorFlow0.12+和python3.0+ 环境安装要求 pip ...

  4. Python MySQLdb中执行SQL语句传入的参数应该要加上引号如果该字段是str类型的

    如下图: username在表中是字符串类型的,所以传入的参数要加上引号

  5. 日期相关类data,simpledataformat类

    (1) (2)

  6. iOS 开发之函数式编程思想(Functional Programming)

    函数式编程(Functional Programming), 函数式编程强调的函数:1.不依赖外部状态:2.不改变外部状态. 函数式编程可解决线程安全问题,每一个函数都是线程安全的. 时间状态:变量一 ...

  7. 传奇定时器OnTimer功能详解(泡点、时间触发、任务活动)

    传奇定时器OnTimer功能详解(泡点.时间触发.任务活动) 定时器功能,是传奇服务端中非常常见的一种功能,常见如:泡点脚本.赌博脚本,任务活动指定时间刷怪,时间触发一些都需要用到OnTimer功能, ...

  8. servlet filter listener interceptor 知识点

    这篇文章主要介绍 servlet filter listener interceptor 之 知识点.博文主要从 概念,生命周期,使命介绍其区别.详情如下:   概念 生命周期 使命 servlet ...

  9. python opencv:代码执行时间计算

    t1 = cv2.getTickCount() # ...... t2 = cv2.getTickCount() # 计算花费的时间:毫秒 time = (t2-t1) / cv2.getTickFr ...

  10. bootstrap与vue,react的区别

    链接(与Vue区别):https://www.php.cn/faq/423095.html 链接(BootStrap, React, Vue的比较):https://www.jianshu.com/p ...