xml学习4-dtd
1、DTD元素的定義
<?xml version="1.0" encoding="gb2312"?>
<!--*表示0或者多個? +表示至少要有一個? ?表示0個或者一個 內(nèi)容模型? |表示只能包含分隔開中的一個
?,表示序列? 下面是DTD元素的聲明???? #PCDATA 表示字符數(shù)據(jù)?? EMPTY表示 空元素???? ANY 表示該元素可以包含
任意類型的字符數(shù)據(jù)和子元素,只要符合xml規(guī)則就行。在實際使用時候應該避免使用ANY? 明確的DTD 有助于我們理解文檔
<!ELEMENT? employee (#PCDATA | name*)> 表示混合元素 就是employee中既可以包含子元素 也可以包含文本 但是必須是0個或者多個*
下面是DTD 元素定義
-->
<!DOCTYPE company[
<!ELEMENT company (employee)>?????????????????????????????????????? //表示compant元素下包含 employee元素
<!ELEMENT employee (name,age,sex,salary,interest*)>?? //employee元素包含? name? age sex? salary? interest元素?? interest元素可以使 0個或者多個
<!ELEMENT salary (cash | credit_card)>???????????????????????? //salary 方式有? cash? 或者 credit_card中的一種
<!ELEMENT cash (#PCDATA)>????????????????????????????????????????? //cash 包含的數(shù)據(jù)是字符一下雷同
<!ELEMENT credit_card (#PCDATA)>??
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT sex (#PCDATA)>?
<!ELEMENT interest (#PCDATA)>?
?]>
?<company>
?<employee>
??? <name>zhangsan</name>??
??? <age>15</age>
??? <sex>男</sex>
??? <salary>
??? <credit_card>2000</credit_card>
??? </salary>
??? <interest>basketball</interest>
??? <interest>football</interest>
??? <interest>volleyball</interest>
?</employee>?
?</company>
?
2、DTD元素的定義? DTD屬性用來限制xml屬性
DTD元素采用
<!ATTLIST? 元素名
屬性名1? CDATA?? #REUIRED??????? //屬性必須設置
屬性名2? CDATA?? #IMPLIED?? //表示屬性可以設置也可以不設置?? #FIXED表示值固定 不能設置
>
如下 :
<!ATTLIST? employee
name?? CDATA?? #REQUIRED??? //name值必須被設置?
sex???? CDATA? "女"???????????????????? //使用默認值 可以設置或者不設置
age?? CDATA? #FIXED? "15"????? //值是固定的不可以設置
interest?? CDATA?? #IMPLIED?? //愛好可有可無?
>
元素的類型 :我們知道CDATA表示 字符型那么? ENUMRATED 枚舉類型用什么表示呢?
(a |? b |?c | d)? 這就表示枚舉類型 。
<!ATTLIST? emploree
name? (a | b | c | d)? "a"
>?
下面是一個應用
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE? employee[?
<!ELEMENT employee (name,salary)>
<!ATTLIST salary way (check|cash) #REQUIRED>
<!ELEMENT salary (#PCDATA)>
<!ELEMENT name (#PCDATA)>
]>
<employee>
<name>xiaowang</name>
<salary way="cash"></salary>
</employee>
?
ID 這個類型用于 唯一的標識xml中的某個元素,這樣的屬性 每個元素的屬性 都不恩能夠相同? 。
?
?
3、DTD的實體引用 就是像html中的轉(zhuǎn)義字符一樣使用 ,只不過這個實體引用時我們自己定義的 ,
實體是用于定義引用普通文本或特殊字符的快捷方式的變量。
實體引用是對實體的引用。
實體可在內(nèi)部或外部進行聲明。
一個內(nèi)部實體聲明
語法:
<!ENTITY 實體名稱 "實體的值">例子:
DTD 例子:
<!ENTITY writer "Bill Gates"> <!ENTITY copyright "Copyright W3School.com.cn">XML 例子:
<author>&writer;©right;</author>注釋: 一個實體由三部分構成: 一個和號 (&), 一個實體名稱, 以及一個分號 (;)。
一個外部實體聲明
語法:
<!ENTITY 實體名稱 SYSTEM "URI/URL">例子:
DTD 例子:
<!ENTITY writer SYSTEM "http://www.w3school.com.cn/dtd/entities.dtd"> <!ENTITY copyright SYSTEM "http://www.w3school.com.cn/dtd/entities.dtd">XML 例子:
<author>&writer;©right;</author>?
?
?
?
?
?
?
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/mosatsu/archive/2012/04/08/2466784.html
總結(jié)
以上是生活随笔為你收集整理的xml学习4-dtd的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 九款Web服务器性能压力测试工具
- 下一篇: 学习通网页版无法粘贴至提交答案框的解决方