oracle笔记 9

XML是什么?? XML和HTML的关系??? *****************

XML (eXtensive Markup Language) 可扩展的标记语言
 标记语言 --- HTML (HyperText Markup Language)超文本的标记语言

  SGML (W3C标准化组织) 通用标记语言 太复杂
  首先实现一部分 : HTML
     HTML普及 发展
       HTML语言的特点:
         <1>有一套固定的标记
           <table>
             <tr><th></th></tr>
             <tr><td></td></tr>
           </table>
         <2>浏览器查看有统一和漂亮的页面
           <H1>HELLO WORLD</H1> 美化

         <3>不足之处:HTML4.0
           a)标记不表示所写的文字的内容
           只代表了一种显示的格式
           b)标记是固定的,不能自己扩展

 XML 特点
  〈1〉标记代表内容               
   〈2〉 标记是可以扩展的,支持自己定义标记
    <3>  不能表示在网页上所看到的格式(HTML长处)
 
 互相支持的关系...不是要取代HTML的

XML的文件的格式是什么样的?   ***************************************

 格式的要求
   <1>xml文件是个文本文件
   <2>以.xml结尾来命名文件名
   区分大小写的

   <3>XML文件的第一行必须是
    <?xml version="1.0" encoding="UTF-8"?>
    XML的声明 version 版本1.0
              encoding 编码格式UTF-8 (UNICODE编码) 中文可以使用GB2312   
             <?xml 。。 ?> 处理指令(XML声明的处理指令)
                  
     <4>自己定义标记(元素)
        a)标记的名字不能含有: , 也不能带有XML这样的单词
        b)必须成对出现
           <公司>  开始标记
           </公司>  结束标记
           <Company>  开始标记
           </Company>  结束标记    </company>不是结束标记,区分大小写
        c)标记可以嵌套
             正确嵌套
        d)标记---元素
            整个XML文件 一定要有且仅有一个根元素。
             <集团></集团>标记对包含了所有的标记
        e)元素中可以包含文本元素,也可以包含子元素
        f)元素也可以不包含任何对象,称为空元素
           <员工></员工> 或 <员工/>
        g)元素可以定义属性(N个),属性的名字自己取,要求属性的值用""或
          ''给引起来

  满足这些要求的XML文件:   *******************************************
      <1> XML文件的第一行必须是声明
      <2> 整个XML文件 一定要有且仅有一个根元素。      
      <3> 标记必须成对出现正确嵌套
      <4> 元素和属性的名字符合要求(不含有:或者XML/属性值有""或'')
   称为格式正规的XML文件

 上述基本的内容外 还有扩展的内容没有????
   注释  <!-- 这是注释   -->

   CDATA节
     被这个标记所包含的内容不被IE所解析
     最大的用处就是写JavaScript

   实体
     内部定义了5个实体
        >  &gt;     和标记的<>区别
        <  &lt;
     还可以自己定义实体 ?????
 
 <例子> 写一个XML文件
    
 XML的用途
    <1>作为软件的配置文件
    <2>作为数据交换的格式
        A公司
        B公司  要相互传送定单

        A和B必须确定定单的格式  一般用XML来定义定单的格式
               数据内容的格式 显示格式各自自己定
    <3>专门用XML来交换数据的软件
        DOTNET (数据库的应用上 服务器的数据和客户端是以XML格式来交换和保存数据的)  
        WEB SERVICES (web服务的应用) URL  
            XML格式+HTTP协议
        无线通讯  WML (XML)
   <4>自己设计XML的用途
 
对XML文件的结构的限制

      <1> DTD (Document Type Define) 文档类型定义

      <2> Schema       

 XML文件的结构
  a)层次结构
  b)每种元素的数据类型      

<例子>  ***************************************************DTD
      <!ELEMENT 公司 (员工+)>
            公司元素是由员工元素组成的,
            + (>=1个)

            <!ATTLIST 公司
    名称 CDATA #REQUIRED
>
     公司元素有一个属性叫名称 属性的数据类型是CDATA(属性是文本)
            #REQUIRED 属性是必须写的           


    <!ELEMENT 员工 (姓名, 性别, 年龄, 部门, 加入本公司时间, EMail, 奖惩)>
   员工元素是由姓名, 性别, 年龄, 部门, 加入本公司时间, EMail, 奖惩这些元素组成的
     并且每个元素只有1个, (,,,) 代表顺序关系

     <!ATTLIST 员工
    id CDATA #REQUIRED
>
     员工元素有一个属性叫id 属性的数据类型是CDATA(属性是文本)
            #REQUIRED 属性是必须写的           

 
<!ELEMENT 姓名 (#PCDATA)>
 姓名元素的数据类型(#PCDATA),是文本,而不是子元素

    <!ELEMENT 奖惩 EMPTY>
    奖惩元素是个空元素

XML文件如何引用DTD文件
 <1>内部引用
 <2>外部引用
    dtd是个单独的文件 ,在xml说明使用它
    <!DOCTYPE 根元素 SYSTEM "外部DTD文件名">

    xml文件的有效性--- xml能够通过DTD的验证


  <!ELEMENT 公司 (员工+)>   公司元素是由员工元素(>=1 +)组成的,
  <!ELEMENT 公司 (员工*)>   公司元素是由员工元素(>=0 *)组成的,
  <!ELEMENT 公司 (员工?)>   公司元素是由员工元素(0或1 ?)组成的,
  <!ELEMENT 公司 (员工)>    公司元素是由员工元素(1个)组成的

<!ATTLIST 公司
    名称 CDATA #REQUIRED
>                     
              公司元素有一个属性叫名称 属性的数据类型是CDATA(属性是文本)
            #REQUIRED 属性是必须写的     

<!ATTLIST 公司
    名称 CDATA #IMPLIED
>                     
              公司元素有一个属性叫名称 属性的数据类型是CDATA(属性是文本)
            #IMPLIED 属性是可有可无的     
     
 定义属性的数据类型可以是 CDATA  文本类型
                      ID    属性的值具有唯一性(取值的第一个字符必须是字母)
                      IDREF ID的引用表示对ID类型属性的引用(类似于外键)
        <!ATTLIST 员工
    性别 (男|女) #REQUIRED
>                     (男|女) 表示属性的值是在多个值中选1个

 
 定义元素的数据类型可以是 (#PCDATA) 文本
                       EMPTY  空元素
                       ANY    可以使文本也可以是子元素     

   DTD的缺点是数据类型太少,DTD文件不是一个XML文件
         DTD  逐渐会 被 SChema技术给取代

>>>>>>>  写DTD的时候 元素的限制少
                    属性的限制丰富   适当的做一些属性,而不全是元素

最后一个问题 命名空间 *********************************
  <table>
   <tr><td>苹果</td></tr>
   <tr><td>香蕉</td></tr>
  </table>
 
  <table>
    <name>方桌</name>    
    <height>12</height>
  </table>
                      
命名空间 <h:table xmlns:h="http://www.w3c.com/html4.0">
   <tr><td>苹果</td></tr>
   <tr><td>香蕉</td></tr>
  </h:table>

  xmlns xml的命名空间  h代名词  h代表这个网址"http://www.w3c.com/html4.0"

  <f:table xmlns:f="http://www.mycom.com/furniture">
    <name>方桌</name>    
    <height h:unit="英寸">12</height>
  </f:table>


目的是来区分标记,让同名的标记可以使用


类似于java的包package
import java.sql.*;
import java.util.*;
   java.util.Date
   java.sql.Date                      
 

posted @ 2013-01-25 17:38  金虹巴巴  阅读(110)  评论(0编辑  收藏  举报