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

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

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 55530 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 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 文件根元素名 [
        实体声明部分
    ]>
    <文件根元素名>
        具体数据内容
    </文件根元素名>


       收藏   分享  
    顶(2)
      




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

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/8/10 9:35:00
     
     卷积内核 帅哥哟,离线,有人找我吗?
      
      
      威望:8
      头衔:总统
      等级:博士二年级(版主)
      文章:3942
      积分:27590
      门派:XML.ORG.CN
      注册:2004/7/21

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给卷积内核发送一个短消息 把卷积内核加入好友 查看卷积内核的个人资料 搜索卷积内核在『 XML基础 』的所有贴子 访问卷积内核的主页 引用回复这个贴子 回复这个贴子 查看卷积内核的博客2
    发贴心情 
    5、实体引用
    说到实体引用,大家可能想起前面我们曾用“&lt;”代表字符“〈”。不错,这就是一个实体引用。

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

    &实体名;


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

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

    %实体名;

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

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/8/10 9:36:00
     
     卷积内核 帅哥哟,离线,有人找我吗?
      
      
      威望:8
      头衔:总统
      等级:博士二年级(版主)
      文章:3942
      积分:27590
      门派:XML.ORG.CN
      注册:2004/7/21

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给卷积内核发送一个短消息 把卷积内核加入好友 查看卷积内核的个人资料 搜索卷积内核在『 XML基础 』的所有贴子 访问卷积内核的主页 引用回复这个贴子 回复这个贴子 查看卷积内核的博客3
    发贴心情 
    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">

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

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/8/10 9:37:00
     
     卷积内核 帅哥哟,离线,有人找我吗?
      
      
      威望:8
      头衔:总统
      等级:博士二年级(版主)
      文章:3942
      积分:27590
      门派:XML.ORG.CN
      注册:2004/7/21

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给卷积内核发送一个短消息 把卷积内核加入好友 查看卷积内核的个人资料 搜索卷积内核在『 XML基础 』的所有贴子 访问卷积内核的主页 引用回复这个贴子 回复这个贴子 查看卷积内核的博客4
    发贴心情 
    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,反而可能会搞得你不知所措,一头雾水。

    11、在定义元素时,ETD的顺序是无关紧要的。因此
        <!ELEMENT 姓名(#PCDATA)>    
        <!ELEMENT 联系人列表 ANY>
        <!ELEMENT 联系人(姓名)>

        <!ELEMENT 联系人列表 ANY>
        <!ELEMENT 联系人(姓名)>
        <!ELEMENT 姓名(#PCDATA)>    
    所定义的文件结构是完全相同的。


    12、还有一点要注意,不能对不同的元素使用相同的元素名,即便这些元素的内容、包含的子元素不同也不行,
    因为它只会引起文件各个元素的混淆,使文件的可读性大打折扣。例如:
        <!ELEMENT 联系人列表 ANY>
        <!ELEMENT 联系人(姓名)>
        <!ELEMENT 联系人(EMAIL)>
        <!ELEMENT 姓名(#PCDATA)>
        <!ELEMENT EMAIL(#PCDATA)>
    在这个例子中,对“联系人”的重复定义,会引起错误。

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

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/8/10 9:37:00
     
     卷积内核 帅哥哟,离线,有人找我吗?
      
      
      威望:8
      头衔:总统
      等级:博士二年级(版主)
      文章:3942
      积分:27590
      门派:XML.ORG.CN
      注册:2004/7/21

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给卷积内核发送一个短消息 把卷积内核加入好友 查看卷积内核的个人资料 搜索卷积内核在『 XML基础 』的所有贴子 访问卷积内核的主页 引用回复这个贴子 回复这个贴子 查看卷积内核的博客5
    发贴心情 
    13、最后再次强调一下元素的命名。元素名的第一个字母必须是字母、或下划线(_)、或冒号(:),
    后跟字母、数字、句号(.)、冒号、下划线、连结号(-)的组合,并且不能包含空白符,不能以“xml”开头。
    另外,尽管元素的第一个字母使用冒号是合法的,但最好避免这样做,因为它会引起混淆。再有需要注意的是,
    尽管XML1.0标准允许使用任何长度的文件名,但是实际的XML处理器常常会限制标记名的长度。

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

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/8/10 9:37:00
     
     卷积内核 帅哥哟,离线,有人找我吗?
      
      
      威望:8
      头衔:总统
      等级:博士二年级(版主)
      文章:3942
      积分:27590
      门派:XML.ORG.CN
      注册:2004/7/21

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给卷积内核发送一个短消息 把卷积内核加入好友 查看卷积内核的个人资料 搜索卷积内核在『 XML基础 』的所有贴子 访问卷积内核的主页 引用回复这个贴子 回复这个贴子 查看卷积内核的博客6
    发贴心情 
    14、
    学过《编译原理》的应该对正则表达式都非常理解拉,这里用法相同。

    元 字 符        含    义

      +         出现一次或多次
      *         出现零次或多次
      ?        可选,不出现或出现一次
    ()       一组要共同匹配的表达式
      |            OR,或
      ,        AND,要求严格遵从顺序要求
      元素A
      元素B
      元素C    元素列表,无须遵从顺序要求

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

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/8/10 9:39:00
     
     卷积内核 帅哥哟,离线,有人找我吗?
      
      
      威望:8
      头衔:总统
      等级:博士二年级(版主)
      文章:3942
      积分:27590
      门派:XML.ORG.CN
      注册:2004/7/21

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给卷积内核发送一个短消息 把卷积内核加入好友 查看卷积内核的个人资料 搜索卷积内核在『 XML基础 』的所有贴子 访问卷积内核的主页 引用回复这个贴子 回复这个贴子 查看卷积内核的博客7
    发贴心情 
    斑竹怕看起来麻烦就整理一下吧,这是偶刚来时发的,不懂你的意思,没一次发出来,不好意思

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

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/8/25 16:49:00
     
     蜘蛛 美女呀,离线,快来找我吧!
      
      
      等级:大一(猛啃高等数学)
      文章:12
      积分:102
      门派:IEEE.ORG.CN
      注册:2005/9/10

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给蜘蛛发送一个短消息 把蜘蛛加入好友 查看蜘蛛的个人资料 搜索蜘蛛在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看蜘蛛的博客8
    发贴心情 
    好感谢,好感谢,我都把它复制到我的记事本了

    ----------------------------------------------
    生命的一切都是美好的吗? /:) 未知数 /:|

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/9/20 1:43:00
     
     asgc_dgh 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:2
      积分:64
      门派:XML.ORG.CN
      注册:2005/9/25

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给asgc_dgh发送一个短消息 把asgc_dgh加入好友 查看asgc_dgh的个人资料 搜索asgc_dgh在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看asgc_dgh的博客9
    发贴心情 
    初学,非常感谢!!!
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/9/26 0:12:00
     
     一一 美女呀,离线,快来找我吧!
      
      
      等级:大一新生
      文章:2
      积分:64
      门派:XML.ORG.CN
      注册:2005/11/4

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给一一发送一个短消息 把一一加入好友 查看一一的个人资料 搜索一一在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看一一的博客10
    发贴心情 
    lz好好啊
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/11/4 12:37:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 XML基础 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/5/14 10:29:03

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

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