xml

来源:互联网 发布:数据vps 编辑:程序博客网 时间:2024/06/16 02:37

找个地方记下来一些内容。web内容太多。慢慢写

一、xml语法

  1.文档声明
    用来声明xml的基本属性,用来指挥解析引擎如何去解析当前xml
    通常一个xml都要包含并且只能包含一个文档声明
    xml的文档必须在整个xml的最前面,在文档声明之前不能有任何内容
    
    <?xml version="1.0" ?>--version是必须存在的属性,表明当前xml所遵循规范的版本,目前位置都写1.0就可以了
    <?xml version="1.0" encoding="utf-8" ?>--encoding用来只会解析引擎在解析xml时使用的编码,一定要保证xml格式的数据在保存时使用的编码和解析时使用的编码必须一致,才不会有乱码问题
    <?xml version="1.0" encoding="utf-8" standalone="yes" ?>--standalone属性用来指明当前xml是否是一个独立的xml,默认值是yes表明当前文档不需要依赖于其他文档,如果当前文档依赖其他文档而存在则需要将此值设置为no
    
  2.元素
    一个xml标签就是一个元素
    一个标签分为开始标签和结束标签
    在开始标签和结束标签之间可以包含文本内容,这样的文本内容叫做标签体
    如果标签的开始标签和结束标签之间不包含标签和子标签则可以将开始标签和结束标签进行合并,这样的标签就叫做自闭标签
    一个标签中也可以包含任意多个子标签,但是一定要注意标签一定要合理嵌套
    一个格式良好的xml要包含并且只能包含一个根标签,其他的标签都应该是这个标签的子孙标签
      
      区分大小写,例如,<P>和<p>是两个不同的标记。
      不能以数字或标点符号或"_"开头。
      不能以xml(或XML、或Xml 等)开头。
      不能包含空格
      名称中间不能包含冒号(:)。


  
  3.属性
    一个标签可以有多个属性,每个属性都有它自己的名称和取值,例如:
    <china capital="beijing"/>
    属性的名在定义时要遵循和xml元素相同的命名规则
    属性的值需要用单引号或双引号括起来


 4. 注释
  <!-- 注释内容 -->
  注释可以出现在xml文档的任意位置除了整个文档的最前面.不能出现在文档声明之前
  注释不能嵌套注释
  
  
  5.CDATA区/转义字符
    <![CDATA[转义的内容]]>:
      当XML中一段内容不希望被解析器解析时可以使用CDATA区将其包住
      当解析器遇到CDATA区时会将其内容当作文本对待,不会进行解析
      语法:<![CDATA[ 内容 ]]>
     
   转义字符:
    &  --> &amp;
    <  --> &lt;
    >  --> &gt;
    "  --> &quot;
    '  --> &apos;
    


  6.处理指令
    处理指令,简称PI (processing instruction)。处理指令用来指挥解析引擎如何解析XML文档内容。

    <?xml-stylesheet type="text/css" href="1.css"?>


、XML编程:利用java程序去增删改查(CRUD)xml中的数据

解析思想:
dom解析
sax解析
基于这两种解析思想市面上就有了很多的解析api
sun jaxp既有dom方式也有sax方式,并且这套解析api已经加入到j2se的规范中,意味这不需要导入任何第三方开发包就可以直接使用这种解析方式.但是这种解析方式效率低下,没什么人用.
dom4j 可以使用dom方式高效的解析xml.
pull

!!dom4j
导入开发包,通常只需要导入核心包就可以了,如果在使用的过程中提示少什么包到lib目录下在导入缺少的包即可




四、Schema -- xml的约束技术  --- 需要掌握名称空间的概念,会读简单的Schema就可以了,不需要大家自己会写


Schema是xml的约束技术,出现的目的是为了替代dtd
本身也是一个xml,非常方便使用xml的解析引擎进行解析
对名称空间有非常好的支持
支持更多的数据类型,并且支持用户自定义数据类型
可以进行语义级别的限定,限定能力大大强于dtd
相对于dtd不支持实体
相对于dtd复杂的多,学习成本比较的高

如何在xml中引入Schema --- !!!!!名称空间的概念:全世界独一无二的名字,用来唯一的标识某个资源,通常是公司的域名,只是名字而已并不真的表示资源的位置.


    
    ~~~ Schema的语法---参照Schema的文档,了解即可


原创粉丝点击