DTD中的实体Entity



W3School



实体是用于定义引用普通文本或特殊字符的快捷方式的变量。

实体引用是对实体的引用。

实体可在内部或外部进行声明。

一个内部实体声明

语法:

<!ENTITY 实体名称 "实体的值">

例子:

DTD 例子:

<!ENTITY writer "Bill Gates">
<!ENTITY copyright "Copyright W3School.com.cn">

XML 例子:

<author>&writer;&copyright;</author>

注释: 一个实体由三部分构成: 一个和号 (&), 一个实体名称, 以及一个分号 (;)。

一个外部实体声明

语法:

<!ENTITY 实体名称 SYSTEM "URI/URL">

例子:

DTD 例子:

<!ENTITY writer SYSTEM "http://www.w3school.com.cn/dtd/entities.dtd">
<!ENTITY copyright SYSTEM "http://www.w3school.com.cn/dtd/entities.dtd">

XML 例子:

<author>&writer;&copyright;</author>


other网页



    实体可以简单的理解为引用数据项的方法,可以是普通的文本也可以是二进制数据。

    实体可以分为通用实体和参数实体。通用实体用于XML当中,用于引用文本或者二进制数据,而参数实体只能在DTD中使用。通用实体与参数实体可以是内部实体或者是外部实体。实体还可以分为未解析与解析的实体,不同在于解析实体是规范的XML文本,而未解析的实体是不应该被解析器解析的二进制数据。

3种实体可以组合出8种实体,但实际上XML只用到5种形态:
1、通用内部解析实体
2、通用外部解析实体
3、通用外部未解析实体
4、参数内部解析实体
5、参数外部解析实体

通用内部解析实体

语法:

<!ENTITY 名称 “内容”>

