XML

              XML概述:
                      XML:可扩展标记语言Etensible Markup Language ,包括XML/DTD/XSSD/XPATH的w3c规范,在webservice方面主要应用 有SOAP/WSDL等(WSDL还不是w3c规范)!
                       01.很像html,html(着重数据的展示)
                       02.xml着重数据的保存
                       03.无需预编译
                       04.符合W3C标准
                      05.可扩展:我们可以自定义,完全按照自己的规则来!

                       标记: 计算机所认识的信息符号

               XML的组成:
                      1.文档是声明 <?xml version="1.0" encoding="UTF-8"?>
                      2.元素 <p> </p>
                      3.属性 <p id="hh"> </p>
                      4.注释 < ! -- -->
                      5.特殊字符 &(&amp;) <(&lt;) >(&gt;) "(&quot;) '(&apos;)
                      6.CDATA区域 Character data
                      7.处理指令(processing instruction)  处理指令,简称PI (processing instruction)。处理指令用 来指挥解析引擎如何解析XML文档内容。例如,在XML文档中可以使用xml-stylesheet指令,通知XML解析引擎 ,应用css文件显示xml文档内容,标签名为中文时,css不起作用。


                  XML解析器不会处理,而是当成字符串原样输出


xml语法——元素

       XML元素指XML文件中出现的标签,一个标签分为开始标签和结束标签,一个标签有如下几种书写形式,例如:

           包含标签体:<a>www.cnblogs.com/</a>
           不含标签体的:<a></a>, 简写为:<a/>
   一个标签中也可以嵌套若干子标签。但所有标签必须合理的嵌套,绝对不允许交叉嵌套 ,例如:

    错误的写法:<a>welcome to <b>www.cnblogs.com/</a></b>

   格式良好的XML文档必须有且仅有一个根标签,其它标签都是这个根标签的子孙标签。

   对于XML标签中出现的所有空格和换行,XML解析程序都会当作标签内容进行处理

 

          一个XML元素可以包含字母、数字以及其它一些可见字符,但必须遵守下面的一些规范:

                 区分大小写,例如,<P>和<p>是两个不同的标记。
                 不能以数字或"_" (下划线)开头。
                 不能以xml(或XML、或Xml 等)开头。
                 不能包含空格。
                  名称中间不能包含冒号(:)

                   XML文件中只能有一个根节点
                    区分大小写
                   节点要成对出现 有开始就要有闭合
                   节点必须正确的嵌套

 


                    XML,HTML都是一个类似于一个倒挂的树
                     只有一个节点,枝叶茂盛
                     我们把这个倒挂的树称之为==》dom树
                     DOM(doucument Object Model )文档对象模型

                    创建第一个maven项目:

                    new project===》maven=====》quick======》archetypeCatalog=internal
                     引入需要的pom的节点

                        自定义一个 xml文件


                      需求通过dom4j实现查询学校下面的年级以及班级信息



      解析xml文件的方式:

                        DOM:基于xml文档树结构的解析,把xml文件中的内容都读取到内存中,比较占内存,消耗资源多!

                       SAX:基于事件的解析 ,消耗资源小

                       JDOM:针对于java的特定模型,满足 2 8原则。 自身没有解析器,依赖于SAX2

                      DOM4J:for(4)JDOM的一个分支,源代码开发,性能优异,功能强大。



                        DTD: Document Type Definition(文档类型定义)

                                    1.规范我们的编码
                                     2.在浏览器中正常的显示

                                   <!ELEMENT school(grode+)>

                                   ELEMENT:元素(关键字不可更改)

                                   school :元素的名称

                                grade:子元素或者元素类型 CDATA PCDATA(Parse)解析数据,不能包含子元素

                   

                               + :1-n,最少出现一次
                                *:0-n,可有可无
                                ?:0-1 最多出现1次
                                 ,:元素出现的顺序

          DTD文档使用方式:
                                                   1.内部DTD
                                                           <!DOCTYPE 根元素[定义内容]>
                                                    2.外部DTD
                                                           <!DOCTYPE 根元素 SYSTEM "DTD文件路径">
                                                   3.内外部DTD
                                                           <!DOCTYPE 根元素 SYSTEM "DTD文件路径" [定义内容]>

 

什么是DTD,为什么需要DTD?

DTD为英文Document Type Definition,中文意思为“文档类型定义”。DTD肩负着两重任务:一方面它帮助你编 写合法的代码,另一方面它让浏览器正确地显示器代码。

 


       一个HTML文档的基本结构可分为两个主要部分:

                                                           <html>

                                                                         <head>

                                                                  头部信息

                                                          </head>

                                                       < body>

                                                             可视内容

                                                       </body>

                                                    </html>


一个DTD应该放在每一个文档的第一行(包括空白).这样正确地放置,你的DTD才能告诉浏览器的用的是什么标记 语言。在通常情况下,如果你编写的是正确代码,并拥有一个合适的DTD,浏览器将会根据W3C的标准显示你的代码。
   良好的xml文档:符合xml的语法规则。
   有效的xml文档:符合xml语法规则的同时还需要符合DTD文档类型定义。
   有效(Valid)的XML文档:
   首先,XML文档是个格式正规的(Well-formed)XML文档;
   其次,需要满足DTD的要求,这样的XML文档称为有效的(Valid)XML文档。
   利用DTD可以对xml文档的各个节点进行约束定义,使开发遵循一套“标准”。
   DTD可以约束xml文档出现的元素,元素名称,元素的先后顺序,属性等。


DTD文档与XML文档实例的关系


          类与对象;
   数据库表结构与数据记录;
  
   有了DTD,每个XML文件可以携带一个自身格式的描述。
   有了DTD,不同组织的人可以使用一个通用DTD来交换数据。
   应用程序可以使用一个标准DTD校验从外部世界接收来的XML数据是否有效。
   可以使用DTD校验自己的XML数据。

DTD中的修饰符合
                       ( ) 用来给元素分组
                          | 在列出的对象中选择一个
                          + 该对象最少出现一次,可以出现多次(1或多次)
                          * 该对象允许出现零次到任意多次(0到多次)
                        ? 该对象可以出现,但只能出现一次(0到一次)
                           , 对象必须按指定的顺序出现

 总结
                       1. xml html
                       2. 特定 ,注意事项
                       3. maven 项目创建的注意点
                       4.手写xml
                       5.解析xml的几种方式
                       6.dom4j解析的步骤

posted @ 2018-06-29 17:22  阿辉啊  阅读(89)  评论(0编辑  收藏  举报