一 xml基本语法

一.xml基本语法

1.1 xml介绍

1) xml是可扩展标记语言(EXtensible Markup Language).

2) xml 是独立于软件和硬件的信息传输工具.

3) xml 是以文本的形式存在于一个文本文件中的,一般该文件的后缀名就是".xml",例如: user.xml.

4)xml 的设计宗旨是传输信息(尤其是结构比较复杂的数据),而不是显示数据.

5) xml 可以描绘树状结构的数据.因为这个特点,除了传输数据外,更多的时候我们使用xml作为配置文件.

6) xml 是一种标记语言,很类似HTML.

7) xml 标签没有预先定义,需要自行定义标签.

8) xml 被设计为具有自我描述性.

9) xml 是w3c推荐的标准(w3c,万维网联盟,world wide consortium,这个建立于1994年的组织,其宗旨是通过促进通用协议的发展确保其通用性,以激发web世界的全部潜能)

10) xml 注释 :<!注释内容-->

1.2 xml元素

1) xml 文档包含xml元素.

2)xml 元素指的是从开始标签(包含)到结束标签(包含)的部分.

3)元素可包含其他元素(标签嵌套使用),文本或者两者的混合物.

4)元素也可以拥有属性.

例如:xml 文件内容都是标签,<tag></tag>标签是成对出现的.

1.3xml属性

1) xml 元素可以在开始标签中包含属性(即属性是在前标签中定义的),属性(Attribute)通常不是用于保存数据的,而是用于设定,描述标签的一些特征,是提供关于元素的额外(附加)信息的.属性通常提供不属于数据组成部分的信息,但是对需要处理这个元素的应用程序来说却很重要.

注意事项:

属性必须是属性名=属性值的形式.

元素可以包含元素,但是不能交叉使用!嵌套关系必须完整.

2) xml 属性的属性值必须使用引号,单引号,或者双引号都可以.如果属性值本身包含双引号,那么有必要使用单引号包围它,或者可以使用实体引用.

例如:<oracle user="wang 的‘连接‘" id="sss">

3) 在标签名的后面可以定义若干个属性,每个属性间应该以空格隔开.

1.4 实体引用

为了解决属性值中使用xml的特殊字符,我们可以使用类似的转义字符去描述.

字符
转义字符(实体引用)

< &lt;

> &gt;

& &amp;

‘ &apos;

" &quot;

注意事项:

文本中也不能有特殊字符

实际上,在属性值中 & 和 < 是确认不合法的特殊字符(但 > 是合法的),必须要转义.其余的可以不用,但是更好的习惯是遇到这种在 xml 中有特殊含义的字符时都使用转义去表达.

1.5 CDATA 段

在某些情况下,我们在xml中要使用大量的xml 敏感的字符,而我们又不希望逐一的对其进行转义.这时候使用 CDATA 段是最理想的.

1) 语法格式: <![CDATAT [忽略检查 的文本]] >

2) 在CDATA 中将文本的内容写入,那么这段文本内容会被忽略检查,无论里面是否包含XML 敏感内容,全部被当作普通的文本被看待.

例如:

<content>

<![CDATA[

<script language="javascript">

function sayhello(){

alert("hello");

}

]]>

</content>

3)行业内交换数据时要求xml文件格式相同,所以需要大家遵守规范的xml文件格式,比如两份xml文件要有相同的元素嵌套关系,相同的属性定义,相同的元素顺序,元素出现 的相同次数等.

如下:为两份相同数据,但是结构不同的xml文件,无法交换数据.

A学校的xml文件:

<计算机书籍>

<书名 isbn="1234">xml的前世今生</书名>

<价格>50</价格>

<简介>一本介绍xml的书</简介>

<作者>李毅</作者>

</计算机书籍>

B学校的xml文件:

<computer_book>

<isbn>1234</isbn>

<bookname author="李毅">xml的前世今生</bookname>

<price>50</price>

<brief>一本介绍xml的书</brief>

</computer_book>

1.6 DTD 声明元素
1)在一个DTD中,元素通过元素声明来进行声明(用于声明和约束元素).

注意事项: xml 只允许有一个根标记(根节点).

2)DTD 声明元素语法:

<!ELEMENT 元素名 (元素内容)>

<!ELEMENT 元素名 元素类别>

注意事项: 若使用DTD声明了元素(也可说使用了DTD验证),那么在xml中只能使用被声明过的元素,包括元素下的子元素.不能使用不在DTD声明中的元素了.

1.7 DTD声明元素:声明空元素.

即声明一个空标签,标签中不含有任何内容.

例如: <!ELEMENT page EMPTY>

对应:<page/> 或者 <page></page>

注意事项: 简写:<page/>通常xml中若没有后标记可以这么做,HTML中被大量使用.前提是标签中没有内容.

1.8 DTD声明元素:含有PCDATA

定义元素中的内容为文本内容(写什么都可以)

