第3章 XML 语义约束
3-1 约束方式一:DTD
1.DTD定义
![在这里插入图片描述](https://img-blog.csdnimg.cn/053f7ce4814c4bd6b55385bc5fc7dfb0.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5Li65L2g5Y2D5Y2D5LiH5LiH6YGN77yB,size_20,color_FFFFFF,t_70,g_se,x_16)
2.DTD定义节点
![在这里插入图片描述](https://img-blog.csdnimg.cn/cd1e4185e97042c89e107dc2f000f668.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5Li65L2g5Y2D5Y2D5LiH5LiH6YGN77yB,size_20,color_FFFFFF,t_70,g_se,x_16)
3.DTD定义节点数量:
![在这里插入图片描述](https://img-blog.csdnimg.cn/1289468119f94d87b0404880b7181c3a.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5Li65L2g5Y2D5Y2D5LiH5LiH6YGN77yB,size_20,color_FFFFFF,t_70,g_se,x_16)
4.XML文件引用DTD文件
![在这里插入图片描述](https://img-blog.csdnimg.cn/be1bcbdf781846908b9f9c905efcf7f4.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5Li65L2g5Y2D5Y2D5LiH5LiH6YGN77yB,size_20,color_FFFFFF,t_70,g_se,x_16)
3-2 约束方式二:XML Schema
1.Schema 定义介绍
![在这里插入图片描述](https://img-blog.csdnimg.cn/1602f691cfd441e3998d0ec610cb60a2.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5Li65L2g5Y2D5Y2D5LiH5LiH6YGN77yB,size_20,color_FFFFFF,t_70,g_se,x_16)
2.代码示例:
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema">
<element name="hr">
<complexType>
<sequence>
<element name="employee" minOccurs="1" maxOccurs="9999">
<complexType>
<sequence>
<element name="name" type="string"></element>
<element name="age">
<simpleType>
<restriction base="integer">
<minInclusive value="18"></minInclusive>
<maxInclusive value="60"></maxInclusive>
</restriction>
</simpleType>
</element>
<element name="salary" type="integer"></element>
<element name="department">
<complexType>
<sequence>
<element name="dname" type="string"></element>
<element name="address" type="string"></element>
</sequence>
</complexType>
</element>
</sequence>
<attribute name="no" type="string" use="required"></attribute>
</complexType>
</element>
</sequence>
</complexType>
</element>
</schema>