一:XML约束概念

xml约束:可以编写一个文档来约束xml文件的书写规范。

xml语言格式比较严谨,不可能让程序员随意编写,所以必须要有约束。

二:常用的xml约束技术

1:DTD,document type definition

2:校验xml文件正当性

a:使用解析工具

b:使用ide工具,如:eclipse

books.html

 <?xml version="1.0" ?>
<!DOCTYPE bookstore SYSTEM "book.dtd">
<bookstore>
<book>
<name>Thinking in java</name>
<author>Tom</author>
<price>105.0</price>
</book>
<book>
<name>Thinking in c</name>
<author>Jack</author>
<price>85.0</price>
</book>
</bookstore>

books.dtd

 <!ELEMENT bookstore(book+)>
<!ELEMENT book(name,author,price)>
<!ELEMENT name(#PCDATA)>
<!ELEMENT author(#PCDATA)>
<!ELEMENT price(#PCDATA)>

3:DTD约束有两种方式,一种作为单独的文件编写,也可以在XML文件内编写。

a:在XML文件内编写DTD

!DOCTYPE:定义约束  书架:根标签

b:外部引入DTD

<!DOCTYPE 书架 "books.dtd">

4:引用DTD约束

三:DTD约束语法细节

1:元素、属性、实体

2:元素定义

3:属性定义

使用ATTLIST设置属性,#REQUIRED  为必须的,  IMPLIED  为可选的

4:常用的属性值类型

a:ENUMERATED,枚举

b:ID

c:ENTITY,实体

引用实体:

参数实体:

四:案例分析

1:dtd约束文件

 <!DOCTYPE CATALOG [

 <!ENTITY AUTHOR "John Doe">
<!ENTITY COMPANY "JD Power Tools, Inc.">
<!ENTITY EMAIL "jd@jd-tools.com"> <!ELEMENT CATALOG (PRODUCT+)> <!ELEMENT PRODUCT
(SPECIFICATIONS+,OPTIONS?,PRICE+,NOTES?)>
<!ATTLIST PRODUCT
NAME CDATA #IMPLIED
CATEGORY (HandTool|Table|Shop-Professional) "HandTool"
PARTNUM CDATA #IMPLIED
PLANT (Pittsburgh|Milwaukee|Chicago) "Chicago"
INVENTORY (InStock|Backordered|Discontinued) "InStock"> <!ELEMENT SPECIFICATIONS (#PCDATA)>
<!ATTLIST SPECIFICATIONS
WEIGHT CDATA #IMPLIED
POWER CDATA #IMPLIED> <!ELEMENT OPTIONS (#PCDATA)>
<!ATTLIST OPTIONS
FINISH (Metal|Polished|Matte) "Matte"
ADAPTER (Included|Optional|NotApplicable) "Included"
CASE (HardShell|Soft|NotApplicable) "HardShell"> <!ELEMENT PRICE (#PCDATA)>
<!ATTLIST PRICE
MSRP CDATA #IMPLIED
WHOLESALE CDATA #IMPLIED
STREET CDATA #IMPLIED
SHIPPING CDATA #IMPLIED> <!ELEMENT NOTES (#PCDATA)> ]>

2:根据dtd写的CATELOG.xml

 <?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE CATALOG SYSTEM "dtd/catelog.dtd">
<CATALOG>
<PRODUCT>
<SPECIFICATIONS>water</SPECIFICATIONS>
<PRICE>3.5</PRICE>
</PRODUCT>
</CATALOG>

javaweb学习总结八(xml约束DTD)的更多相关文章

  1. 【Javaweb学习笔记】XML和约束模式

    一.XML语法 xml 可扩展标记语言,w3c组织发布的,用于保存有关系的数据,作为配置文件,描述程序模块之间的关系 xml 文件开头必须包括下面的标签: <?xml version=" ...

  2. XML约束DTD

    <元素1> <元素2> <元素3>描述1</元素3> <元素4>描述2</元素4> </元素2> </元素1& ...

  3. XML约束——DTD约束

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

  4. xml约束DTD演示

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

  5. javaweb学习总结(八)——HttpServletResponse对象(二)

    一.HttpServletResponse常见应用——生成验证码 1.1.生成随机图片用作验证码 生成图片主要用到了一个BufferedImage类,

  6. JavaWeb学习笔记八 监听器

    监听器Listener jservlet规范包括三个技术点:servlet :listener :filter:监听器就是监听某个对象的的状态变化的组件.监听器的相关概念事件源: 被监听的对象(三个域 ...

  7. JavaWeb学习 (十八)————JSP标签

    一.JSP标签介绍 JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护. 二.JSP常用标签 ...

  8. javaweb学习总结(八)——HttpServletResponse对象(二)(转)

    (每天都会更新至少一篇以上,有兴趣的可以关注)转载自孤傲苍狼 一.HttpServletResponse常见应用——生成验证码 1.1.生成随机图片用作验证码 生成图片主要用到了一个BufferedI ...

  9. 【javaweb学习】解析XML

    XML解析方式有两种 dom:Document Object Model文档对象模型,是w3c组织推荐的解析方式 sax:Simple Api XML不是官方标准,但它是XML社区实际上的标准,几乎所 ...

随机推荐

  1. 那些经常被遗忘的 Java 面试题

    静态类和静态方法 如果一个类要被声明为static的,只有一种情况,就是静态内部类. 静态内部类实际上与普通类(即类名必须与文件名一样的顶级类)一样,只是静态内部类在某一类的内部定义了而已,既然是类, ...

  2. Linux服务器集群系统(一)(转)

    add by zhj:虽然是2002年的文章,但读来还是收益良多.在 章文嵩:谈LVS及阿里开源背后的精彩故事 中LVS发起人及主要贡献者谈了LVS的开发过程及阿里开源的一些故事 原文:http:// ...

  3. Java设计模式系列之策略模式

    策略模式的定义: 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换,策略模式让算法独立于使用它的客户而独立变化. 策略模式使这些算法在客户端调用它们的时候能够互不影响地变化 ...

  4. Spring bean configuration inheritance

    In Spring, the inheritance is supported in bean configuration for a bean to share common values, pro ...

  5. codeforces 651B Beautiful Paintings

    B. Beautiful Paintings time limit per test 1 second memory limit per test 256 megabytes input standa ...

  6. BestCoder Round #69 (div.2) Baby Ming and Weight lifting(hdu 5610)

    Baby Ming and Weight lifting Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K ( ...

  7. poj 1191 棋盘分割 动态规划

    棋盘分割 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 11457   Accepted: 4032 Description ...

  8. python 循环

    200 ? "200px" : this.width)!important;} --> 介绍 python中有两种循环,分别是for...in循环.while循环:for.. ...

  9. Mysql中关于 group_concat函数详解

    group_concat()主要功能:能将相同的行组合起来 完整的语法如下: group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Sepa ...

  10. PL/pgSQL学习笔记之一

    开始 资料来源:http://www.postgresql.org/docs/9.1/static/plpgsql-overview.html 39.1 概要: PL/pgSQL是一种可载入的过程语言 ...