1) 语法: <!ELEMENT 元素名 (#PCDATA)>

例如: <!ELEMENT page (#PCDATA)>

对应:<page>wang</page>或<page></page>

注意事项: PCDATA是会被解析器解析的文本,这些文本将被解析器检查实体以及标记.

2) 这时候page标签中只能出现文本内容,但要注意,该文本内容时需要检查的,就是说不能出现xml的敏感字符.

<page>7<0</page>这样不行.

<page><![CDATA [7<0]]></page>这样可以.

1.9DTD声明元素: 带有子元素的元素.子元素(子元素列表)

即,约束标签中出现标签,或者说约束元素中有子元素.

1) 语法: <!ELEMENT 元素名 (子元素1,子元素2,...)>

2)在声明当前元素所包含的子元素时,我们要在下面声明出这些子元素.

例如:<!ELEMENT jdbc (oracle,mysql)>
<!ELEMENT oracle (#PCDATA)>
<!ELEMENT mysql (#PCDATA)>
上面的声明表示有一个叫jdbc的标签,它其中只能包含两个标签,分别时oracle和mysql,而这两个标签也声明了,他们的内容可以是任意文本.
对应:
<jdbc>
<oracle>wang</oracle>
<mysql>shengtao</mysql>
</jdbc>
注意事项:jdbc标签中oracle和mysql出现的顺序必须与jdbc声明的元素的顺序一致.
错误一:
<jdbc>
<mysql>shengtao</mysql>
<oracle>wang</oracle>
</jdbc>
错误二:
<jdbc>
<oracle>wang</oracle>
<mysql>sheng</mysql>
<mysql>tao</mysql>--这样不行,只能出现一次.
</jdbc>

1.10 DTD 声明元素: 声明只出现一次的元素
1)语法: <!ELEMENT 元素名 (子元素名称)>
例如:<!ELEMENT page(rpev)>
对应: <page>
<prev>3</prev>
</page>
2)上面声明了prev子元素必须出现一次,并且必须只在"page"元素中出现一次.
1.11 DTD 声明元素:声明可多次出现的元素.
对于在子元素出现的次数,DTD 也由规范,不支持具体数,但支持量词.
1)子元素可以出现的量词:
? 0-1
* 0-多次
+ 1-多次
例如:<!ELEMENT jdbc (oracle,mysql+)>
注意事项:
使用了以上量词的话,子元素出现顺序就不是必须一致了.
没有用量词,则子元素必须出现且一次,且出现顺序必须与声明的元素的顺序一致.
1.12 DTD声明元素: 子元素只能时其中之一的情况
例如:<!ELEMENT sex (man|woman)>
<!ELEMENT man (#PCDATA)>
<!ELEMENT woman (#PCDATA>
对应:
<sex>
<woman>nv</woman><!--标签二选一-->
</sex>
注意事项: 与就是直接用"," 如<!ELEMENT sex (man,woman)>
1.13 DTD 声明元素: 子元素可以是元素也可以时文本
定义标签中子元素可以是元素,也可以是文本.
例如:<!ELEMENT sex ANY>
1.14 DTD声明元素: 总结
类型名称 类型说明
CDATA 值为字符数据
(en1|en2|...) 值为枚举列表中的一个值
ID 值为唯一的ID值
IDREF 值为另外一个元素的ID
IDREFS 值为其他元素ID的列表
NMTOKEN 值为合法的xml名称
NMTOKENS 值为合法发 xml名称列表
ENTITY 值为一个实体
ENTITIES 值为一个实体列表
NOTATION 值为符号的名称
xml 值是一个预定义的xml值
1.15 DTD中声明元素的属性
1) 在DTD中,属性通过ATTLIST来声明属性
2) 声明属性的语法:<!ATTLIST 元素名称 属性名 属性类型 默认值>
例如:<!ATTLIST oracle user CDATA "user">
<oracle></oracle><!--默认值起作用-->
<oracle user="user"></oracle><!--默认值不起作用-->
注意事项:仅仅定义元素中的内容为文本内容用#PCDATA,其他地方都用CDATA
例如:<!ELEMENT package (#PCDATA)>
<!ELEMENT package color CDATA "ffffff">
1.16 属性类型
1) CDATA: 文本类型
2) ID :属性的值在xml中是唯一的(该属性值不可重复)
3) 枚举 (en1|en2|...) : 属性的值只能是列举的其中之一.
1.17 属性值的约束
1) #REQUIRED :当前这个属性必须在标签里出现(即要写出来),则此时默认值无效了.
例如:<!ATTLIST oracle user CDATA "user" #REQUIRED>
2)#FIXED: 属性里的值为固定值(值要给出),或者值是其列举的其中之一.
例如:<!ATTLIST oracle user CDATA "user" #FIXED("user"|"admin")>
3)默认值"xxx":若在默认值位置直接给定值,那么就是默认值.
例如:<!ATTLIST oracle id CDATA "sss">
1.18 DTD命名空间介绍
1)命名空间(NameSpace),XML文件允许自定义标记,所以可能出现来自不同源DTD或Schema文件的同名标记,为了区分这些标记,
就需要使用命名空间.
2) 命名空间的目的是有效的区分来自不同DTD的相同标记,例如下列的xml文件中使用了命名空间区分开"表格"和"桌子".
例如:<html:table>
<line><column>这是一个表格</column></line>
</html:table>
<product:table>
<type>coffee table</type>
<meterial>wood</meterial>
</product:table>