实例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<? xml  version="1.0" encoding="utf-8"?>
<! DOCTYPE  root[
     <!ELEMENT root (shop)+>
     <! ELEMENT  shop (name, address, size, pic*, remark?)>
     <! ELEMENT  name (#PCDATA)>
     <! ELEMENT  address (#PCDATA)>
     <! ELEMENT  size (#PCDATA)>
     <! ELEMENT  pic (#PCDATA)>
     <! ELEMENT  remark (#PCDATA)>
     <! ENTITY  big "旗舰店">
     <! ENTITY  medium "中等">
     <! ENTITY  small "小型">
]>
< root >
     < shop >
         < name >物美</ name >
         < address >文一路</ address >
         < size >&big;</ size >
     </ shop >
</ root >

注意:在实体中可以嵌套,但是不能两个是个实体互相嵌套(死循环了)。

下面正确的引用:

<!ENTITY one “one”>

<!ENTITY two “&one; I am two”>

下面是不正确的引用:

<!ENTITY one “Hello &two;”>

<!ENTITY two “Hello &one”>

参数内部解析实体

参数内部实体相当于DTD代码段的声明。

实例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<? xml  version="1.0" encoding="utf-8"?>
<! DOCTYPE  root[
     <!ENTITY % shopattr "
     <!ELEMENT name (#PCDATA)>
     <! ELEMENT  address (#PCDATA)>
     <! ELEMENT  size (#PCDATA)>
     <! ELEMENT  pic (#PCDATA)>
     <! ELEMENT  remark (#PCDATA)>">
 
     <! ELEMENT  root (shop)+>
     <! ELEMENT  shop (name, address, size, pic*, remark?)>
     %shopattr;  <!--使用参数实体替代-->
 
     <! ENTITY  big "旗舰店">
     <! ENTITY  medium "中等">
     <! ENTITY  small "小型">
]>
< root >
     < shop >
         < name >物美</ name >
         < address >文一路</ address >
         < size >&big;</ size >
     </ shop >
</ root >

通用外部解析实体

DTD中引用otherSize.xml文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<? xml  version="1.0" encoding="utf-8"?>
<! DOCTYPE  root[
     <!ELEMENT root (shop)+>
     <! ELEMENT  shop (name, address, size, pic*, remark?)>
     <! ELEMENT  name (#PCDATA)>
     <! ELEMENT  address (#PCDATA)>
     <! ELEMENT  size (#PCDATA)>
     <! ELEMENT  pic (#PCDATA)>
     <! ELEMENT  remark (#PCDATA)>
     <! ENTITY  big "旗舰店">
     <! ENTITY  medium "中等">
     <! ENTITY  small "小型">
     <! ENTITY  otherSize SYSTEM "otherSize.xml">
]>
< root >
     < shop >
         < name >物美</ name >
         < address >文一路</ address >
         < size >&big;</ size >
     </ shop >
     < shop >
         < name >联华</ name >
         < address >文二路</ address >
         < size >&otherSize;</ size >
     </ shop >
</ root >

otherSize.xml

1
2
3
4
<? xml  version="1.0" encoding="utf-8"?>
< option >
     big too
</ option >
在ie8中显示的效果:

通用外部未解析实体

通用外部未解析实体与其他的类型很相似,区别是XML处理器不会去尝试分析实体的的信息。

通用外部未解析实体的格式:

<!ENTITY 实体名 SYSTEM 二进制数据位置 NDATA 标记名称>

NOTATION指令可以将未解析的二进制实体定义为标记

<!NOTATION 标记名 SYSTEM 标记描述文字>

标记描述文字可以是:

    处理现实二进制数据的应用程序

    描述格式的网络文件

    普通的一段描述性语言

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<? xml  version="1.0" encoding="utf-8"?>
<! DOCTYPE  root[
     <!ELEMENT root (shop)+>
     <! ELEMENT  shop (name, address, size, pic*, remark?)>
     <! ELEMENT  name (#PCDATA)>
     <! ELEMENT  address (#PCDATA)>
     <! ELEMENT  size (#PCDATA)>
     <! ELEMENT  pic EMPTY>
     <! ATTLIST  pic source ENTITY #REQUIRED>
     <! NOTATION  JPEG SYSTEM "acdsee.exe">
     <! ENTITY  pic1 SYSTEM "pic1.jpg" NDATA JPEG>
     <! ELEMENT  remark (#PCDATA)>
     <! ENTITY  big "旗舰店">
     <! ENTITY  medium "中等">
     <! ENTITY  small "小型">
]>
< root >
     < shop >
         < name >物美</ name >
         < address >文一路</ address >
         < size >&big;</ size >
         < pic  source="pic1"/>
     </ shop >
</ root >

参数外部解析实体

使用参数外部解析实体可以方便的组织分布在各个文件中的DTD文件。作用相当的大。

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<? xml  version="1.0" encoding="utf-8"?>
<! DOCTYPE  ROOT [
     <!ELEMENT ROOT (A|B)*>
     <! ENTITY  % A_atrr SYSTEM "A.dtd">
     <! ENTITY  % B_atrr SYSTEM "B.dtd">
     %A_atrr;
     %B_atrr;
]>
< ROOT >
     < A >
         < NAME_A >
             I am A!
         </ NAME_A >
     </ A >
     < B >
         < NAME_B >
             I am B;
         </ NAME_B >
     </ B >
</ ROOT >

 

A.dtd

 

1
2
3
<? xml  version="1.0" encoding="utf-8"?>
<! ELEMENT  A (NAME_A)>
<! ELEMENT  NAME_A (#PCDATA)>

 

B.dtd

 

1
2
3
<? xml  version="1.0" encoding="utf-8"?>
<! ELEMENT  B (NAME_B)>
<! ELEMENT  NAME_B (#PCDATA)>

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
"instantiates undefined entity" 的意思是 "实例化未定义的实体"。在计算机科学实体是指一个具体的对象或事物,而实例化则是创建该实体的实例。因此,当程序尝试实例化一个未定义的实体时,就会出现这个错误。这通常是因为程序员拼写错误或者未定义该实体导致的。要解决这个问题,需要找到并定义该实体,或者修正拼写错误。"Instantiates undefined entity" 可以翻译为 "实例化未定义的实体"。 这个错误通常出现在计算机程序的开发,表示程序试图使用一个未定义的实体(例如变量、对象、函数等)来创建实例,从而导致无法完成实例化操作。 要解决这个问题,开发者需要检查程序是否存在未定义的实体,并确保它们被正确地声明和定义。"Instantiates undefined entity" 的意思是“实例化未定义的实体”,这通常是在计算机程序遇到的错误信息。这意味着程序使用了一个未定义的变量、对象或类等实体,因此计算机无法识别并执行该实体。要解决这个问题,需要检查程序使用的所有变量、对象或类等实体是否已正确定义,并确保代码没有任何拼写错误或语法错误。"instantiates undefined entity" 的意思是“实例化了未定义的实体”。在编程实体通常是变量、对象或类等概念。如果在代码实例化了一个未定义的实体,就会出现这个错误。这通常是因为拼写错误、变量名错误、类名错误或未引入所需的类库等问题引起的。要解决这个问题,需要仔细检查代码的所有实体,确保它们都已正确定义和引入。"instantiates undefined entity" 的意思是“实例化未定义实体”。这个错误通常发生在编程,表示代码使用了一个未定义的变量或对象,导致无法进行实例化操作。要解决这个问题,需要找到代码使用的未定义实体,并进行相应的定义或修正。"Instantiates undefined entity" 的意思是“实例化未定义实体”,通常是在编程时遇到的错误消息之一。这通常意味着在代码引用了一个未定义或未声明的实体(如变量、函数、类等),导致程序无法识别或处理这个实体。要解决这个错误,需要查找代码引用的实体,并确保其在程序被正确定义或声明。"instantiates undefined entity" 的意思是“实例化未定义的实体”。在计算机编程实体指的是一个变量、对象或函数等代码的某个元素。当程序试图使用一个未定义的实体时,就会出现这个错误。 通常情况下,这个错误是由于代码拼写错误、变量未声明、函数未定义等常见问题引起的。要解决这个错误,需要检查代码并确定哪个实体未被正确定义。然后,您可以通过声明变量、定义函数等方式来定义实体,以解决这个问题。这句话的意思是“实例化未定义的实体”。在编程实体可以是一个对象、变量、类等。当使用一个未定义的实体时,程序会抛出“instantiates undefined entity”这个错误信息。这通常表示代码存在拼写错误、语法错误或者未正确声明实体等问题。要解决这个问题,需要检查代码使用的实体名称是否正确并且已经定义。 很抱歉,我不太明白您的意思。这个错误通常出现在计算机程序,意思是试图使用未定义的实体entity)进行实例化(instantiation)。这可能是由于程序缺少必要的定义,或者在程序拼写错误所致。要解决这个问题,需要检查程序代码,确保所有的实体都已经正确定义并且拼写正确。 很抱歉,我无法理解你的意思。"instantiates undefined entity" 的意思是“实例化未定义的实体”,这通常出现在计算机编程领域,表示程序引用了一个未被定义的对象或变量。 这个错误通常是由于拼写错误、变量命名不规范、或者在使用变量之前未定义它们而导致的。要解决这个问题,需要找到代码引用的未定义实体,并确保它们被正确地定义或拼写。 可以通过检查代码的语法错误、变量命名规范、代码注释以及使用调试工具等方法来诊断和解决这个问题。"instantiates undefined entity" 的意思是“实例化了未定义的实体”。这通常发生在计算机程序,当程序试图实例化一个未定义的对象或变量时会出现此错误。这可能是因为代码存在拼写错误或变量名称错误,或者没有定义该实体。要解决此问题,需要检查代码并确保正确定义了所有变量和对象。这个错误提示表示程序引用了一个未定义的实体。在程序使用实体时,需要先在代码定义实体,如果没有定义实体或者实体名称错误,就会出现这个错误提示。要解决这个问题,需要找到程序使用了未定义实体的位置,并且定义或者修正实体的名称或者内容。 我不明白您的意思。"instantiatesundefinedentity" 的意思是 "实例化未定义的实体",通常是指在计算机程序使用了未定义的变量、对象或实体,并尝试对其进行实例化操作。这可能会导致程序崩溃或产生其他错误。为避免这种情况,应该在使用变量、对象或实体之前,先进行定义或声明。"instantiates undefined entity" 的意思是 "实例化未定义的实体",通常出现在计算机程序。 当一个程序尝试创建一个实体entity)的实例,但该实体未被定义或声明时,就会出现这个错误。这可能是因为代码拼写错误、变量名称错误、缺少必要的引用或库等原因导致的。 要解决这个问题,需要检查程序实体相关的代码,并确认实体是否已正确定义或声明。如果实体未被定义,需要声明它以便程序可以正确地创建实例。"instantiates undefined entity" 的意思是“实例化未定义实体”。在计算机科学实体通常指代某个对象或数据结构,而实例化则是创建一个该对象或数据结构的实例。因此,“instantiates undefined entity”意味着程序或代码尝试实例化一个并未定义或不存在的对象或数据结构。这通常是因为程序员未正确定义或声明所需的实体。要解决这个问题,需要确定未定义实体的位置,并对其进行正确的定义或声明。"instantiatesundefinedentity" 这个词组可能是一个程序或编程语言的术语,通常用于描述创建或实例化一个未定义的实体或对象。在具体的上下文,这个词组可能有不同的含义或用法。 我不明白你的意思。"instantiatesundefinedentity" 可能是指在计算机科学的一个术语。它的意思是实例化一个未定义的实体entity)。实体是指在计算机程序或系统代表某种抽象概念或对象的实例。如果在程序试图实例化一个未定义的实体,就会出现“instantiatesundefinedentity”的错误。这通常是由于程序员拼写错误或者缺少必要的定义导致的。为了解决这个问题,需要找出缺少定义的实体并进行定义或者修复拼写错误。"Instantiates undefined entity" 的意思是“实例化未定义的实体”。这通常出现在计算机编程,指在程序运行时尝试使用尚未定义或未声明的变量或对象。这种错误通常会导致程序崩溃或产生不可预测的行为。为了避免这种错误,程序员需要仔细检查他们的代码,确保所有使用的变量和对象都已经正确地定义和声明。 很抱歉,我不太明白您的意思。"Instantiates undefined entity" 是一个计算机术语,意思是“实例化未定义实体”。这通常指在编程或标记语言使用了未定义的变量、对象或实体。例如,在HTML,如果使用了未定义的实体引用,浏览器就会显示该错误消息。要解决这个问题,需要定义或声明所使用的实体,以便程序可以正确地识别和使用它们。"Instantiates undefined entity" 是一个计算机编程的错误信息,意思是“实例化未定义的实体”。这通常发生在程序试图使用一个未定义的变量或对象时。当程序执行到这一行代码时,它会尝试从内存寻找这个变量或对象的定义,但是找不到,因此会引发这个错误。要解决这个问题,需要确保变量或对象已经被正确地声明和定义。"Instantiates undefined entity" 的意思是 "实例化未定义实体",通常指在计算机程序或代码使用了未定义或不存在的变量、对象、类等实体,导致程序无法正常执行。这通常是由于拼写错误、变量命名错误或代码错误等原因导致的。要解决这个问题,需要仔细检查代码并修复错误。"instantiates undefined entity"的意思是“实例化未定义实体”,通常出现在XML或HTML等标记语言,表示标记使用了未定义的实体。这可能会导致解析错误或显示问题,因为解析器无法识别未定义的实体。解决方法是定义未定义的实体或使用已定义的实体。"Instantiates undefined entity" 的意思是“实例化未定义实体”,通常是指在使用某个变量或对象时,该变量或对象并未在代码被定义,因此导致出错。这可能是因为代码拼写错误、变量名错误、对象未被声明等原因所导致。要解决这个问题,需要检查代码并确保所有变量和对象都被正确地声明和定义。 不明确实体无法回复。"Instantiates undefined entity" 的意思是 "实例化未定义实体"。在计算机科学实体entity)是指可以单独存在并具有属性和行为的事物。当程序尝试使用一个未定义的实体时,就会出现 "Instantiates undefined entity" 的错误提示。这通常意味着程序存在一个拼写错误、语法错误或逻辑错误,需要进行修复才能正常运行。"instantiates undefined entity" 的意思是“实例化未定义实体”,它通常出现在计算机程序或标记语言。这个错误信息表示程序或标记语言引用了一个未定义的实体,即所使用的实体并没有在程序或文档被定义。这可能会导致程序无法正常运行或文档无法正确显示。解决这个问题的方法是要确认所引用的实体是否正确定义,或者在使用实体之前先定义它。"Instantiates undefined entity" 的意思是 "实例化未定义实体",这通常出现在计算机程序或网页开发。它的意思是程序或网页试图引用一个未定义或不存在的变量或对象。这可能是由于代码的拼写错误或其他错误导致的。为了解决此问题,需要查找代码出现该错误的位置并更正代码以定义正确的变量或对象。这个错误提示通常出现在 XML 或 HTML 文件,表示文件使用了未定义的实体(entity)。 实体是一些被定义的符号或者字符串,例如 "<" 符号可以用实体 "<" 来表示。如果在文件使用了未定义的实体,解析器就会报错。 解决这个问题的方法是在文件定义这个实体,或者使用已经定义的实体来替代未定义的实体。例如,如果文件使用了 "&foo;" 实体,可以在文件添加以下代码来定义它: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Example</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <!-- 定义实体 --> <!ENTITY foo "bar"> <!-- 使用已经定义的实体 --> <p>&foo;</p> </body> </html>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值