XML轻松学习手册(四):XML语法
疯狂代码 azycoder/ ĵ:http:/azycoder/XMLJiaoCheng/Article20051.html 第 4章 XML语法
提纲:
.XML语法规则
2.元素语法
3.注释语法
4.CDATA语法
5.Namespaces语法
7.DTD语法
通过前面 3章学习我们已经对什么是XML它实现原理以及相关术语有所了解接下来我们就开始学习XML语法规范标准动手写自己XML文档
.XML语法规则XML文档和HTML原代码类似也是用标识来标识内容创建XML文档必须遵守下列重要规则:
规则1:必须有XML声明语句
这点我们在上章学习时已经提到过声明是XML文档第句其格式如下:
声明作用是告诉浏览器或者其它处理:这个文档是XML文档声明语句中version表示文档遵守XML规范标准版本;standalone表示文档是否附带DTD文件如果有参数为no;encoding表示文档所用语言编码默认是UTF-8规则2:是否有DTD文件
如果文档是个\"有效XML文档\"(见上章)那么文档定要有相应DTD文件并且严格遵守DTD文件制定规范标准DTD文件声明语句紧跟在XML声明语句后面格式如下:
其中:
\"!DOCTYPE\"是指你要定义个DOCTYPE;
\"type-of-doc\"是文档类型名称由你自己定义通常于DTD文件名相同;
\"SYSTEM/PUBLIC\"这两个参数只用其SYSTEM是指文档使用私有DTD文件网址而PUBLIC则指文档个公用
DTD文件网址
\"dtd-name\" 就是DTD文件网址和名称所有DTD文件后缀名为\".dtd\"
我们还是用上面例子应该写成这样:
规则3:注意你大小写
在XML文档中大小写是有区别 和 是区别标识注意在写元素时前后标识大小写要保持样例如:ajie写成ajie是
你最好养成种习惯或者全部大写或者全部小写或者大写第个字母这样可以减少大小写不匹配产生文档规则4:给属性值加引号
在HTML代码里面属性值可以加引号也可以不加例如:word和word都可以被浏览器正确解释
但是在XML中则规定所有属性值必须加引号(可以是单引号也可以是双引号)否则将被视为规则5:所有标识必须有相应结束标识
在HTML中标识可能不是成对出现比如
而在XML中规定所有标识必须成对出现有个开始标识就必须有个结束标识否则将被视为
规则6:所有空标识也必须被关闭
空标识就是标识对的间没有内容标识比如
,等标识在XML中规定所有标识必须有结束标识针对这样空标识XML中处理思路方法是在原标识最后加/就可以了例如:应写为
;
应写为 ;
>
>
应写为>
>
2.元素语法
元素由对标识以及其中内容组成就象这样:ajie元素名称和标识名称是样标识可以用属性来进步描述
在XML中没有任何保留字所以你可以随心所欲用任何词语来作为元素名称但是也必须遵守下列规范标准:
1.名称中可以包含字母、数字以及其它字母;
2.名称不能以数字或\"_\" (下划线)开头;
3.名称不能以字母 xml(或 XML 或 Xml ..)开头
4.名称中不能包含空格
5.名称中间不能包含\":\"(冒号)
为了使元素更容易阅读理解和操作我们还有些建议:
1.名称中不要使用\".\"在很多语言中,\".\"是作为对象属性例如:lor同样原因\"-\"也最好不要用必须使用
以\"_\"代替;
2.名称尽量简短
3.名称大小写尽量采用同标准
4.名称可以使用非英文比如用中文但是有些软件Software可能不支持(IE5目前是支持中文元素)
另外补充点有关属性介绍说明在HTML中属性可以用来定义元素显示格式比如:word将把word显示为红而在XML中属性只是对标识描述和元素内容显示无关例如同样句:word并不会将word显示为红(那么有网友会问:如何在XML中将文字显示为红呢?这就需要使用CSS或者XSL我们在下面详细讲述)
3.注释语法
注释是为了便于阅读和理解在XML文档添加附加信息将不会被解释或则浏览器显示
注释语法如下:
可以看到它和HTML中注释语法是样非常容易养成良好注释习惯将使你文档更加便于维护共享看起来也更专业 4.CDATA语法
CDATA全称character data翻译为数据我们在写XML文档时有时需要显示字母数字和其它符号本身比如\"<\"而在XML中这些已经有特殊含义我们如何办呢?这就需要用到CDATA语法语法格式如下:
例如:
ajie]]>
在页面上显示内容将是\"ajie\"
5.Namespaces语法
Namespaces翻译为名字空间名字空间有什么作用呢?当我们在个XML文档中使用他人或者多个DTD文件就会出现这样矛盾:XML中标识都是自己创建在区别DTD文件中标识名可能相同但表示含义区别这就可能引起数据混乱
比如在个文档<table>wood table</table>中<table>表示桌子
而在另个文档<table>namelist</table>中<table>表示表格如果我需要同时处理这两个文档就会发生名字冲突
了解决这个问题我们引进了s这个概念s通过给标识名称加个网址(URL)定位思路方法来区别这些名称相同标识 Namespaces同样需要在XML文档开头部分声明声明语法如下:
<document xmlns:yourname=\'URL\'>
其中yourname是由你定义s名称URL就是名字空间网址
假设上面\"桌子<table>\"文档来自www.zhuozi我们就可以声明为
<document xmlns:zhuozi=\'www.zhuozi\'>
然后在后面标识中使用定义好名字空间:
<zhuozi:table>wood table</table>
这样就将这两个<table>区分开来注意是:设置URL并不是说这个标识真要到那个网址去读取仅仅作为种区别标志而已
entity翻译为\"实体\"它作用类似word中\"宏\"也可以理解为DW中摸板你可以预先定义个entity然后在个文档中多次或者在多个文档中同个entity
entity可以包含文字等等使用entity好处在于:1.它可以减少差错文档中多个相同部分只需要输入遍就可以了2.它提高维护效率比如你有40个文档都包含copyrightentity如果需要修改这个copyright,不需要所有文件都修改只要改最初定义entity语句就可以了
XML定义了两种类型entity种是我们这里说普通entity在XML文档中使用;另种是参数entity在DTD文件中使用 entity定义语法为:
<!DOCTYPE filename [
<!ENTITY entity-name \"entity-content\"
]
>
例如我要定义段版权信息:
<!DOCTYPE copyright [
<!ENTITY copyright \"Copyright 2001, Ajie. All rights reserved\"
]
>
如果我版权信息内容和他人共享个XML文件也可以使用外部思路方法语法象这样:
<!DOCTYPE copyright [
<!ENTITY copyright SYSTEM \"www.l\">
]
>
定义好entity在文档中引用语法为:&entity-name;
例如上面定义版权信息时写作:©right;
完整例子如下你可以copy下来存为l观看例子:
<?xml version=\"1.0\" encoding=\"GB2312\"?>
<!DOCTYPE copyright [
<!ENTITY copyright \"Copyright 2001, Ajie. All rights reserved\">
]>
<myfile>
<title>XML</title>
<author>ajie</author>
<email>ajie@aolhoo</email>
<date>20010115</date>
©right;
</myfile>
5.Namespaces语法
Namespaces翻译为名字空间名字空间有什么作用呢?当我们在个XML文档中使用他人或者多个DTD文件就会出现这样矛盾:XML中标识都是自己创建在区别DTD文件中标识名可能相同但表示含义区别这就可能引起数据混乱
比如在个文档<table>wood table</table>中<table>表示桌子
而在另个文档<table>namelist</table>中<table>表示表格如果我需要同时处理这两个文档就会发生名字冲突
了解决这个问题我们引进了s这个概念s通过给标识名称加个网址(URL)定位思路方法来区别这些名称相同标识 Namespaces同样需要在XML文档开头部分声明声明语法如下:
<document xmlns:yourname=\'URL\'>
其中yourname是由你定义s名称URL就是名字空间网址
假设上面\"桌子<table>\"文档来自www.zhuozi我们就可以声明为
<document xmlns:zhuozi=\'www.zhuozi\'>
然后在后面标识中使用定义好名字空间:
<zhuozi:table>wood table</table>
这样就将这两个<table>区分开来注意是:设置URL并不是说这个标识真要到那个网址去读取仅仅作为种区别标志而已
entity翻译为\"实体\"它作用类似word中\"宏\"也可以理解为DW中摸板你可以预先定义个entity然后在个文档中多次或者在多个文档中同个entity
entity可以包含文字等等使用entity好处在于:1.它可以减少差错文档中多个相同部分只需要输入遍就可以了2.它提高维护效率比如你有40个文档都包含copyrightentity如果需要修改这个copyright,不需要所有文件都修改只要改最初定义entity语句就可以了
XML定义了两种类型entity种是我们这里说普通entity在XML文档中使用;另种是参数entity在DTD文件中使用 entity定义语法为:
<!DOCTYPE filename [
也可以用单引号引起来<!ENTITY entity-name \"entity-content\"
]
[1][2]下页
2009-2-12 5:08:39
疯狂代码 azycoder/
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论