新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 关于 XML 的一般性技术讨论,提供 XML入门资料 和 XML教程
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - XML技术『 XML基础 』 → 新手学习《无废话XML》做的小笔记 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 6268 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 新手学习《无废话XML》做的小笔记 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     flyingFang 美女呀,离线,快来找我吧!
      
      
      威望:1
      等级:大三(面向对象是个好东东!)
      文章:82
      积分:755
      门派:XML.ORG.CN
      注册:2006/5/15

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给flyingFang发送一个短消息 把flyingFang加入好友 查看flyingFang的个人资料 搜索flyingFang在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看flyingFang的博客楼主
    发贴心情 新手学习《无废话XML》做的小笔记

    我是新手,昨天看了<无废话XML>,随手记的笔记。不过,似乎我看的版本比较老了。

    <pre>


    1 Introduce XML

    (1) in XML, you can define your own tag to express your meaning
    (2) The focus of XML is concent , not the layout of the file
    (3) In fact, many data in database is have good shcma (for example
        fildnames have some meaning of data ).But after be readed
        from database , the data was processed by CGI ...into HTML
        without meaning, and only with meaningless tags (<h1>,<tr>).
    (4) The layout of XML depends on CSS or XSLT
        内容和外观完全分开。
    (5) Unicode. XML can support chinese tags well .
    (6) 与HTML不同的是,XML不是为特定的应用(如呈现网页)而设计。
        实际上,XML是一套无限延伸、用来设计各式各样标注语的准则,也就是
        常说的meta-language。
        可以认为,XML的层次比较高,它是用来“设计语言的语言”。  
    (7) XML 可以标注文本文档,也可以标注二进制文档?
        这里二进制文档是否指图片之类的东西?
        对二进制的标注是否是把文本的标签包裹在二进制串的外部?
        而不是把标签也全部换成二进制的?
    (8) 异构系统之间的数据交流,如果都采用XML格式,则只需要安装“XML解析器”
    (9) XML优越性,可以适用于:
        o  B2B ,商务vocabulary, 便于商务事务中的数据交换
        o  医疗保健体系 : 病人的数据用XML格式存储,则跨院的信息交换方便
    (10)XML是纯文本的。
        XML是SGML精简之后的网络版
        XML具有保值特性
    (11)smart agent / user agent。 XML使得agent有可能通过标签理解语义,
        使smart agent的梦想成为可能。(agent指“电脑机器人”,帮助用户来
        实现查找筛选等功能的东西)     
    (12)XML应用实例
        o MathML
             > presentation elements
             > context(? content?) elements
             > tag <semantcis> can mix the above two elements
        o SMIL 多媒体同步整合语言
             > RealPlayer G2, for example
        o SVG  (Scalable Vector Graphics)
             > IBM SVGView ,支持SVG的浏览器原型
             > Flach 内容为二进制的,因此Flash中的文字信息,搜索引擎不能
               检索到。
             > Flash需要浏览器外挂程序,即需要浏览器安装插件
             > HTML基本上都是点阵图文件,而SVG是标签中直接定义了图形标签,如<cirtle>
               flying: 因此可以直接画图,使得可伸缩。(和jave的awt包?)
        o XSL
        o Netscape的“what's related”内置功能
             > RDF , (数据库、搜索引擎)
             > Alexa 搜索引擎给Netscape提供大量的网页(由爬虫爬来的,不接受网站的主动登记)
        o Mozilla中的XUL语言--用来设定、控制使用界面的语言

    2 XML 语法入门

    2.1 well-formed

    (1)所有元素都要正确关闭
         o <title> ... </title>
         o 空元素: empty element. 不含任何文字内容的元素
           <空元素/>
           <空元素  属性名="属性值"/>

    (2)标签之中不能交叉

    (3)所有属性值都得加上双引号

    (4)......

    * 不符合well-formed格式的,解析器将不会处理

    2.2 valid

    (1) DTD是XML在格式上的定义

    (2) 可以用DTD来确认其正确性的XML文件,叫做valid XML

        o validing parser: 会根据DTD来确认XML正确性的解析器
        o non-validing parser : 没有上述功能的解析器

    (3) XML Schema ,  几乎可以取代DTD

    2.3 XML元素、属性名, 区分大小写

    2.4 CDATA区块

    (1) 类似于HTML中的<pre>... </pre>
    (2) 开始标记  <![CDATA[
    (3) 结束标记  ]]>
    (4) CDATA区域中间的文字不会被XML解析器处理,会原样交给下游的程序
    (5) 只要是合格的Unicode的合法字符,都可以放置在CDATA中
    (6) CDATA区域中,唯一不能包含的就是"]]>",因为他会被理解为结束标记

    2.5 空白

    (1) XML对空白的处理和HTML正相反

        所有位于标签以外的空白,解析器都要一个个忠实地交给下游程序去处理

    (2) 4种空白
       
        o space
        o tab
        o CR   : Carriage Return
        o LF   : Line Feed

        换行符号
        > MacOS : CR
        > Unix  : LF
        > DOS/Windows:  一个CR,后面紧跟着一个LF

    (3)明确表明保留空白

       <tagName xml:space="preserve">
       ...
       </tagName>

    2.6 PI 与样式链接

    (1) PI : Process Instruction
    (2) PI标注以 "<?" 开头,以"?>"结尾
    (3) 例子
        <?xml-stylesheet href="style.css" type="text/css" ?>
        或者
        <?xml-stylesheet href="style.xsl" type="text/xsl">


    3 Unicode

    3.1 两个字节。65536种不同组合

    3.2 中日韩文整合,UniHan.

        Unicode 2.1和3.0中,共有2万多个统汉字(UniHan)

    3.3 UTF-8 / UTF-16

        o Unicode策进会推荐使用UTF-8, UTF-16

        o UTF-16基本上就是Unicode双字节编码的实现,
          再加上一个应付扩充需求的编码机制

        o UTF-8是一种不等幅的编码方式。
          英文和数字(ASCII字元)UTF-8下保持原装,不需要做转换。
          其他文字则需透过程序来做转换,而且会“变胖”,
          因为每个字需要额外多用一个或者两个字节编码。

        o UTF统一字符集变换格式,都必须做到能与Unicode中的字符
          进行自由的双向变换,而不丢失任何信息。否则,不能称之为
          UTF

    3.4 UCS 通用字符集

        o UCS-2 , 大体等同于Unicode采用的双字节编码

        o UCS-4, 以一个四字节来表示一个字,在每个UCS-2前面补上两个空白字节即可转换

    3.5 XML的支持

        o XML标准中只明确规定,解析器必须支持UTF-8/16,对其他字符的支持不是必须的

    3.6 Unicode细节

    3.6.1 Unicode空间分配

    (1) 西欧字母(英文字母和数字)
        o Unicode中的前256个字符
        o U+0000~~U+00FF
        o 和ISO 8859-1 (俗称Latin-l,西欧字母)完全相同
        o 其中,前128个字符就是ASCII码
        o 对每个ISO 8859-1 前补充一个字节的0,才是Unicode对应的码

    (2) Unihan 统汉字
        o 主要分布在 U+3400~~U+9FFF; U+F900~~U+FAFF之间也有一些
        o BIG5和GB2312中的汉字和符号,都在U+4E00~~U+9FFF里
      
    (3) UTF-8

        1) 编码原理和特性

            o 不等幅编码,可能需要一~三个字节,来实现Unicode中的字符
            o ASCII码,使用一个字节表示。
            o 所有中文字,都使用三个字节表示
            o 更适合兼容西文文件,适合表示西文文字占大多数的文件

        2) UTF-8的优点

            o 避免与0X00这类操作系统或者函数库中的有特殊作用和意义的字元相冲突
            o 字与字之间的疆界好找,不像UTF-16那样必须从头扫描

        3)UTF-8 的缺点

            o 大多数文字用它表示都会膨胀,尤其是中、日、韩文。最差情况,
              如果通篇不包含西文的话,那么所有字符都是三字节表示的。
    (4) UTF-16

        1)surrogate paris
       
           o 用于扩充,以弥补两个字节的不足
           o 使用代理对(surrodate paris)机制,可容纳一百多万个字(1024x1024)
           o 使用surrogate paris需要四个字节表示一个字
           o surrogate paris机制,和不需要这个机制的6万3千多个Unicode码,
             共同构成UTF-16
           
        2) UTF-16的优点
           o 对于中文等文字,不像UTF-8那样有到3字节的膨胀
             (前提是对于不使用surrogate paris机制的那些字)

        3) UTF-16的缺点

           o 与0X00这类操作系统或者函数库中的有特殊作用和意义的字元相冲突
           o 字与字之间的疆界难找,必须从头扫描。如果一个地方切错了,后面的中文
             都会错,直到再次出现英文字母或数字才会正常
           o 对于西文字,由于都要用两个字节来存储,使得空间有浪费

    5)Unicode私用区

         o Unicode中保留了三块私用区
         o 编程人员可以用来表示Unicode没有收录的古字或者特殊符号
         o U+E000 ~~ U+F8FF
           0xF0000~~ 0xFFFFD
           0x100000~ 0x10FFFD
           后两个是 surrogate paris 中的私用区

    4 Namespace 命名空间

    4.1 标识码的由来

        o 唯一性的需求,以免标签名称重复造成混淆
        o 想法: 让每个XML文件都使用自己唯一的名字空间,这样各个文件之间彼此肯定不会重复
        o 而如果向目前的DNS上的域名注册一样,需要注册甚至付费的话,就很不方便了
        o 而且没有一个容易的组织有精力来统一管理这些名字空间
        o 因此,想到借用目前已经很唯一的网络域名,来作为xml文件内容的命名空间
        o 网络域名在XML的命名空间位置出现,仅仅为了对文档进行区分,因此只要能区别开就行
          不必限制选用那个域名。即随便写那个域名都可,甚至可以写根本不存在的网址。
        o 但是建议还是选用属于自己homepage底下的网址来用,以避免纠纷和混乱
        * 注:上面说的网址,其实属于URI范畴。只是为了理解方便

    4.2 URI / URL / URN

        o URI 包含 URL, URN
        o URL 和 URN 有交集
        o URL 专指 "明确表明资源取得途径及其管道的代码"
          即,标有通信协议(http, ftp, gopher)的字串
        o URN 指相对URL / URI ,较持久的,并且有专门机构负责的资源。如图书馆的图书总目录

    4.3 命名空间的声明 declaration

        o xmlns:命名空间前缀="http://some.url.com/some/namespace"
        o 冒号是分隔符,因此命名空间前缀中不能再使用冒号了。
        o 命名空间前缀,即namespace prefix
        o 利用前置字串来区别元素标签时候,必须使用冒号。
          <命名空间前缀:tag1 .....>

    4.4 命名空间的范畴 scope

        o 向下层起作用,对父层无效

    4.5 命名空间的默认值

        o xmlns="http://some.url.com/some/namespace"
        o 其作用范围内的标签不用再加命名空间前缀

    4.6 典型应用

        o 将HTML标签潜入到XML文档中,可以提供form的功能,诸如event handle;超级链接的功能
        o html命名空间为:" http://www.w3c.org/TR/REC-html40"

    5 XHTML

       o HTML4.0之后的后继者
       o 是XML的一项应用
       o 以下是XHTML1.0中的规定
       o XHTML1.0 中给出了三个DTD: strict , tratitional, frameset
       o XHTML语法的核对:
         (1)W3C的核对服务,"http://validator.w3c.org"。登陆并输入网页地址。
         (2)或者在页面上制作超链接 "http://validator.w3c.org/check/referer"
       o 元素、属性,一律小写
       o 必须使用正确的根元素(html),加命名空间
          <html xmlns="http://www.w3.org/TR/html1">
       o <head><body>必须正确的出现,而且<title>必须是<head>的第一个出现的元素
       o 用CDATA区来包装style sheet 和 scripts。
         这样其中的内容,就会被XML解析器原封不动的传递给下游程序--浏览器。
       o 与旧的HTML浏览器的兼容,需要注意一些细节。参见原文74页

       o >>> HTML Tidy <<<
         W3C提供的HTML的清理工具,可以清理HTML处理掉其中不严格的地方
         也可以将之转换为XHTML文件

         tidy -raw -asxml -f errorFileName inputFileName > OutputFileName

             > -raw 告诉Tidy不要去动ASCII码以外的代码,即不要处理文档中的中文字符
             > -asxml 是将HTML文件转换为XHTML的。不需转换时候,不要这个参数
             > tidy 默认输出是STDOUT,使用重定向到文件才能顺利完成转换
             > -utf8 输入文件的字符是UTF-8时,可以用这个替代 -raw
             > -m 直接将转换结果回写到输入文件,即直接替换
             > -c 用CSS的方式改写<center>和<nobr>这两个不符合标准的标签
             > -h help

    6 XSLT

    6.1 XSL

       o XSL  本身是一种XML的应用
       o 一共分做两部分
             > 第一部分负责将XML源码转为其他格式
             > 第二部分 Formatting Object ,提供了大量的format命令,
               可控制印刷或屏幕的显示,精确控制外观。device-independent格式
             * 第一部分的转换语法可以为第二部分服务

       o XSL可以输出任何格式正确的XML文件
             > XML --> HTML
             > XML --> XML   适用于不同格式的XML数据文件的交换
             > XSL --> XSL

       o XSL 与 CSS 的差异
             > XSL是转换,产生新码。CSS不转换文件,不产生新码,仅仅规定显示的外观。
               但XSL的转换不破坏原文,通常输出到另外的文件中,或者暂存在浏览器的缓存中。
             > XSL转换是死的,没有互动性。XML配上CSS、DOM、JavaScript可以营造出DHTML效果
             > XSL文件本身是XML文件。CSS文件的语法自成一体。

       o XSL 与 CSS 的相同之处
             > 都控制显示的样式
             > 都不破坏原始的XML文件

       o XSLT是从XSL中将其第一部分提取出来单独成为一个标准。这样XSL就只剩FO部分了。

    6.2 XSLT

       o 对于网站的有效应用:

         可以用XSLT将XML文档,转换成HTML文档。根据情况,转换可以安排在C/S的任何一端

       o 工作原理和流程简述

         (1)XSLT处理器开始工作时,先调用XML解析器解释XSL style Sheet文件和要处理的XML文件
         (2)XML解析器将分析上述二者的结构。待处理的XML解析后成为 source tree
         (3)XSL处理器根据XSL中各个命令,在source tree上爬,遇到合适的枝叶,就按照XSL的
            规定,吐出一个合适的枝叶(一个XML片段)。直到爬完整个source tree为止。
         (4)(3)中所有生成的新枝叶,组合成一棵新树,就是 result tree

       o 支持软件LotusXSL, xt

       o <xsl:templete match="any/Thing/you/want/to/match">

       o <xsl:apply-templetes select="your/templete/name"/>
         这里相当于函数的调用,运行到这里后会去执行相应的templete处理内容

       o <xsl:for-each select="node/name/you/want/to/process">
         ...
         </xsl:fro-each>

       o xsl:output encoding="BIG5/GB2312/UTF-8"

       o XPath 是一套路径描述的标准,其目的是提供XSLT和XPointer一套共同、整合的对应语法
         用来对应XML文件中的各个部位、选择文件中的构成元件(元素、属性、文字...)


    </pre>


       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/12/6 17:02:00
     
     nezimi 美女呀,离线,快来找我吧!
      
      
      等级:大一新生
      文章:0
      积分:54
      门派:XML.ORG.CN
      注册:2006/12/7

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给nezimi发送一个短消息 把nezimi加入好友 查看nezimi的个人资料 搜索nezimi在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看nezimi的博客2
    发贴心情 
    谢谢!努力学习中...
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/12/7 13:54:00
     
     flyingFang 美女呀,离线,快来找我吧!
      
      
      威望:1
      等级:大三(面向对象是个好东东!)
      文章:82
      积分:755
      门派:XML.ORG.CN
      注册:2006/5/15

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给flyingFang发送一个短消息 把flyingFang加入好友 查看flyingFang的个人资料 搜索flyingFang在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看flyingFang的博客3
    发贴心情 
    希望能帮到你。其实这只是<无废话XML>的整理和记录,可以快速浏览用
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/12/11 19:47:00
     
     hjx_221 帅哥哟,离线,有人找我吗?
      
      
      威望:7
      等级:博士一年级
      文章:4607
      积分:24021
      门派:XML.ORG.CN
      注册:2004/8/30

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给hjx_221发送一个短消息 把hjx_221加入好友 查看hjx_221的个人资料 搜索hjx_221在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看hjx_221的博客4
    发贴心情 
    谢谢!努力学习中...

    ----------------------------------------------
    初从文,三年不中;后习武,校场发一矢,中鼓吏,逐之出;遂学医,有所成。自撰一良方,服之,卒~ 
    http://hjx221.blogger.org.cn/

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/12/20 9:02:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 XML基础 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2025/10/5 22:03:23

    本主题贴数4,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    85.938ms