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

    >> 关于 XML 的一般性技术讨论,提供 XML入门资料 和 XML教程
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - XML技术『 XML基础 』 → XML初学进阶学习笔记[原创](整理完整版) 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 33822 个阅读者浏览上一篇主题  刷新本主题   平板显示贴子 浏览下一篇主题
     * 贴子主题: XML初学进阶学习笔记[原创](整理完整版) 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     卷积内核 帅哥哟,离线,有人找我吗?
      
      
      威望:8
      头衔:总统
      等级:博士二年级(版主)
      文章:3942
      积分:27590
      门派:XML.ORG.CN
      注册:2004/7/21

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给卷积内核发送一个短消息 把卷积内核加入好友 查看卷积内核的个人资料 搜索卷积内核在『 XML基础 』的所有贴子 访问卷积内核的主页 引用回复这个贴子 回复这个贴子 查看卷积内核的博客楼主
    发贴心情 XML初学进阶学习笔记[原创](整理完整版)

    简体中文码:GB2312
        繁体中文码:BIG5
        西欧字符: UTF-8


    1、一般实体

    我们前面说到的那个信件署名就是一般实体。定义一般实体的格式如下:
    <!ENTITY 实体名 "文本内容"〉  

    关于刚才的信件署名的实体定义如下:

    <!ENTITY lettersign
    "张三
    某网络公司销售部门
    北京市海淀区中关村88号,100000"〉  

    另外,你也可以指定一个实体代替一个外部文件的内容,此时要使用SYSTEM这个关键字。例如:

    <!ENTITY lettersign
    SYSTEM "http://www.mydomain.com/lettersign.xml"〉  

    在这个例子中,XML处理器将用指定文件的内容来替换实体指示。


    2、参数实体
    与一般实体相同,参数实体既可以是内部的也可以是外部的。不过,参数实体只用在DTD中。
    参数实体的格式与一般实体很类似,只不过中间要加上“%”符。

    <!ENTITY % 实体名 "文本内容"〉  


    3、实体的使用包括两部分:实体声明和实体引用。

    4、实体声明
    对于实体的声明应该放在文件类型DOCTYPE中。DOCTYPE一般放在文件头(即XML声明和DTD)之后,
    XML元素之前。这样一来,XML文件就变为下面的形式:

    <?xml version="1.0"?>
    <!DOCTYPE 文件根元素名 [
        实体声明部分
    ]>
    <文件根元素名>
        具体数据内容
    </文件根元素名>

    5、实体引用
    说到实体引用,大家可能想起前面我们曾用“&lt;”代表字符“〈”。不错,这就是一个实体引用。

    简而言之,实体引用指的是引用一个在实体声明中已经声明过的一个实体。实体引用的形式很简单:

    &实体名;


    6、实体引用有以下几点规则一定要注意:

    在引用XML实体之前,必须已经在XML文件中对此实体进行过声明;
    在实体引用中不能出现空格。也就是说,& lettersign;和&letterhead ;的用法都会引起错误。
    尽管在一个实体中可以再引用其它实体,但是不能出现循环引用。也就是说,一个实体不能引用它自己;
    同样,也不能出现实体A引用实体B,然后实体B再反过来引用实体A的情况。
    实体引用不能在DOCTYPE声明中出现。
    实体引用的文本必须是形式良好的XML。
    同样,参数实体的引用与一般实体的引用大同小异,只是要把实体前的符号&换为%就可以了,形式是:

    %实体名;

    7、实体引用不仅可以出现在字符数据中,还可以出现在标记的属性中。例如下面这个例子:

    <联系人 公司=“B公司” 地址=“&B公司地址;”>  

    如果在属性中出现实体引用,不但要遵守前面所述的实体引用的种种规则,还要注意以下两点:

    在标记属性中不能引用一个外部实体。
    引用的文本中不能出现字符“<”,否则替换后就不再是一个“形式良好的”XML文件了。
    通过这一节的讲述,想必大家已然了解:实体主要是用来代替字符数据的,它可以节省大量的录入工作。

    8、使用外部DTD时,要在DOCTYPE中使用关键字SYSTEM。实际上,SYSTEM不是引用外部DTD的唯一方法,
    这个关键字主要用于引用一个作者或组织所编写的众多XML文件中通用的DTD。还存在一种外部DTD,
    它是一个由权威机构制订的,提供给特定行业或公众使用的DTD。因此,另一个引用外部DTD的办法是使用关键字PUBLIC,
    引用这一类公开给公众使用的DTD。

    当使用关键字PUBLIC进行引用时,这个外部DTD还需要得到一个标识名。引用公共DTD的形式为:

    <!DOCTYPE 根元素 PUBLIC "DTD名称" "外部DTD的URL">


    9、这个DTD标识的命名规则和XML文件的命名规则稍有不同。具体地说,DTD名称只能包含字母、
    数字、空格和下面的符号:_%$#@()+:=/!*;?。同时,DTD名称还必须符合一些标准的规定。
    例如,ISO标准的DTD以“ISO”三个字母开头;被改进的非ISO标准的DTD以加号“+”开头;未被改进的非ISO标准的DTD以减号“-”开头。

    无论是哪一种情况,开始部分后面都跟着两个斜杠“//”及DTD所有者的名称。在这个名称之后又是两个斜杠“//”,
    再然后是DTD所描述的文件的类型。最后,在又一对斜杠之后是语言的种类(参见ISO 639)。例如下面这个公用DTD的引用:

    <!DOCTYPE 联系人列表 PUBLIC "-//Luna Dong//Contact Data//CN"
    "http://www.mydomain.com/dtds/fclml.dtd">

    10、除了根元素外,在定义其它元素时使用关键字ANY都是不好的习惯。一般来说,在写一个XML文件时需要严格遵循DTD的规则,
    这时,一个定义明确的DTD,虽然表面上似乎充满了条条框框,但实际上会使你在书写XML文件时有规可循,
    反而方便了你的工作和语法分析器的工作。相反,一个在元素定义中充满了ANY的DTD,反而可能会搞得你不知所措,一头雾水。


       收藏   分享  
    顶(0)
      




    ----------------------------------------------
    事业是国家的,荣誉是单位的,成绩是领导的,工资是老婆的,财产是孩子的,错误是自己的。

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

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

     *树形目录 (最近20个回帖) 顶端 
    主题:  XML初学进阶学习笔记[原创](整理完整版)(3664字) - 卷积内核,2006年3月15日
        回复:  初学,了解(9字) - mike_fang,2008年5月26日
        回复:  ding~~~还是刚刚接触这个东西!迷茫ing(38字) - klzhuang,2007年11月29日
        回复:  替你顶起来 哈哈好东西哦怎么能沉了呢(42字) - minmin0876,2007年4月9日
        回复:  由于前段时间是边学边发,所以凌乱了一些,应广大兄弟姐妹建议今天整理一下,希望能多多交流,让我们论坛..(106字) - 卷积内核,2006年3月15日
        回复:  44、这种方案存在一个前提,那就是,开发者必须了解文档结构,并且通过编程严格控制输出文档的格式。..(7149字) - 卷积内核,2006年3月15日
        回复:  41、在关系数据库中,数据仅仅是数据,它不包含层次结构信息;而面向对象数据库可以将数据视为对象,..(2921字) - 卷积内核,2006年3月15日
        回复:  35、对DOM树的操作::首先,我们要获取XML文档的根元素节点,用VBScript语言描..(4502字) - 卷积内核,2006年3月15日
        回复:  28、对于XML应用开发来说,DOM就是一个对象化的XML数据接口,一个与语言无关、与平台无关的标..(4323字) - 卷积内核,2006年3月15日
        回复:  27、XML DOM初学者指南 总述:本文主要讨论如何利用XMLDOM访问和维护XML文..(11011字) - 卷积内核,2006年3月15日
        回复:  21、dt:typedt:type指定所声明属性的数据类型,它除了支持DTD中包含的全部十大数据..(4072字) - 卷积内核,2006年3月15日
        回复:  11、在定义元素时,ETD的顺序是无关紧要的。因此 <!ELEMENT 姓名(#PCDAT..(2764字) - 卷积内核,2006年3月15日

    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    62.500ms