XML的约束技术DTD语法

引用本地DTD约束

<!DOCTYPE 文档根节点  SYSTEM "dtd文件">如:
<!DOCTYPE 书架  SYSTEM "book.dtd"><书架>  <书>  </书>
  <书>  </书>
</书架>

引用公共的文件时

<!DOCTYPE 文档根节点  PUBLIC  "DTD名称" “DTD文件的URL”>如:
<!DOCTYPE web-app PUBLIC  "....." “http://java.sun.com/dtd/web-app_2_3.dtd”>

DTD元素定义:

<!ELEMENT 元素名称 (子元素名称+)>  声明最少出现一次的元素
<!ELEMENT 元素名称 (子元素名称*)> 声明出现零次或多次的元素
<!ELEMENT 元素名称 (子元素名称?)> 声明出现零次或一次的元素
<!ELEMENT 元素名称 (子元素名称 1,子元素名称 2,.....)> 带有子元素(序列)的元素
<!ELEMENT 元素名称 EMPTY> 空元素
<!ELEMENT 元素名称 ANY>  带有任何内容的元素
<!ELEMENT 元素名称 (#PCDATA)> 只有 PCDATA 的元素
<!ELEMENT note (to,from,header,(message|body))> 必须包含 "to" 元素、"from" 元素、"header" 元素,以及非 "message" 元素既 "body" 元素
<!ELEMENT note (#PCDATA|to|from|header|message)*> 可包含出现零次或多次的 PCDATA、"to"、"from"、"header" 或者 "message"
<?xml version="1.0" encoding="UTF-8"?>
<!-- 书架 有多本书 -->
<!ELEMENT 书架 (书+)>
<!-- 书 可以要有书名,作者,售价-->
<!ELEMENT 书  (书名,作者,售价)>
<!-- 书名的内容为字符串-->
<!ELEMENT 书名 (#PCDATA) >
<!ELEMENT 作者 (#PCDATA) >
<!ELEMENT 售价 (#PCDATA) >
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE 书架 SYSTEM "book.dtd">
<书架>
    <书>
        <书名>红楼梦</书名>
        <作者>堂婶</作者>
        <售价>34.0</售价>
    </书>
    <书>
        <书名>三国演绎</书名>
        <作者>老夫子</作者>
    </书>
</书架>

属性定义:

<!ATTLIST 元素名称 属性名称 属性类型 属性值>   声明属性其中属性类型CDATA/(en1,en2,..)/ID/ENTITY实体属性值:默认值/#REQUIRED必须的/#IMPLIED不是必须的/#FIXED value固定值
<?xml version="1.0" encoding="UTF-8"?>
<!-- 书架 有多本书 -->
<!ELEMENT 书架 (书+)>
<!-- 书 可以要有书名,作者,售价-->
<!ELEMENT 书    (书名,作者,售价)>
<!-- 书的id属性 是唯一的ID,其中id不能用纯数字-->
<!ATTLIST 书 id ID #REQUIRED>
<!-- 书名的内容为字符串-->
<!ELEMENT 书名 (#PCDATA)>
<!-- 用于定义空元素 -->
<!ELEMENT 作者 (#PCDATA)>
<!-- 作者的phone属性是必须的-->
<!ATTLIST 作者 phone CDATA #REQUIRED>
<!-- 作者的age属性默认值是0 -->
<!ATTLIST 作者 age CDATA "0">
<!-- 作者的email的属性不是必须的 -->
<!ATTLIST 作者 email CDATA #IMPLIED>
<!-- 作者的地址只能是北京上海深圳  默认是北京-->
<!ATTLIST 作者 address (北京|上海|深圳) "北京">
<!-- 表示内容元素可以是任何类型-->
<!ELEMENT 售价 (#PCDATA)>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE 书架 SYSTEM "book.dtd">
<书架>
    <书 id="a1">
        <书名>红楼梦</书名>
        <作者 age="23" phone="123" address="上海">堂婶</作者>
        <售价>34.0</售价>
    </书>
    <书 id="a2">
        <书名>三国演绎</书名>
        <作者 email="[email protected]" phone="345">老夫子</作者>
        <售价>445</售价>
    </书>
</书架>

实体定义:

<!ENTITY 实体名称 "实体的值"> 
<?xml version="1.0" encoding="UTF-8"?><!-- 定义一个引用实体-->
<!ENTITY copyright "Copyright W3Schools.">
<!-- 书架 有多本书 -->
<!ELEMENT 书架 (书+)>
<!-- 书 可以要有书名,作者,售价-->
<!ELEMENT 书    (书名,作者,售价)>
<!-- 书的id属性 是唯一的ID,其中id不能用纯数字-->
<!ATTLIST 书 id ID #REQUIRED>
<!-- 书名的内容为字符串-->
<!ELEMENT 书名 (#PCDATA)>
<!-- 用于定义空元素 -->
<!ELEMENT 作者 (#PCDATA)>
<!-- 作者的phone属性是必须的-->
<!ATTLIST 作者 phone CDATA #REQUIRED>
<!-- 作者的age属性默认值是0 -->
<!ATTLIST 作者 age CDATA "0">
<!-- 作者的email的属性不是必须的 -->
<!ATTLIST 作者 email CDATA #IMPLIED>
<!-- 作者的地址只能是北京上海深圳  默认是北京-->
<!ATTLIST 作者 address (北京|上海|深圳) "北京">
<!-- 表示内容元素可以是任何类型-->
<!ELEMENT 售价 (#PCDATA)>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE 书架 SYSTEM "book.dtd">
<书架>
    <书 id="a1">
        <书名>红楼梦</书名>
        <作者 age="23" phone="123" address="上海">堂婶</作者>
        <售价>34.0</售价>
    </书>
    <书 id="a2">
        <书名>三国演绎</书名>
        <作者 email="[email protected]" phone="345">老夫子</作者>
        <售价>445</售价>
    </书>
    <书 id="a3">
        <书名>&copyright;</书名>
        <作者 phone="678">中央台</作者>
        <售价>23</售价>
    </书>
</书架>
参数实体
<!ENTITY % 实体名称 "实体的值">  参数实体名称用于属性定义时使用
<?xml version="1.0" encoding="UTF-8"?>
<!-- 定义一个参数实体 -->
<!ENTITY % common.attrutes "remark CDATA #REQUIRED">
<!-- 书架 有多本书 -->
<!ELEMENT 书架 (书+)>
<!-- 书 可以要有书名,作者,售价-->
<!ELEMENT 书    (书名,作者,售价)>
<!-- 书的id属性 是唯一的ID,其中id不能用纯数字-->
<!ATTLIST 书 id ID #REQUIRED>
<!-- 书使用参数实体-->
<!ATTLIST 书 %common.attrutes;>
<!-- 书名的内容为字符串-->
<!ELEMENT 书名 (#PCDATA)>
<!-- 用于定义空元素 -->
<!ELEMENT 作者 (#PCDATA)>
<!-- 作者的phone属性是必须的-->
<!ATTLIST 作者 phone CDATA #REQUIRED>
<!-- 作者的age属性默认值是0 -->
<!ATTLIST 作者 age CDATA "0">
<!-- 作者的email的属性不是必须的 -->
<!ATTLIST 作者 email CDATA #IMPLIED>
<!-- 作者的地址只能是北京上海深圳  默认是北京-->
<!ATTLIST 作者 address (北京|上海|深圳) "北京">
<!-- 表示内容元素可以是任何类型-->
<!ELEMENT 售价 (#PCDATA)>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE 书架 SYSTEM "book.dtd">
<书架>
    <书 id="a1" remark="色情书">
        <书名>红楼梦</书名>
        <作者 age="23" phone="123" address="上海">堂婶</作者>
        <售价>34.0</售价>
    </书>
    <书 id="a2" remark="历史书">
        <书名>三国演绎</书名>
        <作者 email="[email protected]" phone="345">老夫子</作者>
        <售价>445</售价>
    </书>
    <书 id="a3" remark="政治书">
        <书名></书名>
        <作者 phone="678">中央台</作者>
        <售价>23</售价>
    </书>
</书架>
时间: 2024-12-28 12:43:34

XML的约束技术DTD语法的相关文章

XML——XML文件约束之DTD详解

1.XML文件约束与DTD的简单介绍 我们编写文档来约束一个XML文档的书写规范,这称之为XML约束. 常用的约束技术有: XML DTD XML Schema DTD的基本概念: document type definition 文档类型定义 DTD文件一般和XML文件配合使用,主要是为了约束XML文件. XML文件引入DTD文件,这样XML可以自定义标签,但又受到DTD文件的约束.比如上一节使用XML描述一个班级的信息,如果我们给每一个学生定义一个<面积>标签,语法上也是没有错误的,但是不

【代码笔记】XML深入学习:DTD约束与DTD语法(1)

2015-12-27 文件名    student.xml 1 <?xml version="1.0" encoding="GB2312" standalone="no"?> 2 <!--大家好,我是注释--> 3 <!--2015.12.27--> 4 <!DOCTYPE students SYSTEM "student.dtd"> 5 <!--这里没写盘符,及表示当前目

【代码笔记】XML深入学习:DTD约束与DTD语法(2)

DTD语法之定义实体(了解即可) 实体分为一般实体和参数实体. 定义实体:定义变量 引用实体:使用变量 一般实体:定义实体在DTD中,实体引用在xml中. 参数实体:定义实体在DTD中,实体引用在DTD中(内部DTD不可行). 定义一般实体: <!ENTITY 实体名 “实体值”>引用一般实体: 举例:  <!ENTITY  大美女 “李冰”> <student 学号=”ID_1001” 姓名=”王五” friend=”ID_1002” school=”&itcast

JavaEE实战——XML语法和约束技术

MyEclipse8.5 1.配置workspace ----- 建议不要采用含有空格和中文目录,所有代码保存workspace空间中 2.新建工程时,设置工程需要jre环境 MyEclipse提供多种内置layout --- 每种布局 界面不同,菜单不同 工程的属性 编码集 --- 导入其它工程时,注意编码类型一致 java build path 设置 classpath位置 ,指定当前工程引入类库 source中指定.java 文件 和.class文件 存放位置 librialies 指定当

【xml】Schema--- xml的约束技术

Schema 是xml的约束技术,出现的目的是为了替代dtd 本身也是一个xml,非常方便使用xml的解析引擎进行解析 对名称空间有非常好的支持 支持更多的数据类型,并且支持用户自定义数据类型 可以进行说语义级别的限定,限定能力大大强于dtd 相对于dtd不支持实体 相对于dtd复杂的多,学习成本比较的高 快速入门 自身是一个xml文件,扩展名是 .xsd 一个xml Schema通常称之为模式文档(约束文档),遵循这个文档书写的xml文件称之为实例文档 和xml文件一样,一个xml Schem

XML的约束与XML/HTML的解析

XML: 概念:Extensible Markup Language 可扩展标记语言 可扩展:标签都是自定义的. 功能 存储数据 配置文件 在网络中传输 xml与html的区别 xml标签都是自定义的,html标签是预定义. xml的语法严格,html语法松散 xml是存储数据的,html是展示数据 w3c:万维网联盟 语法: 基本语法: xml文档的后缀名 .xml xml第一行必须定义为文档声明 xml文档中有且仅有一个根标签 属性值必须使用引号(单双都可)引起来 标签必须正确关闭 xml标

xml技术DTD约束定义

XML约束 在XML技术中,可以编写一个文档来约束一个xml文档的书写规范,这称之为XML约束为什么需要XML约束? class.xml <stu><面积>?人怎么会有面积元素? xml 文件标签可以随便写,dtd可以对其有所要求按照合理的需求写 xml文件约束--dtd document type definition 文档类型定义作用: 定义xml标签约束,使开发者按照定义书写,也可以约束html文件 使用: 在项目中如需要一个xml文件,项目经理 可定义一个dtd文件,要求所

xml约束之dtd

XML约束技术: DTD约束:语法相对简单,功能也相对简单. Schema约束:语法相对复杂,功能也相对强大.(名称空间) DTD约束 导入dtd方式: 内部导入 <!DOCTYPE note [ <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMEN

xml约束之---DTD

 xml约束  ---- DTD 什么是XML约束: 在XML技术里,可以编写一个文档来约束一个XML文档的书写规范,这称之为XML约束. 为什么需要XML约束? 常用的约束技术 XML DTD XML Schema DTD(Document TypeDefinition),全称为文档类型定义. 文件清单:book.xml <?xml version="1.0" ?> <!DOCTYPE 书架 SYSTEM"book.dtd"> <书架