小白自学Android路之 xml文件的DTD、Schema约束

<span style="font-size:14px;">1.什么是xml文件的约束</span>

什么是XML约束?在一个XML技术里,可以编写一个文档来约束一个XML文档的书写规范,这称之为XML约束

2.为什么需要约束

在xml文件中,如果不加以约束,则计算机无法理解,或者也会出现很多不必要的错误,比如书的名字,书的名字只能是唯一的一个,同样书的价格也是同样唯一的,其次,在有的时候限定了数目的多少,例如,一个项目中规定多少个成员,不能超过也不能少于,再次,对于一些枚举类型中,只能选择某些特定的选项,而这些选择都可以再xml约束文件中给出,这样就能毕业在计算机读取的过程中读到无法识别的选项。总之,约束能带来很多的方便,不仅是对于计算机的阅读而言,同时对于编程人员的编写代码也非常有益。

3.常用的两种约束
   xml dtd
   xml Schema

4. DTD的内容

 (1) DTD 即document type definition,称之为文档类型定义,文件类型为 文件名.dtd,Schema比DTD约束更加升级,能避免DTD的很多缺陷。

DTD实际上可以看作一个或多个XML文件的模板,这些XML文件中的元素、元素的属性、元素的排列方式/顺序、元素能够包含的内容等,都必须符合DTD中的定义。XML文件中的元素,即我们所创建的标记,是根据我们应用的实际情况来创建的。想要创建一份完整性高、适应性广的DTD是非常困难的,因为各行各业都有他们自己的行业特点,所以DTD通常是以某种应用领域为定义的范围,如:医学、建筑、工商、行政。DTD定义的元素含盖范围越广泛,那么就越复杂。
  引入约束的两种方式:(以DTD为例)
  第一种,DTD文件作为一个单独的文件编写,在xml文件中引入

  在某一文件夹中新建一个文件以.dtd结尾,例如新建book.dtd

<span style="font-size:14px;">文件清单:book.xml
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE 书架 SYSTEM "book.dtd">
<书架>
	<书>
		<书名>Java就业培训教程</书名>
		<作者>张孝祥</作者>
		<售价>39.00元</售价>
	</书>
	<书>
		<书名>JavaScript网页开发</书名>
		<作者>张孝祥</作者>
		<售价>28.00元</售价>
	</书>
</书架>
</span>

<span style="font-size:14px;"><pre name="code" class="plain">文件清单:book.dtd
	
<!ELEMENT 书架 (书+)>
	<!ELEMENT 书 (书名,作者,售价)>
	<!ELEMENT 书名 (#PCDATA)>
	<!ELEMENT 作者 (#PCDATA)>
	<!ELEMENT 售价 (#PCDATA)></span>

 

  第二种,直接在xml文件中编写

<span style="font-size:14px;"><pre name="code" class="plain"><pre name="code" class="plain"><?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE 书架 [
	<!ELEMENT 书架 (书+)>
	<!ELEMENT 书 (书名,作者,售价)>
	<!ELEMENT 书名 (#PCDATA)>
	<!ELEMENT 作者 (#PCDATA)>
	<!ELEMENT 售价 (#PCDATA)>
]>
<书架>
	<书>
		<书名>Java就业培训教程</书名>
		<作者>张孝祥</作者>
		<售价>39.00元</售价>
	</书>
</书架>
</span>


 

   (2)外部和内部编写dtd约束,区别就是在内部时需要增加[ ],而在外部引用中,需要标注引用,<!DOCTYPE 书架 SYSTEM "book.dtd">其他的类似。对于属性的说明,+代表一个或者多个,必须存在,?表示0个或1个,*表示0个或多个。

(3)属性设置:

#REQUIRED:必须设置该属性

#IMPLIED:可以设置也可以不设置 

#FIXED:说明该属性的取值固定为一个值,在 XML 文件中不能为该属性设置其它值。但需要为该属性提供这个值 

直接使用默认值:在 XML 中可以设置该值也可以不设置该属性值。若没设置则使用默认值。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值