当前位置:早雪网网络学院编程文档XML技术 → XML属性和实体:实体

XML属性和实体:实体

减小字体 增大字体 作者:未知  来源:从互联网收集并转载  发布时间:2005-2-10 21:47:58
作者:未知  
实体

有五种预定义的XML实体,HTML编码者应该熟悉。XML文档中的字符&、<、>、"和'被分别表示为&、@lt;、>、"和'。

XML很大程度上扩展了实体的功能 - 允许在DTD中定义实体以便在文档的其余部分使用。例如,我在XML文档中需要频繁使用词组"Wired Digital",可以在DTD中这样表示:

<!ENTITY wd "Wired Digital">

这样当我使用这个词组时,可以敲入&wd;。于是可以避免拼错和重复敲入相同的信息。实体可以起到字处理器中宏的作用。

被替换的文本可以任意长,但是如果真是很长,可能要把信息存储在另一个文件中。可以通过外部实体参考来实现 - 在实体名和文件的URL中使用关键字SYSTEM:

<!ENTITY text SYSTEM "http://my.url.here">

这些特征功能强大,但有一个缺点:在一个DTD内不能被扩展。为了实现扩展功能,需要一个称为参数实体的特殊工具。它在实体定义中通过在实体名前插入"%"实现。一旦被定义,参数定义可以通过用百分号和分号包围参数名来实现。

为什么这么做?看看下面的代码:


<!ELEMENT vCard (%prop.man;, (%prop.id; | %prop.del; |

%prop.tel; | %prop.geo; | %prop.org; |

%prop.exp; | %prop.sec;)*)>


这段代码来自一个公用的XML名片草稿。当定义根元素时,作者发现更容易把信息分离到不同的参数实体中。如果看看其中的一个实体表现,我们就会知道为什么了。看看下面的prop.id实体:

<!ENTITY % prop.id "

(nickname | photo | bday)">


如果每个实体都用这么长的字符串表示,元素定义将很难阅读。

现在可以读一些DTD了。

[数据载入中...] [返回上一页] [打 印]