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

XML
XPath 11个实例
从xml中获取城市,省份名称
XMLTextReader和XmlDocument读取XML文件的比较
对于任意的XML的遍历
xml文件调用css
灵活调用xsl来解析xml文档(js异步)
XML 增、删、改和查示例
從無到有實現一個xml數據庫登錄驗証
利用XSLT把ADO记录集转换成XML
XML 问题: 超越DOM(轻松使用 DOM 的技巧和诀窍)
使用 XML 文件记录操作日志
XML和XSLT结合使网站设计浑然一体
如何使用XML实现多渠道接入网站的构架
基于关系型数据库引擎的\"XML\"索引技术
XML数据查询技术已经成为现今的研究热点
XML轻松学习手册(3)XML的术语
学习使用XML引擎XQEngine
XML简易教程之一
XML简易教程之二
XML简易教程之三

XML入门教程:实体


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-11   浏览: 69 ::
收藏到网摘: 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,这样,该元素声明就无效了。