XML约束

XML约束通过DTD和Schema确保文档结构的合法性。DTD(Document Type Definition)用于定义XML文档结构,分为内部、外部和混合DTD。Schema则遵循XML语法,提供更强大的数据类型和验证功能。有效XML文档不仅需良构,还需符合DTD或Schema约束。验证XML文档的有效性有助于保证配置文件的正确性,并可在开发工具中启用自动提示和补全。
摘要由CSDN通过智能技术生成

XML约束

在XML技术中,可以编写一个文档约束一个XML文档的书写规范,这称之为XML约束。

常用的约束技术

  1. DTD约束:
    DTD文件的后缀名为 .dtd
    DTD文件有自己独立的语法规范
  2. Scheam约束
    Scheam文件的后缀名是 .xsd
    Scheam 文件符合XML语法规范

xml 有良构和有效
1.良构:良构的xml文件,表示这个xml文件的内容,完全按照xml语言要求的语法进行的编写
符合语法,符合基本的规范要求,那么就是良构的xml
2.有效:在良构的基础之上,那么这个xml同时还要满足DTD或者Schame
文件的约束,那么这个xml文件就是有效的

注意:良构的xml文件不一定有效,有效的xml文件一定良构

DTD约束

1.内部DTD:DTD约束和xml文档在同一个文件中

<?xml version="1.0" encoding="UTF-8"?>
	<!DOCTYPE students[
	<!ELEMENT students (stu+)>  <!--students有一个或多个字标签(stu)-->
	<!ELEMENT stu (id,name,age)>  <!--stu里面只能写这三个标签-->
	<!ELEMENT id   (#PCDATA)>     <!--子元素里面写文本值-->
	<!ELEMENT name (#PCDATA)>
	<!ELEMENT age  (#PCDATA)>
]>
	<students>
		<stu>
			<id>1</id>
			<name>tom</name>
			<age>20</age>
		</stu>
	</students>

2.外部DTD:DTD和xml文档不在同一个文件中
.xml文件如下:

<?xml version="1.0" encoding="UTF-8"?>
	<!DOCTYPE students SYSTEM "dtd/student.dtd">
	<students>
		<stu>
			<id>1</id>
			<name>tom</name>
			<age>20</age>
		</stu>
	</students>

.dtd文件

		<!ELEMENT students (stu+)>
		<!ELEMENT stu (id,name,age)>
		<!ELEMENT id   (#PCDATA)>
		<!ELEMENT name (#PCDATA)>
		<!ELEMENT age  (#PCDATA)>

3.混合DTD:既有外部DTD,又有内部DTD
.xml文件

<?xml version="1.0" encoding="UTF-8"?>
	<!DOCTYPE students SYSTEM "dtd/student3.dtd"[
	<!ELEMENT stu (id,name,age)>
	<!ELEMENT id   (#PCDATA)>
	<!ELEMENT name (#PCDATA)>
	<!ELEMENT age  (#PCDATA)>
]>
	<students>
		<stu>
			<id>1</id>
			<name>tom</name>
			<age>20</age>
		</stu>
	</students>

.dtd 文件

<!ELEMENT students (stu+)>

DTD的目的:
验证该xml文档是否是有效的xml文档
如果一个良构的xml文档满足了DTD的声明就是一个有效的xml文档。

PUBLIC表示引用的dtd文件是一个公共的文件
例如

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
   "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
   "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
</hibernate-configuration>

使用dtd或者scheme可以在eclipse中配置xml配置自动提示补全功能,方便使用者对xml进行配置的编写

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YJY@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值