XML的DTD

声明语句:必须在第一行出现,并且不能有空白;

有两种办法来实现

第一种:规定DTD内部

课上做的小练习:

<?xmlversion="1.0" encoding="UTF-8"?>

<!DOCTYPEbookinfo

[

<!ELEMENTbookinfo (title,author,publish,price)>

<!ELEMENT title(#PCDATA)>

<!ELEMENT author(#PCDATA)>

<!ELEMENT publish(publisher,ISBN,pubdate)>

<!ELEMENTpublisher (#PCDATA)>

<!ELEMENT ISBN(#PCDATA)>

<!ELEMENT pubdate(#PCDATA)>

<!ELEMENT price(#PCDATA)>

 

<!ATTLIST titlesrc CDATA #REQUIRED>

<!ATTLIST authortype CDATA "text/javascript">

<!ATTLIST publishid ID #IMPLIED>

<!ATTLIST pricetype (text|radio|checkbox) #IMPLIED>

<!ATTLIST ISBNfor IDREF #IMPLIED>

 

 

]>

 

<bookinfo>

<titlesrc="www">三国演义</title>

<authortype="text/javascript">罗贯中</author>

<publishid="a">

<publisher>河北软件出版社</publisher>

<ISBNfor="a">978-7-121-08311-2</ISBN>

<pubdate>20110920</pubdate>

</publish>

<pricetype="radio">$350</price>

</bookinfo>

<!DOCTYPE 根元素名称 [

元素规则(声明元素名,

 <!ELEMENT 元素名称  类型》

   类型:

EMPTY:空元素

ANY:可以包含任何内容,也可以为空

PCDATA:文体(不能使用特殊符号&><’”)(解析,&amp),还可以显示CDATA

CDATA:可以出现任何信息,把内容当作字符来显示

(子元素列表):逗号分隔,严格按照声明顺序来使用相应的子元素;

根元素只能有一个

如果在子元素后边加?(子元素?)该子元素可以出现0-1次

如果在子元素后边加+ :可以出现1-无数次

                  *:子元素可以出现0-无数次

(子元素1|子元素2):两个不能同时出现,可以出现子元素1或子元素2的其中一个

(子元素1,(子元素2,子元素3)?):()该组出现0-1次顺序不变

 

有外部DTD有点类似于CSS,DTA写的太长的话,把它剪切到外部

外部DTD:

文件:扩展名  .dtd

绝对路径:http://www.zhy.com/index.dtd

<!DOCTYPE 根元素名称 SYSTEM”URI/URL”>

<!DOCTYPE 根元素名称 PUBLC“公共名称” “URL”》

注意:中文xmlspy存在“必须既是SYSTEM 又是PUBLIC

 

属性规则

<!ATTLIST 元素名

  属性名1 类型  默认值

  ……

类型:

CDATA:表示值为字符;

例如:<!ATTLISTtest3 name CDATA “zhy”>

(en1|en2……):枚举类型(只能从给定的集合选择对应值)

默认值值:

#REQUIRED:该元素必须有该属性值;

#IMPLIED:表示该属性值可有可无;

#FIXED:表示该属性有固定值;

Default:

 

 

ID:表示值为唯一ID

IDREF:参照已存在ID

IDREFS:值为一个或多个参照已存在(其他)ID\

         多个参数中间用“空格”为分隔符,不能使用“逗号”

NMTOKEN:值为合法的XML名称;

NMTOKENS:由空格分隔开的多个XML名称

ENTITY:在DTD中声明实体名

ENTITIES:在DTD中声明用空格分隔的实体名;

NOTATION:在DTD声明中的注释

 

Html是为了显示信息的。

文档显示依赖的环境越多,浏览器开发就越困难不同浏览器的兼容性。

XML是为了保存数据的

 

XML标记命名规则

1)标记必须以英文字母或下划线“_”作为开头,如果在XML声明中把encoding属性值设置为“GB2312”,那么也可以使用中文开头

2)XML标记名严格区分大小写;

3)标记名不可以XML三个字母为开头(不论大小写);

4)除了开始字符外,其他字符必须是英文、数字、下划线、连接线和点“.”;

例如:

<abc> <_xy>   <书号>  <Hell-OK>

不合法:

<123a> <-hello>  <书号>  <XML123>  <ra%>等;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值