XML/RSS

关注公众号 jb51net

关闭
首页 > 网络编程 > XML/RSS >

xml文件的结构解读

作者:

xml文件的结构解读
xml文件由序言,元素(空元素,非空元素)和杂项三部分组成。
序言的结构:
xml的声明信息:
<?xml 版本信息 (编码信息) 文档独立性信息 ?>
版本信息用于说明xml语言是用的版本,版本为1.0或者1.1 :version="1.0"
编码信息用于说明xml的编码语言,如果为中文则表示为:encoding="gb2312"
文档独立性信息用于说明xml文件是否可以独立而不依赖其它文档:standalone="yes"表示独立显示。
文档类型声明:
 1。在其他文件中声明文档类型
<!DOCTYPE MYDOC SYSTEM "mydoc.dtd">
2。在xml文档中直接定义文档类型
<!DOCTYPE BIDS [ <!ELEMENT AUCTIONBLOCK(ITEMS,BIDS)> ]>
 元素的结构:
元素的内容=(子元素|字符数据|字符数据段|引用|处理指令|注释)*
字符数据:文本内容没有使用标记和实体引用。
除字符数据外,其他元素内容都使用了标记或者实体引用的符号。
另外字符数据中也不能含有 :"^",">","&","]]>".
xml预定义实体:
实体引用方式 代表的元素 
&amp; & 
&lt; < 
&gt; > 
&apos; , 
quot; " 
 字符数据段:
xml中不希望xml处理的文字片断或者代码,脚本片段。
字符数据段="<!CDATA["+字符数据+"]]>"
字符数据段必须放在根元素中:
例如:
<?xml version="1.0" standalone="yes"?>
<Root>
<head>my test</head>
<![CDATA[<html><body>cdata test !</body></html>]]>
</Root>
用浏览器打开结果如下:
  <?xml version="1.0" standalone="yes" ?> 
- <Root>
  <head>my test</head> 
- <![CDATA[ 
<html><body>cdata test !</body></html>  ]]> 
  </Root>
 引用分为实体引用,字符引用。
实体引用首先需要声明,然后进行引用。声明时使用ENTITY关键字进行,引用使用&+实体引用名称+;进行用用。
实体引用示例:
<?xml version="1.0" encoding="gb2312"?>
<!DOCTYPE 就业信息[
<!ENTITY company "连通公司">
]>
<就业信息>&company;</就业信息>
&company;这个实体引用被解析后会还原为原来的数据“连通公司”。
字符引用:
字符引用使用字符的ascii值,格式:&#+字符的ascii值+;

字符引用示例:
<?xml version="1.0"?>
<chars>
<A1>&#174;</A1>
<B1>&#169;</B1>
<C1>&#164;</C1>
</chars>
字符引用在输出时被解析为实际的字符,以上内容显示在浏览器中的结果就是:
<?xml version="1.0" ?> 
- <chars>
  <A1>®</A1> 
  <B1>©</B1> 
  <C1>¤</C1> 
  </chars>
杂项包含:
1。处理指令
是xml为其他应用程序准备的接口。指定外界的应用程序来处理xml中的非xml数据。
2。注释
是可以忽略的说明性的文字
3。空白符
空格,回车,换行等无法显示的字符
格式良好的xml文件必需做到以下几点:
1。文档从xml声明开始
<?xml version="1.0"?>
这段声明之前不能有空格或者其它字符,即<?xml version="1.0"?>必需位于xml文件的第一行,第一列,并且在<?和xml之间不能包含空格。否则都是错误的。
2。xml只能包含唯一的根元素
正确示例如下:
<?xml version="1.0"?>
<man>
<head>head</head>
<body>body</body>
</man>
错误的示例包含两个根元素<head><body>。
<?xml version="1.0"?>
<head>head</head>
<body>body</body>
3。标记必需闭合
4。空标记约定
表示方式:<空标记/>
空标记可以有属性
5。必需层层嵌套
子元素必需嵌套在父元素内,不能互相交错。
同层元素必需互相并列,不能互相嵌套。
6。区分大小写
元素的起始标记和结束标记必需一致。
7。属性设置
属性的设置必需使用引号。
8。特殊字符的表示方法
使用预定义实体引用的方式引用:
错误写法: <compare>3<6</compare>
正确写法:<compare>3&lt;6</compare>
阅读全文