dtd(内部与外部)约束模式举例
内嵌DTD:
<?xml version="1.0" encoding="gb2312"?>
<!DOCTYPE 书架[
<!ELEMENT 书架(书+)>
<!ELEMENT 书(书名,作者,售价)>
<!ELEMENT 书名(#PCDATA)>
<!ELEMENT 作者(#PCDATA)>
<!ELEMENT 售价(#PCDATA)>
]>
<书架>
<书>
<书名>java</书名>
<作者>白艳</作者>
<售价>78</售价>
</书>
<书>
<书名>c++</书名>
<作者>钱能</作者>
<售价>12</售价>
</书>
</书架>
外部DTD:
book.dtd
<?xml version="1.0" encoding="UTF-8"?>
<!-- ?:0 1 +:1 N *:0 N |:或 EMPTY:当前标记内容必须为空 ANY:当前文档中所有的标记都可以出现-->
<!ELEMENT bookinfo (book)+>
<!ELEMENT book ((name | bookname), author, price, type, age)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT bookname (#PCDATA)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT price (#PCDATA)>
<!ELEMENT type EMPTY>
<!ELEMENT age ANY>
<!-- 属性:ATTLIST
ATTLIST 节点名字 属性名字 类型(CDATA|ID ) #约束条件
如:#FIXED "111" :指定当前的id属性必须为111
#REQUIRED:属性必须存在
#IMPLIED :属性可以不存在
ID:唯一值
<!ATTLIST element-name attribute-name CDATA "default-value">
默认属性值
<!ATTLIST element-name attribute-name attribute-type #IMPLIED>
隐含的属性值
<!ATTLIST element-name attribute_name attribute-type #REQUIRED>
必添的属性
<!ATTLIST element-name attribute_name attribute-type #FIXED “value”>
固定属性值
Attribute-type - Type
ID - 当前元素的编号
IDREF-引用其他元素的编号
-->
<!ATTLIST book id ID #IMPLIED>
book.xml
<?xml version="1.0" encoding="gb2312"?>
<!DOCTYPE bookinfo SYSTEM "book.dtd">
<!--
<!DOCTYPE bookinfo PUBLIC "http://www.csuinfosoft.com" "book.dtd" >
-->
<bookinfo>
<book id="A">
<name>java编程思想</name>
<author>啊三</author>
<price>98</price>
<type/>
<age>
<name/>
</age>
</book>
<book id="B">
<bookname>7天精通炒股</bookname>
<author>周星星</author>
<price>198</price>
<type/>
<age/>
</book>
</bookinfo>
补充:软件开发 , Java ,