当前位置: 首页 > 网络学院 > XML相关教程 > DTD > DTD - 元素和属性
In XML, there are no rules about when to use attributes, and when to use child elements.
在XML中,对于何时使用属性或是何时使用子元素并没有什么特定的规则。
Data can be stored in child elements or in attributes.
数据可以被存储在子元素或属性中。
Take a look at these examples:
看看下面这个案例:
<person sex="female"> |
<person> |
In the first example sex is an attribute. In the last, sex is a child element. Both examples provide the same information.
在第一个案例中,sex [ 性别 ] 是一个属性。在最后一个案例中,sex [ 性别 ] 是一个子元素。两个案例都提供了相同的信息。
There are no rules about when to use attributes, and when to use child elements. My experience is that attributes are handy in HTML, but in XML you should try to avoid them. Use child elements if the information feels like data.
对于何时使用属性或是何时使用子元素并没有什么特定的规则。我的经验是:属性是在HTML内处理的,但是,你必须避免在XML中使用它们。如果是数据信息,那么可以使用子元素。
I like to store data in child elements.
我喜欢在子元素中存储数据。
The following three XML documents contain exactly the same information:
下述三个XML文档精确地包含了相同的信息:
A date attribute is used in the first example:
第一个案例中使用了“date [ 日期 ] 属性”:
<note date="12/11/2002"> |
A date element is used in the second example:
第一个案例中使用了“date [ 日期 ] 元素”:
<note> |
An expanded date element is used in the third: (THIS IS MY FAVORITE):
第一个案例中使用了“扩展 date [ 日期 ] 元素”(这是我最喜欢的方式):
<note> |
Should you avoid using attributes?
你是否应该避免使用属性呢?
Some of the problems with attributes are:
使用属性会出现下列问题:
If you use attributes as containers for data, you end up with documents that are difficult to read and maintain. Try to use elements to describe data. Use attributes only to provide information that is not relevant to the data.
如果你将属性定为数据容器,那么最终的结果是:所有的文档都会变得难以阅读及难以维护。所以,最好尝试使用元素来描述数据,仅使用属性来提供与指定的数据毫不相关的信息。
Don't end up like this (this is not how XML should be used):
不要出现下述局面(这并不是说明XML的用法):
<note day="12" month="11" year="2002" |
Rules always have exceptions.
这项规则通常会有例外。
My rule about attributes has one exception:
我所定义的属性规则包含一个例外:
Sometimes I assign ID references to elements. These ID references can be used to access XML elements in much the same way as the NAME or ID attributes in HTML. This example demonstrates this:
有时,我为元素指定一个ID参数。这些ID参数可以用于访问XML元素,这与HTML中的“NAME [ 名称 ]” 或 “ID 属性”的访问方式差不多。请看下述案例:
<messages> |
The ID in these examples is just a counter, or a unique identifier, to identify the different notes in the XML file, and not a part of the note data.
这些案例中的ID属性仅是一个计数器,或者是一个独立的检验器,用于检验XML文件中不同的“note”,而不是检验“note”数据的一部分。
What I am trying to say here is that metadata (data about data) should be stored as attributes, and that data itself should be stored as elements.
我想说的是,这里指出的“metadata [ 元数据:与数据相关的数据 ]”应该以属性的方式存储,并且,数据本身应该以元素的方式存储。