这一节我们来学习一下实体,在面向对象的编程过程中,经常会碰到实体的概念。比如用户实体,那我们说所说的用户实体就是指一个具有一些属性值的用户。
其实XML这个实体概念也是差不多的。
XML中实体包括两种类型:一般实体和参数实体。
- 一般实体
我们前面说到的那个信件署名就是一般实体。定义一般实体的格式如下:
<!ENTITY 实体名 "文本内容"〉 |
关于刚才的信件署名的实体定义如下:
<!ENTITY lettersign "张三 某网络公司销售部门 北京市海淀区中关村88号,100000"〉 |
另外,你也可以指定一个实体代替一个外部文件的内容,此时要使用SYSTEM这个关键字。例如:
<!ENTITY lettersign SYSTEM "http://www.mydomain.com/lettersign.xml"〉 |
在这个例子中,XML处理器将用指定文件的内容来替换实体指示。
- 参数实体
与一般实体相同,参数实体既可以是内部的也可以是外部的。不过,参数实体只用在DTD中。参数实体的格式与一般实体很类似,只不过中间要加上“%”符。
<!ENTITY % 实体名 "文本内容"〉 实体的使用方式在面向对象的编程方式中,使用实体需要先申明一下User u = new User();u.Age = 28u.Addr = “山东青岛威海路238号“;xml的实体声明方式对于实体的声明应该放在文件类型DOCTYPE中。DOCTYPE一般放在文件头(即XML声明和DTD)之后,XML元素之前。这样一来,XML文件就变为下面的形式:
<?xml version="1.0"?>
<!DOCTYPE 文件根元素名 [
实体声明部分
]>
<文件根元素名>
具体数据内容
</文件根元素名>看一个实例(注意引用实体时在实体名前要加&,并且在末尾要加;)<?xml version="1.0" encoding="GB2312"?>
<!DOCTYPE 联系人列表 [
<!ENTITY A公司地址 "北京市五街1234号">
<!ENTITY B公司地址 "上海南京路98763号">
]>
<联系人列表>
<联系人>
<姓名>张三</姓名>
<公司>A公司</公司>
<地址>&A公司地址;</地址>
</联系人><联系人>
<姓名>李四</姓名>
<公司>B公司</公司>
<地址>&B公司地址;</地址>
</联系人><联系人>
<姓名>王五</姓名>
<公司>B公司</公司>
<地址>&B公司地址;</地址>
</联系人>
</联系人列表>这个好处在于可以只更新实体,使所有引用此实体的实例都能够自己更新,非常快捷与方便。