当前位置: 首页 > 图文教程 > XML家族 > XML > XML入门教程:实体

XML
XML简易教程之四
XML与HTML的结合(上)
XML与HTML的结合(下)
XML入门的常见问题(一)
XML入门的常见问题(二)
XMLHTTP资料
什么是XML
什么是 XML Web Service
XML正在接管Web服务 成为SOA的基础
怎么样在网页上读取远程xml的数据
XML教程—编写结构完整的XML文档
读写xml文件的2个小函数
XML文档的基本操作
初学者如何开发出一个高质量的J2EE系统
优化 JavaScript 代码
自动更新程序的设计框架
使Firefox对XML的处理兼容IE的节点处理方法
WML学习之四 锚和任务
WML学习之五 显示表单
WML学习之六 事件

XML入门教程:实体


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-11   浏览: 68 ::
收藏到网摘: n/a


                         由于数据不是XML格式,所以使用NDATA声明指定数据类型。avi是在NOTATION中定义的MIME媒体类型。在XML中嵌入未析实体很复杂且不规范,尽量不要使用。              实体
           
    用ENTITY声明定义实体。如:    
    <!ENTITY linux "linux is a very good system"> 用&linux;可引用该字符串            
    可定义一个外部实体,引用外部XML文档    
    <!ENTITY linux SYSTEM "/home/linux/test.xml"> 使用&linux;可引用/home/linux/test.xml文档    
    外部实体没有XML声明,但可以有文本声明,两者很类似,主要区别是文本声明必须有编码声明,而版本信息则是可选的。    
    <?xml version="1.0" encoding="gb2312"?>    是一个合法的文本声明 <?xml encoding="gb2312"?>                  也是一个合法的文本声明            
    不是所有的数据都是XML。如jpeg照片,mpeg电影等。XML建议使用外部未析实体作为在文档中嵌入这些内容的机制。DTD为包含非XML数据的实体指定一个名称和URI。    
    <!ENTITY movie SYSTEM "/home/linux/test.avi" NDATA avi>    
    由于数据不是XML格式,所以使用NDATA声明指定数据类型。avi是在NOTATION中定义的MIME媒体类型。在XML中嵌入未析实体很复杂且不规范,尽量不要使用。    
    本文由软晨学习网(http://www.ruanchen.com)整理发布!转载请注明出处,谢谢!
             
      参数实体可定义一组通用的实体,在文档中可通过该参数实体来引用实体。参数实体的定义与通用实体定义类似,只是中间多了一个%,引用时也是用%代码&。    
      <!ENTITY % person "name,address,postcode"> 引用方法 %person; 这样会用name,address,postcode代替参数实体%person;            
      通常DTD都比较大,DocBook的DTD长达11000多行,如果把它存放在单一文件中,管理和维护起来都非常困难。我们可以使用外部DTD子集,把一个大的DTD按功能分成不同的功能块,存放在不同的文件中。再通过外部参数实体声明引入当前DTD中,如:    
      定义参数实体引用外部names.dtd <!ENTITY % names SYSTEM "names.dtd"> 调用外部DTD子集 %names;            
      使用IGNORE关键字可注释声明,如:    
      <![IGNORE[    <!ELEMENT note (#PCDATA)> ]]>    
      当然了,使用<!-- 注释 -->的方式也是一样的。            
      INCLUDE关键字表示DTD中的确在使用给定的声明,如:    
      <![INCLUDE[    <!ELEMENT note (#PCDATA)> ]]>    
      单从该声明来看,有没有使用INCLUDE效果都一样,但如果组合INCLUDE和IGNORE,可实现DTD功能的选择。我们可定义一个参数实体:    
      <!ENTITY % note_allowed "INCLUDE" >    
      然后使用参数实体引用而不使用关键字:    
      <![%note_allowed;[    <!ELEMENT note (#PCDATA)> ]]>    
      按上述操作,元素声明是有效的,但我们也可以把参数实体%note_allowed重新定义为IGNORE,这样,该元素声明就无效了。