=================
DTD作用便是约束xml,可以单独写一个dtd文件,也可以xml里
一个xml只能指定一个DTD,但是可以指定多个schema,schema也是一种约束
这样如果写的xml没有根据约束走,就会提示出错,在eclipse里会有x出现
如果是网络的dtd, PUBLIC就是代表网络上的 UNKNOWN是dtd的名称 ,unknown.dtd是dtd的路径
<<!DOCTYPE stus PUBLIC "//UNKNOWN/" "unknown.dtd">
如果是本地的dtd,直接写路径即可
<<!DOCTYPE stus SYSTEM "_003_DTD和schema语法.dtd">
如果是本页面写
<!DOCTYPE stus[
<!ELEMENT stus (stu)> 代表stus有1个子标签,如果有多个相同的stu, stus (stu)+ 即可,+代表1个或多个,是正则
<!ELEMENT stu (name,age)> 代表stu有2个子标签,顺序必须相同,如果中间是| 就是2个当中有一个,但不能有2个
<!ELEMENT name (#PCDATA)> #PCDATA 代表文本,也就是随便写
<!ATTLIST stu id CDATA "#IMPLIDE"> !ATTLIST 元素名称 属性名称 属性类型 默认值 这个是约束属性的
#REQUIRED 属性值是必需的
#IMPLIED 属性不是必需的
#FIXED value 属性值是固定的
这里DTD只做简单的使用,DTD教程 http://www.runoob.com/dtd/dtd-tutorial.html
<!DOCTYPE stus[
<!ELEMENT stus (stu)*>
<!ELEMENT stu (name , age)>
<!ELEMENT name (#PCDATA) >
<!ELEMENT age (#PCDATA) >
<!ATTLIST stu id CDATA "#IMPLIDE" >
]>
<stus>
<stu id="10086" >
<name>李四</name>
<age>18</age>
</stu>
<stu id="10086" >
<name>张三</name>
<age>19</age>
</stu>
</stus>
schema约束语法
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/_004_Schema"
xmlns:tns="http://www.example.org/_004_Schema" elementFormDefault="qualified">
<!-- xmlns 名称空间,命名空间 -->
<!-- targetNamespace 目标名称的空间,下面定义的元素都与这个名称空间绑定 -->
<!-- elementFormDefault 元素的格式化情况 -->
<element name="teachers">
<!--代表复杂元素 -->
<complexType>
<!-- 代表是一个有序元素,且teacher能出现俩次 maxOccurs="2"-->
<sequence >
<element name="teacher">
<!-- 这是一个复杂元素-->
<complexType>
<!-- 代表这是一个有序的元素 -->
<sequence>
<!-- 下面2个都是简单元素 -->
<element name="name" type="string"></element>
<element name="age" type="int"></element>
</sequence>
</complexType>
</element>
</sequence>
</complexType>
</element>
</schema>
在xml里引入
<!-- 这个要写 -->
<teachers
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.example.org/_004_Schema"
xsi:schemaLocation="http://www.example.org/_004_Schema _004_Schema.xsd"
>
<teacher>
<name>哈哈哈</name>
<age>19</age>
</teacher>
</teachers>
上面2种约束,都只是了解即可,可以做一个简单的约束就行了,因为前期都是用的别人的约束