如果想要约束xml中的标签内容,可以使用下面两种方式编写约束内容:
dtd
dtd的全称是document Type Definition,即文档类型定义。dtd的分类:
- 内部dtd:在xml内部编写dtd
- 外部dtd:在外部文件中编写dtd,然后再引入到xml中
- 引入本地dtd文件:<!DOCTYPE students SYSTEM"student.dtd">
- 引入网络dtd文件:<!DOCTYPE students PUBLIC "名称空间""student.dtd">
dtd中的约束不严谨,如果想要编写出更严谨的约束文件,可以使用下面这个。
schema
使用schema约束更加严谨,它克服了dtd的局限性。其实schema本身也是一个xml文件,但是通常是以.xsd文件名结尾。如下是一个web项目中的web.xml文件,其中使用了schema作为约束。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>xml</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
下面是web-app_2_5.xsd的schema约束文件的部分代码:
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://java.sun.com/xml/ns/javaee"
xmlns:javaee="http://java.sun.com/xml/ns/javaee"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
attributeFormDefault="unqualified"
version="2.5">
<xsd:annotation>
<xsd:documentation>
@(#)web-app_2_5.xsds 1.62 05/08/06
</xsd:documentation>
</xsd:annotation>
...
...
以上两个约束xml的方式dtd和schema,只需做了解即可。
海报
185