一,XML文档结构

 XML文档是由一组使用唯一名称标识的实体组成。也是由数据和描述数据的标记组成。
 文档的组成部分包括:声明,元素,注释,字符引用和处理命令。
 
二,创建XML文档
 XML声明始终是任何XML文档的第一行。
 
 1,陈述XML声明:为XML文档匹配合适的解析器。
  
  XML声明语法:
  <? xml version = "XML版本号"  standalone = “no或yes” encoding = “UTF-8或UTF-16或GB2321或GBK”?>
   
   <?和?>:表处理指令的开始和结束;
   version :XML版本,默认1.0;
   standalone:是否使用外部声明;
   encoding:字符编码;
  
 2,创建根元素:有且只有一个,用于描述文档的功能。
  语法:
  <? xml version = "1.0" ?>
  <根元素名>
   根元素内容
  </根元素名>
    
 3,创建XML代码:创建自定义元素(elements)和属性(attributes)。
  1,元素是XML内容的基本单元,包含标签(tags)和内容。
  2,所有的XML元素必须合理包含嵌套。
  3,XML标记都是大小写敏感的。
  4,标记可以指定3种含义:结构的,语义的或样式的。
    结构指定文档中不同元素之间关系;
    语义将单个元素与文档之外的现实世界联系;
    样式指定如何现实一个元素;
  5,属性值必须使用引号""
   
   语法:
    <标签名 属性名 = “属性值”> 
     数据 
    </标签名>
    
三,XML中的注释   语法:
 <!-- 这是一个注释 --> 
  
 1,注释文本不应包含“-”。
 2,不能在标签内使用,可用于标签集。
 3,不能放在实体声明中,也不能放在XML声明之前。
  
四,处理指命 为使用该XML文档的应用提供一则信息。
 
 格式:
 <? xml:应用名 指令信息 ?>
 
 位置在在XML声明和根元素之间
 在将一个样式表附加到XML文档中时,需要提供一个处理指令:
 

<?xml version ="1.0" endcoding="GB2321"?>
   <?xml : stylesheet type = "text/xsl" href = "top.css"?>


   <根元素>数据</根元素>

五,标签之间的字符数据分类
 1,PCDATA  表示已解析的字符数据。
 2,CDATA
  表示不通过解析器parsing进行解析的文本。便于包含特殊字符。
  格式:
  <根元素>
   <![CDATA[ 
    <标记1>
     <子标记1>#$%特殊字符</子标记1> 
     <子标记2>$%^特殊字符</子标记2> 
      .....
    </标记1> 
   ]]>
   <标记2>
    ....
   </标记2>
  </根元素>
  
  注意:不可写为<![Cdata[ 或 <![Cdata[  
六,XML 对空白和换行的处理 1,空白部分不会被解析器自动删除。
 2,新行总是被标识为 LF(Line Feed,换行)。
   在Windows应用程序中,文本中的新行通常标识为 CR, LF (carriage return, line feed,回车,换行)。
   在Unix应用程序中,新行通常标识为 LF。还有一些应用程序只使用CR来表示一个新行。

七,实体
 1,实体是XML的存储单元,是用于定义常见文本的快捷方式的变量,代替字符数据。 2,内部实体:仅存于声明的文档中;
    外部实体:使用标识符指向文档外的存储单元;
        系统(SYSTEM)外部实体:引用本地计算机或网络;
        公共(PUBLIC)外部实体:引用公共计算机或网络;
 3,实体按在文档出现位置分为:  ①,一般实体:任何位置
    内部实体:
     <! ENTITY 实体名 "替换内容">
    外部实体:
     <!ENTITY 实体名  SYSTEM  "test.txt(替换文件名)">
     <!ENTITY 实体名  PUBLIC  "test.txt(替换文件名)">
  ②,参数实体:DTD中
    不能在文档中使用,只能在DTD中使用。
    <! ENTITY   %  实体名 "替换内容">
 4,实体的声明  实体必须在文档DOCTYPE声明中声明
  语法:
   <?xml version = "1.0" endcoding = "gb2321"?>
   <!DOCTYPE   DOCTYPE名[
    实体声明
    ....
   ]>
   <根元素>
   </根元素>
   
 5,实体的引用:
  ①,一般实体:
   引用前必须声明该实体,可以在属性中引用内部实体。
    语法:
     &实体名;
    
    例子:
     ...

<! ENTITY name "张三">
     ...
    <MSG>
     &name;
     <BODY>
      你好!
     </BODY>
     <FIRST>
      &name;
     </FIRST>
    </MSG>


    
  ②,参数实体:
   语法:
     %实体名;
 
八,XML文档规范

 1,所有XML文档至少有一个元素。
 2,XML标签区分大小写。
 3,所有的XML文档标签必须有一个结束标记
 4,正确嵌套标签。
 5,标签命名规则:字符 下划线 冒号开头,由字符,数字,句号,冒号,下划线,连接符(-)组合,不能有空格,不以保留字开头。
 6,属性不能重复,值用引号分开。名字规则和标签相同。
 7,应验证文档。
 等