XML语法
一. XML语法规则
规则1:必须有XML声明语句,格式如下:
<?xml version="1.0" standalone="yes/no" encoding="UTF-8"?>
声明的作用是告诉浏览器或者其它处理程序:这个文档是XML文档。声明语句中的version表示文档遵守的XML规范的版本;standalone表示文档是否附带DTD文件,如果有,参数为no;encoding表示文档所用的语言编码,默认是UTF-8。<?...?>标记代表一个处理指令,它 提醒分析器注意这个标记:它说明某些重要的,分析器必须执行的指令或信息.
规则2:是否有DTD文件
如果文档是一个"有效的XML文档",那么文档一定要有相应DTD文件,并且严格遵守DTD文件制定的规范。DTD文件的声明语句紧跟在XML声明语句后面,格式如下:
<!DOCTYPE type-of-doc SYSTEM/PUBLIC "dtd-name">
其中:
"!DOCTYPE"是指你要定义一个DOCTYPE;
"type-of-doc"是文档类型的名称,由你自己定义,通常于DTD文件名相同;
"SYSTEM/PUBLIC"这两个参数只用其一。SYSTEM是指文档使用的私有DTD文件的网址,而PUBLIC则指文档调用一个公用的DTD文件的网址。
"dtd-name" 就是DTD文件的网址和名称。所有DTD文件的后缀名为".dtd"。
规则3:注意你的大小写
在XML文档中,大小写是有区别的。<P>和<p>是不同的标识。注意在写元素时,前后标识大小写要保持一样。例如:<Author>ajie</Author>,写成<Author>ajie</author>是错误的。
你最好养成一种习惯,或者全部大写,或者全部小写,或者大写第一个字母。这样可以减少因为大小写不匹配产生的文档错误。
规则4:给属性值加引号
在HTML代码里面,属性值可以加引号,也可以不加。例如:<font color=red>word</font>和<font color="red">word</font>都可以被浏览器正确解释。
但是在XML中则规定,所有属性值必须加引号(可以是单引号,也可以是双引号),否则将被视为错误。
规则5:所有的标识必须有相应的结束标识
在HTML中,标识可能不是成对出现的,比如<br>。而在XML中规定,所有标识必须成对出现,有一个开始标识,就必须有一个结束标识。否则将被视为错误。
规则6:所有的空标识也必须被关闭
空标识就是标识对之间没有内容的标识。比如<br>,<img>等标识。在XML中,规定所有的标识必须有结束标识,针对这样的空标识,XML中处理的方法是在原标识最后加/,就可以了。例如:
<IMG src= "cool.gif">应写为<IMG src= "cool.gif" />
二. 元素的语法
在XML中,没有任何保留字,所以你可以随心所欲的用任何词语来作为元素名称。但是也必须遵守下列规范:
1.名称中可以包含字母、数字以及其它字母;
2.名称不能以数字或"_" (下划线)开头;
3.名称不能以字母 xml(或 XML 或 Xml ..)开头
4.名称中不能包含空格
5.名称中间不能包含":"(冒号)
为了使元素更容易阅读理解和操作,我们还有一些建议:
1.名称中不要使用"."。因为在很多程序语言中,"."是作为对象的属性,例如:font.color。同样的原因"-"也最好不要用,必须使用的,以"_"代替;
2.名称尽量简短。
3.名称的大小写尽量采用同一标准。
4.名称可以使用非英文字符,比如用中文。但是有些软件可能不支持。
另外,补充一点关于属性的说明。在HTML中,属性可以用来定义元素的显示格式,比如:<font color="red">word</font>将把word显示为红色。而在XML中,属性只是对标识的描述,与元素内容的显示无关。例如同样一句:<font color="red">word</font>,并不会将word显示为红色。(那么,有网友会问:如何在XML中将文字显示为红色呢?这就需要使用CSS或者XSL,我们在下面详细讲述。)
三. CDATA的语法
CDATA全称character data,翻译为字符数据。我们在写XML文档时,有时需要显示字母,数字和其它的符号本身,比如"<",而在XML中,这些字符已经有特殊的含义,我们怎么办呢?这就需要用到CDATA语法。语法格式如下: <![CDATA[这里放置需要显示的字符]]> 例如:
<![CDATA[<AUTHOR sex="female">ajie</AUTHOR>]]>
在页面上显示的内容将是"<AUTHOR sex="female">ajie</AUTHOR>"
四. Namespaces的语法
Namespaces翻译为名字空间。名字空间有什么作用呢?当我们在一个XML文档中使用他人的或者多个DTD文件,就会出现这样的矛盾:因为XML中标识都是自己创建的,在不同的DTD文件中,标识名可能相同但表示的含义不同,这就可能引起数据混乱。
比如在一个文档<table>wood table</table>中<table>表示桌子,
而在另一个文档<table>namelist</table>中<table>表示表格。如果我需要同时处理这两个文档,就会发生名字冲突。
了解决这个问题,我们引进了namespaces这个概念。namespaces通过给标识名称加一个网址(URL)定位的方法来区别这些名称相同的标识。
Namespaces同样需要在XML文档的开头部分声明,声明的语法如下:
<document xmlns:yourname='URL'>
其中yourname是由你定义的namespaces的名称,URL就是名字空间的网址。
假设上面的"桌子<table>"文档来自http://www.zhuozi.com,我们就可以声明为
<document xmlns:zhuozi='http://www.zhuozi.com'>
然后在后面的标识中使用定义好的名字空间:
<zhuozi:table>wood table</table>
这样就将这两个<table>区分开来。注意的是:设置URL并不是说这个标识真的要到那个网址去读取,仅仅作为一种区别的标志而已。
五. entity的语法
entity翻译为"实体"。它的作用类似word中的"宏",也可以理解为DW中的摸板,你可以预先定义一个entity,然后在一个文档中多次调用,或者在多个文档中调用同一个entity。
entity可以包含字符,文字等等,使用entity的好处在于:1.它可以减少差错,文档中多个相同的部分只需要输入一遍就可以了。2.它提高维护效率。比如你有40个文档都包含copyright的entity,如果需要修改这个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 "http://www.sample.com/copyright.xml">
]
>
定义好的entity在文档中的引用语法为:&entity-name;
例如,上面定义的版权信息,调用时写作:©right;
完整的例子如下,你可以copy下来存为copyright.xml观看实例:
<?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.com</email>
<date>20010115</date>
©right;
</myfile>
六. DTD的语法
DTD是"有效XML文档"的必须文件,我们通过DTD文件来定义文档中元素和标识的规则及相互关系。如何建立一个DTD文件呢?
1.设置元素
元素是XML文档的基本组成部分。你要在DTD中定义一个元素,然后在XML文档中使用。元素的定义语法为:<!ELEMENT DESCRIPTION (#PCDATA, DEFINITION)*>
说明: "<!ELEMENT" 是元素的声明,说明你要定义的是一个元素;
声明后面的"DESCRIPTION",是元素的名称
"(#PCDATA, DEFINITION)*>"则是该元素的使用规则。规则定义了元素可以包含的内容以及相互的关系(具体查看元素的规则表).
分享到:
相关推荐
1. **XML基础**:WiX是基于XML的,因此了解XML的基本语法和结构至关重要。XML元素定义了安装包的不同部分,如文件、注册表项、快捷方式等。 2. **项目结构**:WiX项目通常包含多个XML文件,如`Product.wxs`(定义...
2. **XML格式化与压缩**:XMLSpy提供XML格式化功能,可以将混乱无序的XML文档整理成整洁易读的形式。同时,它也支持XML压缩,将大型XML文件进行压缩处理,减少存储空间占用,便于传输。 3. **XML验证**:工具内建了...
2. 错误处理:解析过程中可能出现语法错误,应确保正确处理这些异常,防止程序崩溃。 3. 性能优化:对于大型XML文档,优先考虑SAX解析,或使用StAX以降低内存和CPU消耗。 总之,XML解析是IT领域中的基础技能之一,...
2. **格式化**:插件可以自动将杂乱无章的XML代码整理成整洁、易读的格式。这对于处理大型或复杂的XML文件尤其有用,可以提高工作效率。 3. **XPath支持**:XPath是一种语言,用于在XML文档中查找信息。通过集成...
### XML文档定义与DTD详解 #### 一、XML概述 XML(Extensible Markup Language)是一种标记语言,用于存储和传输数据。与HTML不同的是,XML主要用于...掌握DTD的基本用法和语法结构对于理解和处理XML文档至关重要。
XML编辑器的核心在于对XML语法的智能支持。Visual Editor for XML具备了自动完成、语法高亮、错误检查等功能,使得编写XML文档更加便捷。自动完成功能可以在输入元素或属性时提供提示,减少手动输入的工作量;语法...
然而,XML的复杂性和严格的语法要求使得处理XML文件时可能会遇到各种问题,如解析错误、格式不正确等。在这种情况下,拥有一个强大的XML查看器就显得至关重要。"FirstObject XML Editor"就是这样一款专业工具,专为...
XML文档必须遵循一定的语法规则,例如所有元素都必须正确嵌套,且文档必须有且仅有一个根元素。 **Libxml2的功能与特性:** 1. **解析器:** Libxml2提供了一整套的解析API,能够处理XML、HTML、XInclude、DTD、...
首先,XML语法规则检查是该插件的核心特性之一。它能够实时检测并提示用户在编写XML文档时可能存在的语法错误,如未闭合的标签、非法字符或不符合XML规范的结构。这有助于确保XML文档的结构正确无误,避免因格式问题...
3. **采用简洁的XML语法** - 使用简洁形式可以减少XML配置文件中的冗余信息,从而提高其可读性。例如,将下面的XML片段: ```xml ``` 简化为: ```xml ``` 这种简化的语法在Spring 1.2及以上版本...
1. **XML格式化**:XML格式化是指将未经排版或混乱的XML文档整理成规范的、易于阅读的形式。这通常包括添加适当的换行符、缩进和空格,使XML元素层次清晰。例如,将一长串没有换行和缩进的XML代码转换成每一层元素都...
本资源提供的"XML格式化插件"是专为Notepad++设计的扩展,能够帮助用户快速、便捷地对XML文档进行美化和整理,使其更符合XML语法规则,便于理解和编辑。该插件的安装方法相对简单,无需通过Notepad++的插件管理器,...
描述中提到,XML Tools提供了诸如“格式化XML文本”和“校验XML语法”等关键功能。这些功能对于处理XML文档至关重要。XML(可扩展标记语言)是一种用于结构化数据的标记语言,常用于存储和传输数据,特别是在web服务...
XML Marker还提供了其他实用功能,如XML格式化,可以帮助用户整理杂乱的XML代码,使其更加整洁易读。查找和替换功能则使得在大量XML数据中定位特定信息变得轻松。此外,它还支持XML验证,可以检查XML文件是否符合...
2. **语法高亮**:软件内建的语法高亮功能,使得XML标签、属性和值等关键元素更加醒目,提高代码审查效率。 3. **验证功能**:XMLwriter 支持XML文档的验证,可以检查文档是否符合特定的XML Schema(XSD)或DTD...
该插件还可以验证XML文档是否符合DTD或XSD规范,检查XML语法错误,并进行XPath查询等操作。 对于JSON格式,我们依赖“JSON Viewer”插件。一旦安装完成,当打开一个JSON文件时,Notepad++会自动高亮显示JSON结构,...
格式化功能,可以将混乱的XML代码整理得整洁易读;或者提供代码编辑器,让用户可以直接在工具内修改XML文档。这类工具通常还会支持拖放操作,方便导入XML文件,以及导出为其他格式,如HTML或文本,以便进一步处理。 ...
2. **语法高亮**:为了提高代码可读性,需要实现XML语法的高亮显示。这可以通过分析XML文档结构,为不同的XML元素、属性和标签设置不同的字体颜色和样式来实现。 3. **验证XML有效性**:XML文档需要符合其定义的XSD...
XML的语法是严格定义的,它要求每个标签都必须成对出现,例如`<tag>`和`</tag>`。标签自定义,允许用户根据需求创建自己的元素类型。XML文档的开头通常包含一个声明,如`<?xml version="1.0" encoding="UTF-8"?>`,...