疯狂XML学习笔记(2)-------------格式要求
Xml的语法 ? 一个XML文件分为如下几部分内容: – 文档声明 – 元素 – 属性 – 注释 – CDATA区、特殊字符 – 处理指令(processing instruction) Xml的声明 最简单声明 <?xml version=”1.0”?> Encoding属性:字符编码如果没有指定默认的是UTF-8编码 常见的字符集 简体中文:GBK 或GB2312 繁体中文: BIG5 西欧字符:ISO8859-1 通用的国际编码:Unicode UTF-8 演示案例: <?xml version="1.0" encoding="UTF-8"?> <中国></中国> 引起错误的原因是:编码的错误
Standalone:指定该文档是否需要引用其它资源,属性值只有:yes或no Yes:独立 No:不独立
XML文件和HTML文件一样,实际上是一个文本文件。 显然大家立刻就会明白,创建XML文件最普通的工具和HTML一样,就是"记事本"了。 除了"记事本"之外,当然还有一些更加方便的工具,如XML Notepad、XML Pro、CLIP!XML Editor等, 这些工具的一大特点是:能够检查你所建立的XML文件是否符合XML规范。不过,现在这些工具都只有英文版的,并且需要付费使用。 当然,你仍然能够使用FrontPage、DreamWeaver等工具,不过使用起来不是很方便。 随着XML的逐渐普及,相信在不久后,也会出现非常好用的创建XML文件的工具。
在此文件中的第一行即是文件序言。该行是一个XML文件必须要声明的东西,而且也必须位于XML文件的第一行,它主要是告诉XML解析器如何工作。 其中,version是标明此XML文件所用的标准的版本号,必须要有;encoding指明了此XML文件中所使用的字符类型,可以省略,在你省略此声明的时候,后面的字符码必须是Unicode字符码(建议不要省略) 。因为我们在这个例子中使用的是GB2312字符码,所以encoding这个声明也不能省略。在文件序言部分还有一些声明语句,我们在后面给予介绍。
我们可以看到,文件主体是由开始的〈参考资料〉和结束的〈/参考资料〉控制标记组成,这个称为XML文件的"根元素";〈书籍〉是作为直属于根元素下的"子元素";在〈书籍〉下又有〈名称〉、〈作者〉、〈价格〉这些子元素。货币单位是〈价格〉元素中的一个"属性","人民币"则是"属性值"。
Xml元素的基本规则 元素是xml文档的基本单元,xml文档就是一个一个层层嵌套的元素组成的。整个的xml文档从根元素开始,根元素包含若干个子元素,而每个子元素又可以包含若干个子元素,从而可以组成一个xml文档。 Xml标签语法: 1、Xml的标签分为两类: 单标记:<中国/> 双标记:<中国></中国> 2、xml标签的要求: 1、标签名可以有字母(包括非西欧字符)、数字、下划线(_)、中划线(-)、冒号(:)和点号(.)组成,但不能以数字、中划线和点号开头。 2、标签名不能包含<、>、,、$等符号 3、标签名种尽量不要出现英文的冒号(:),除非在使用命名空间。 4、标签名不能以字符xml、XML等任意大小写组合开始。 5、标签名不能包含空格。 6、标签名区分大小写 3、xml标签嵌套子元素:xml允许深度嵌套子元素,只要保证元素之间合理的嵌套即可.而且xml元素可以嵌套多个重名的子元素,这多个子元素之间是有序的。 第一个:xml <中国> <北京> <海淀/> <朝阳></朝阳> <朝阳></朝阳> </北京> </中国> 第二个xml: <中国> <北京> <朝阳></朝阳> <朝阳></朝阳> <海淀/> </北京> </中国> 4、空元素:空元素不可以接受子元素,也不可以接受字符串内容。 第三个xml: <book> <name>redarmy</name> <content/> :备注:空元素但可以接受属性,而且可以接受多个属性 </book> <book> <name>redarmy</name> <content></content> :备注它包好的是一个空格空格也是字符 </book> 例如空元素接受属性: <book name=”Java建议” price=”30”/> 5、字符数据 <book> <computer>Struts2开发详解</computer> <computer> Struts2开发详解 </computer> </book> 对于XML标签中出现的所有空格和换行,XML解析程序都会当作标签内容进行处理 如果文本字符中包含了一些特殊的字符,例如<和&由于这些字符都有特殊的含义,因此直接在xml文档中使用该字符串将引起文档的混乱。 <表达式>
<比较符>1+3<6</比较符> </表达式>
代表的是文本字符串中包含了特殊的字符
有以下两种方法解决: 1、 使用实体引用:用另一个特殊符号代替这些特殊符号 2、 使用CDATA标记:将整个文档定义成字符串。 1、 使用实体引用
<?xml version="1.0" encoding="UTF-8"?> <表达式> <比较符>1+3&<6</比较符> </表达式> 上面的红色的<产生了干扰
解决如下: <?xml version="1.0" encoding="UTF-8"?> <表达式> <比较符>1+3<6</比较符> </表达式> 2、 使用CDATA标记 在特殊标记CDATA下,所有的特殊字符,甚至是有效的元素都将被当成简单的字符串处理。实体引用也会失去作用,变成直接的文本。 CDATA的语法格式如下: <![CDATA[文本内容]]> <?xml version="1.0" encoding="UTF-8"?> <表达式> <比较符> <![CDATA[ 1+3<6 ]]> </比较符> </表达式> 备注:由于xml文档根本不会对CDATA标记内容进行任何解析,因此在CDATA内可以放置任何内容,其中的内容永远不会出错。 1、 注释 Xml文档还可以加入解释用的字符数据,这些解释用的字符串不会被xml解析器处理。这些解释用的文本称为注释。Xml的文档注释与html完全一致。 Xml注释的语法格式如下: <!--注释字符串 --> Xml的注释允许包含元素和标签。 注意: 1、 Xml的注释不能够放在标签体内。 2、 不要把xml文档放在xml文档声明之前 xml文档的声明永远在第一行 3、 不在注释中使用双中划线(--) ….. 2、 处理指令 处理指令,简称PI (processing instruction)。处理指令用来指挥解析引擎如何解析XML文档内容。 处理指令用于给处理xml文档的应用程序提供信息,告诉处理程序应该如何处理该文档。一个完备的xml文档的处理程序,可以读取xml文档的处理指令,并根据处理指令进行相应处理,或将它传给下一个程序。 Xml处理指令的格式如下: <?处理指令名处理指令信息?> 3、 属性 xml属性的特征: 1、 xml元素的属性必须有属性值,属性值必须用引号引起来。 2、 同一个xml元素里不能有多个同名的属性 3、 Xml元素里的多个属性之间没有先后顺序。 <book> <isbn>123456780</isbn> <book_name>Java讲义</book_name> <price>99</price> </book> 比如说这个book本身就有 isbn book_name price的属性 那么 <book isbn=”” book_name=”” price=””/> Xml必须有一个根元素。 Xml文档的整体结构 1、 必须有一个根元素(有且只有一个) 2、 元素必须合理结束 3、 元素之间必须合理嵌套 4、 元素的属性必须有属性值 只要不满足上面的条件就是一个格式不良好的xml文档 只要满足上面的条件就是一个格式良好的xml文档 并且遵守了dtd或者schema就是一个有效的xml文档。 Xml文档是一种标准的结构化文档,可以转换成DOM(Document Object Model)树,其根节点对应DOM树的根节点。 <book> <computer> <name>网上介绍</name> <author>redarmy</author> </computer> <computer> <name>网上介绍</name> <author>redarmy</author> </computer> </book>
注意: 必须具有根标记且根标记必须唯一 开始标记和结束标记需配对使用 标记不能交错使用 空标记可写成“<标记名/> ”的形式 标记对大小写敏感 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |