分享
 
 
 

XML初学进阶学习笔记(2)

王朝other·作者佚名  2008-05-21
窄屏简体版  字體: |||超大  

15、

<!ELEMENT联系人(姓名,EMAIL)>

<!ELEMENT姓名(#PCDATA)>

<!ELEMENTEMAIL(#PCDATA)>

如果我们使用逗号“,”来分隔两个子元素,那么XML文件中,元素“姓名”就必须出现在元素“EMAIL”前面。反之,可以无序。

16、XML正则表达式的匹配原则不允许循环逻辑。所以,OR的意思是或者选这个或者选那个,但不能两个都选,也不能两个都不选。

17、注意:在一个组中,只允许使用一种连接符(例如“,”或“|”)。因此,象下面这样定义的DTD是不合法的:

<!ELEMENT联系人(姓名,电话|EMAIL)>

要想使用多种连接符,只有通过创建子组的方式,使用

<!ELEMENT联系人(姓名,(电话|EMAIL))>

前面我们已经介绍了所有可能用到的子元素的排列状况。不过,还有一种情况没有说,那就是,一个元素中不包含任何子元素,也不包含纯文本。

对于这种情况,我们可以定义一个空标记。当然,定义这样一个标记很简单,你只需要使用关键字EMPTY就可以了,例如:

<!ELEMENTHREMPTY>

这样,在你的XML文件中,就可以使用一个空元素<HR/>。

18、IDREF类型允许一个元素的属性使用文件中的另一个元素,方法就是把那个元素的ID标识值作为该属性的取值。

19、参数实体专门用在DTD中。定义方式是:

<!ENTITY%实体名"实体内容">

或:schema

<!ENTITY%实体名SYSTEM"外部文件名">

引用方式为:

%实体名;

20、使用参数实体,可以方便元素和属性的声明。例如:

<!ENTITY%TAG_NAMES"姓名|EMAIL|电话|地址">

<!ELEMENT个人联系信息(%TAG_NAMES;|生日)>

<!ELEMENT客户联系信息(%TAG_NAMES;|公司名)>

21、dt:type

dt:type指定所声明属性的数据类型,它除了支持DTD中包含的全部十大数据类型外,还支持一些扩展属性,在下一小节会详细讲述。

Schema中的十个基本属性与DTD中属性的对应关系请见下表:

Schema中基本类型

DTD中数据类型

string

#PCDATA

enumeration

ENUMERATED

id

ID

idref

IDREF

idrefs

IDREFS

nmtoken

NMTOKEN

nmtokens

NMTOKENS

entity

ENTITY

entities

EMTITIES

notation

NOTATION

注意,当dt:type取值为"enumeration"时,后面的dt:value必须列出所有可能的取值。

22、attribute实际上是对该Schema中AttributeType声明的引用,而具体引用什么属性类型,

关键就要靠type属性了。type唯一指定了要引用的属性类型,

因此其取值必须同某个AttributeType元素中name属性的取值严格一致。

其它两个属性与AttributeType中相应属性的含义相同,

default指定该属性类型的缺省取值,

required指定该属性对于引用它的元素是否是必须的。

如果和同一个属性相对应的AttributeType和attribute中都对default和required给出了定义,

则在attribute中的取值具有更高的优先级。

23、XML较之HTML最根本的差别在于XML是定义置标语言的元语言,

而HTML仅仅是由SGML元置标语言定义的一个实例语言。利用XML元置标语言,

定义各种各样的XML实例的活动是相当开放的。针对不同的应用方向,

每设计一个XML的DTD,一种新的置标语言便随之诞生。

在各种各样XML实例置标语言如雨后春笋般不断涌现的过程中,

将会产生这样一种应用需求,即在一个XML文档中,包含由多个DTD描述的元素。

这个想法显然是达到“物尽其用”的一个好办法,它帮助我们最大程度地利用了现有的资源,

正所谓“海纳百川,有容乃大”。

24、CSS和XSL均属于样式单的一种,都可以用来设定文档的外观。那么,它们有什么区别呢?

比较起来,它们主要有以下几个大的不同:

用途不同

CSS最早是针对于HTML提出的,后来又将其应用于XML之中,

它既可以为HTML文档中的各个成分设定样式,又可以为XML中的成分设定样式。

XSL是专门针对XML提出的,它不能处理HTML文档。但它有一个CSS无法达到的功能,

即用一个命令行将一个XML文档转换为另一个文档并存盘。

处理结果不同

XSL采用的是一种转换的思想,它将一种不含显示信息的XML文档转换为另一种可以用某种浏览器浏览的文档,

转换后的输出码或者存为一个新的文档,或者暂存于内存中,但都不修改源代码。而CSS则没有任何转换动作,

只是针对结构文档中的各个成分,依照样式规定一一设定外观式样,再由浏览器依据这些式样显示文档,在整个过程中没有任何新码产生。

表现能力不同

在XSL中定义的90%的样式规定,实际上在CSS中都有定义。但仍然有一些效果是CSS无法描述的,

必须使用XSL不可。这些功能包括文本的置换,例如将一个美国的时间表示格式转换为一个中国的时间表示格式;

根据文本内容决定显示方式,例如将60分以上的分数用黑色显示,60分以下的分数用红色显示;

将文档中的成分按照某一个子成分的值进行排序,例如将商品按售价进行排序。

此外,还有对于超链接的支持,对于FRAME的支持,对于某些语种文字从上到下,

行从右到左的排列格式的支持等,都是XSL所独有的。

语法不同

XSL是根据XML的语法进行定义的,实际上又是XML的一种应用。而CSS的语法自成体系,

且比较简单,易学易用。

综上所述,一个XML文档的显示方式可以归纳为三种:即利用CSS显示,

利用XSL转化为FO显示,以及利用XSL转化为HTML文档显示(这个HTML文档中可包含CSS样式)。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有