时间: 2024-11-07 05:57:28

一 xml基本语法的相关文章

XML学习2:XML基本语法(一)

导入 一个XML文件可分为如下几部分内容:文档声明 .元素.属性.注释 .CDATA区 ,特殊字符 .处理指令 (processing instruction)等. 先来看一个简单的XML说明: <?xml version="1.0" encoding="UTF-8"?> <!--上面是文档声明--> <?xml-stylesheet type="text/css" href="XML2.css"

XML XPath语法总结

刚刚遇到一个多重查询xmlDoc.SelectSingleNode("Root/Element[@Name='大气象'][@Age='30']")根据innerText查询xmlDoc.SelectSingleNode("Root/Element[text()='大气象']")顺便收集总结一下.Xml中SelectSingleNode方法中的xpath用法 最常见的XML数据类型有:Element, Attribute,Comment, Text. Element,

xml的语法与创建

xml语法很简单,但很严格,如果出现错误则不能正常解析,而HTML如果出现局部的错误,照样解析 xml第一行必须写xml头<?xml version='1.0' encoding='utf8'?> 如果不写在第一行,则会报错 除了头xml文件只能有一个根标签,根标签中可以有多个标签,这些标签可以嵌套,但不可以交叉嵌套 xml是为了传输数据而生的,而不是显示数据,显示数据用html 标签中可以存在属性:属性必须要有值,属性值必须用引号引起来 注释内容用<!--这里是注释内容--> 在

xml基本语法学习

xml    * 扩展名:*.xml    * 作用:存储.配置    * 语法:        * 文档声明            * 格式:<?xml version="1.0"?>                * version:设置当前xml文档内容使用的版本                * encoding:设置当前xml文档内容使用的编码        * 元素            * 格式:<x></x> or <x /&g

XML——XPATH语法介绍

为什么需要xpath? 在使用dom4j的时候,我们不能跨层获取某一个元素,必须一层一层去获取,这就非常麻烦. 所以为了我们更方便地访问某个节点,我们可以使用xpath技术,它可以让我们非常方便地读取到指定节点. xpath通常结合dom4j配合使用,而且如果要使用xpath,则需要引入一个新的包jaxen-1.1-beta-6.jar xpath的基础语法有以下几点: 1.基本的xpath语法类似于在一个文件系统中定位文件,如果路径以斜线/开始,那么该路径就表示到一个元素的绝对路径. (1)/

XML学习3:XML基本语法(二)

三XML属性 XML元素可以在开始标签中包含属性,类似HTML.属性(Attribute)提供关于元素的额外(附加)信息. XML属性基本语法:<元素 属性1="属性值" 属性2="属性值">元素内容</元素> 注意事项: 1)属性值用双引号(")或单引号(')分隔(如果属性值中有',用"分隔:有",用'分隔). 2)一个元素可以有多个属性. 3)属性名称在同一个元素标记中只能出现一次. 4)属性值不能包括<

XML基本语法

本节要点: 了解XML的文档声明 了解XML的元素.命名规则.属性.元素内容.处理指令等概念 1   XML文档声明 表示该文档是一个XML文档,以及遵循哪个XML版本的规范. 规范:<?xml 版本信息(编码信息)(文档独立性信息)?> 文档声明在XML文件中是可选的第一项,推荐在每个XML文档中都包含文档声明.如果在XML文件中写出了声明就必须包含version属性,表示XML的版本,截止目前XML只有一个版本,即1.0.在XML声明之前不许有任何内容,包括空格. 示例:<?xml

XML(一)语法

一.xml语法 1.文档声明 2.元素 3.属性 4.注释 5.CDATA区.转义字符 6.处理指令 1.文档声明: 用来声明xml的基本属性,用来指挥解析引擎如何去解析当前xml 通常一个xml都要包含并且只能包含一个文档声明 xml的文档必须在整个xml的最前面,在文档声明之前,不能有任何内容 <?xml version="1.0" encoding="utf-8"  standalone="yes" ?> version是必须存

xml基本语法(2)

本节要点: 了解XML的文档声明 了解XML的元素.命名规则.属性.元素内容.处理指令等概念 1 XML文档声明 表示该文档是一个XML文档,以及遵循哪个XML版本的规范. 规范:<?xml 版本信息(编码信息)(文档独立性信息)?> <?xml version="1.0" encoding="UTF-8"  standalone="no"?> 文档声明在XML文件中是可选的第一项,推荐在每个XML文档中都包含文档声明.如