XML的DTD约束和Schema约束

ajax是什么?

如图:
XML的DTD约束和Schema约束_第1张图片

XML是什么?

  • 可扩展标记语言,标记数据,定义数据类型
  • 允许用户对自己的标记语言进行定义的源语言
  • xml详细介绍:(http://www.w3school.com.cn/xml/xml_intro.asp)

XML的两个约束:

  • DTD约束(详细做了介绍)
  • Schema约束(简单提一下)

什么是格式良好的XML

①:有且只有一个根元素,例如以下代码中: “persons” 就是根元素

XML的DTD约束和Schema约束_第2张图片
②:区分大小写,例如以上代码中< persons >与< /persons >大小写必须一致

③:正确使用结束标签 就是: <>

④:正确使用嵌套标签,例如以上代码中标签里面套标签

⑤:使用合法标签名,就是标签里面不能乱加特殊符号,但是可以用中文,一般最好用英文

⑥:定义它有效的属性

ps:自己定义写的文件没有约束,可以随便加

DTD约束是什么?:

DTD的定义:

  • Document Type Definition 文档类型定义,用来约束xml文档
  • 规定xml文档中元素的名称,子元素的名称及顺序,元素的属性等
  • DTD详细介绍:http://www.w3school.com.cn/dtd/dtd_intro.asp

举例,为XML文件写一个DTD的约束,如下:



	
	
	
	
	
	
	
]>

	
		张小明
		10
		
			1234567
		
		
张大明 35 [email protected]

以上代码解析:

  • !DOCTYPE 是定义约束的入口 persons是根元素 !ELEMENT是元素的意思

  • 元素定义的语法:

  • 元素的分类:①空元素:
    ②文本元素:
    ③混合元素:

  • 第一步:按顺序定义全部的元素(在小括号外) 第二步:在小括号内写每一个元素里面的小元素
    例如age和name里面就是文本元素,而contact里面就有phone,email,再例如br就是EMPTY

  • 如果不写元素的限制会报错

  • 元素的限制:①:,逗号是必须要写的 例如name age contact br ②:|或者 例如contact 这样两个根元素里面都有的东西就用或者
    ③:次数+ +表示1~n个 *表示0~n ?表示0或1 默认有且只有一个

例:写一个DTD限制servlet相关标签



	
	
	
	
	
	
	
]>

	
		李佳雪
		12
		
			256546
		
		
李美女 33 [email protected]

如何对属性进行约束?

代码如下:



	
	
	
	
	
	
	
	
]>

	
		张小明
		10
		
			1234567
		
		
张大明 35 [email protected]

以上代码解析

  • #REQUIRED 的意思此属性(在根元素中)是必须要有的
  • #IMPLIED的意思是此属性(在根元素中)是可有可无的
  • pid 相当于数据库里面的主键是必须要有的
  • 如果不定义性别会自动默认为男
  • qq属于文本 文本都用 CDATA
  • parent 相当于数据库里面的外键
  • IDREF 有它的属性必须是指向别的person里面的id (意思是两个大persons里面的person的id必须一样 第一个指向第二个)

例:写config.xml的DTD约束


	
		
		
	
	
	
	]>
	

	
	
		
		
	
	
		
		
	

Schema约束是什么?

schema约束同为xml文件的约束模式语言之一, 最大的作用是为了验证xml文件的规范性的.
是为了解决dtd约束不够的问题, 相应的他的配置就变得比较复杂
schema本身就是xml语言, 后缀名为xsd, 对命名空间的支持非常好
schema的根元素就为schema

XML中的特殊符号:

  • &(逻辑与) & amp;
  • <(小于) &l t;
  • 大于 & gt;
  • "(双引号) & quot;
  • '(单引号) & apos;

XML中有些符号是会报错的,所以要用以上几种转译字符

schema约束和dtd约束的区别:

  • Schema符合XML语法结构。
  • DOM、SAX等XML API很容易解析出XML Schema文档中的内容。
  • Schema对名称空间支持得非常好。
  • Schema比XML DTD支持更多的数据类型,并支持用户自定义新的数据类型。
  • Schema定义约束的能力非常强大,可以对XML实例文档作出细致的语义限制。
  • Schema不能像DTD一样定义实体,比DTD更复杂,但Xml Schema现在已是w3c组织的标准,它正逐步取代DTD

你可能感兴趣的:(XML的DTD约束和Schema约束)