1、dtd约束与xml分开写
book.dtd
<!ELEMENT 书架 (书+)>
<!ELEMENT 书 (书名,作者,售价)>
<!ELEMENT 书名 (#PCDATA)>
<!ELEMENT 作者 (#PCDATA)>
<!ELEMENT 售价 (#PCDATA)>
<!ATTLIST 书名 name CDATA #REQUIRED>
book.xml
<?xml version="1.0" encoding="gb2312"?>
<!DOCTYPE 书架 SYSTEM "book.dtd">
<书架>
<书>
<书名 name="xxx">Java就业培训教程</书名>
<作者>张孝祥</作者>
</书>
<书>
<书名 name="yyy">JavaScript网页开发</书名>
<作者>张三</作者>
<售价>28.00元</售价>
</书>
</书架>
dtd写在xml里面
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE 书架 [
<!ELEMENT 书架 (书+)>
<!ELEMENT 书 (书名,作者,售价)>
<!ELEMENT 书名 (#PCDATA)>
<!ELEMENT 作者 (#PCDATA)>
<!ELEMENT 售价 (#PCDATA)>
]>
<书架>
<书>
<书名>Java就业培训教程</书名>
<作者>张孝祥</作者>
<售价>39.00元</售价>
</书>
</书架>
2、
Dom解析:CURD方便,占内存大
Sax解析:占内存小,解析速度快,适合于读取。