XML--(2)约束、DTD约束、schema约束

什么是约束

规定文档当中只能写哪些标签。并且会给一些提示

DTD约束

不要求自己写出来,能看懂别人写的dtd约束
存在的问题:在标签当中存放的内容不知道是什么类型,写的都是汉字,这种约束不严谨

内部DTD

在xml当中定义的dtd

外部DTD

在外部文件当中单独定义的dtd,扩展名为.dtd
本地:本地:<!DOCTYPE 根节点名称 SYSTEM "student.dtd">

<!DOCTYPE students SYSTEM  "student.dtd">

网络:网络:<!DOCTYPE students PUBLIC "命名空间" "student.dtd">

student.xml文件内容如下

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE students SYSTEM  "student.dtd">

<!--只能按dtd文件中约束的形式去写 -->
<students>
	<student number="s001">
		<name>1</name>
		<age>2</age>
		<age>3</age>
	</student>
</students>

student.dtd 文件内容如下

<!ELEMENT students(student*)>
<!ELEMENT student(name,age,sex)>
<!ELEMENT name(#PCDATA)>
<!ELEMENT age(#PCDATA)>
<!ELEMENT sex(#PCDATA)>
<!ATTLIST student number ID #REQUIRED>	<!--估计student标签对其属性number进行约束-->
										<!--#REQUIRED 表示必选-->

约束语法

在这里插入图片描述
web.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE web-app SYSTEM  "web-app.dtd">

<web-app>
	<servlet>
		<servlet-name>abc</servlet-name>
		<servlet-class>aaaaa</servlet-class>
	</servlet>
	<servlet>
		<jsp-file>aaabbbcc</jsp-file>
	</servlet>
	<servlet-mapping></servlet-mapping>
	<wel-file-list>
		<welcome-file>aaa</welcome-file>
	</wel-file-list>
</web-app>

web-app.dtd

<!ELEMENT web-app(servlet*,servlet-mapping*,wel-file-list?)>
<!ELEMENT servlet(servlet-name,description?,(servlet-class | jsp-file))>
<!ELEMENT servlet-name(#PCDATA)>
<!ELEMENT wel-file-list(welcome-file+)>

schema约束

扩展名.xsd
复杂标签:标签当中还有子标签
简单标签:标签当中没有子标签
student.xml

<?xml version="1.0" encoding="UTF-8"?>

<!--

1.编写根标签
2.引用约束地址            xsi:schemaLocation="默认空间    约束地址.xsd"
3.引用实例名称空间     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4.默认名称空间      xmlns="http://www.it666.cn/xml"

-->

<students   xsi:schemaLocation="http://www.it666.cn/xml   student.xsd"
	        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	        xmlns="http://www.it666.cn/xml"
>

<student number="lk_0001">
	<name>aa</name>
	<age>50</age>
	<sex>male</sex>
</student>


</students>

student.xsd

<?xml version="1.0"?>
<xsd:schema xmlns="http://www.it666.cn/xml"
        xmlns:xsd="http://www.w3.org/2001/XMLSchema"
        targetNamespace="http://www.it666.cn/xml" elementFormDefault="qualified">
    <xsd:element name="students" type="studentsType"/>
    <xsd:complexType name="studentsType">
        <xsd:sequence>
            <xsd:element name="student" type="studentType" minOccurs="0" maxOccurs="unbounded"/>
        </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="studentType">
        <xsd:sequence>
            <xsd:element name="name" type="xsd:string"/>
            <xsd:element name="age" type="ageType" />
            <xsd:element name="sex" type="sexType" />
        </xsd:sequence>
        <xsd:attribute name="number" type="numberType" use="required"/>
    </xsd:complexType>
    <xsd:simpleType name="sexType">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="male"/>
            <xsd:enumeration value="female"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="ageType">
        <xsd:restriction base="xsd:integer">
            <xsd:minInclusive value="0"/>
            <xsd:maxInclusive value="256"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="numberType">
        <xsd:restriction base="xsd:string">
            <xsd:pattern value="lk_\d{4}"/>
        </xsd:restriction>
    </xsd:simpleType>
</xsd:schema> 

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值