本文从http://www.ibm.com/developerworks/cn/xml/x-newxml/转载来
XML 是可扩展标记语言(Extensible Markup Language)的缩写,其中的 标记(markup)是关键部分。您可以创建内容,然后使用限定标记标记它,从而使每个单词、短语或块成为可识别、可分类的信息。您创建的文件,或文档实例 由元素(标记)和内容构成。
XML 文件由内容和标记组成。您通过以标记包围内容的方式将大部分内容包含在元素中。例如,假设您需要创建一本 XML 烹饪书。您需要用 XML 编写名为 Ice Cream Sundae 的食谱。为了标记食谱名,您需要将这个文本包含到元素中,即分别在文本的首末两端添加开始和结束标记。可以将元素命名为 recipename
。要标记元素的开始标记,像这样将元素名放到尖括号中(<>
):<recipename>
。然后输入文本Ice Cream Sundae
。在文本的后面输入结束标记,即将元素名放在尖括号内,然后在元素名前面加上一个终止斜杠(/
),比如:</recipename>
。这些标记构成一个元素,您可以在元素的内部添加内容或其他元素。
开始创建 XML 文件
XML 文档的第一行可以是一个 XML 声明(可选部分)。<?xml?>, XML 版本(<?xml version="1.0"?>
),包含字符编码,比如针对 Unicode 的 <?xml version="1.0" encoding="utf-8"?>
创建根元素
根元素的开始和结束标记用于包围 XML 文档的内容。一个文件只能有一个根元素,并且需要使用 “包装器” 包含它。
<?xml version="1.0" encoding="UTF-8"?> <recipe> </recipe>
在构建文档时,内容和其他标记必须放在 <recipe>
和 </recipe>
之间。
嵌套元素
嵌套 即把某个元素放到其他元素的内部。这些新的元素称为子 元素,包含它们的元素称为父 元素。
<?xml version="1.0" encoding="UTF-8"?> <recipe> <recipename>Ice Cream Sundae</recipename> <ingredlist> <listitem> <quantity>3</quantity> <itemdescription>chocolate syrup or chocolate fudge</itemdescription> </listitem> <listitem> <quantity>1</quantity> <itemdescription>nuts</itemdescription> </listitem> <listitem> <quantity>1</quantity> <itemdescription>cherry</itemdescription> </listitem> </ingredlist> <preptime>5 minutes</preptime> </recipe>
添加属性
有时候要为元素添加属性。属性由一个名称-值对构成,值包含在双引号中("
),比如:type="dessert"
。
属性是在使用元素时存储额外信息的一种方式。在同一个文档中,可以根据需要对每个元素的不同实例采用不同的属性值。
您可以在元素的开始标记内部输入一个或多个属性,比如:<recipe type="dessert">
。如果要添加多个属性,各个属性之间使用空格分开,比如:<recipename cuisine="american" servings="1">
。
带有元素和属性的 XML 文件
<?xml version="1.0" encoding="UTF-8"?> <recipe type="dessert"> <recipename cuisine="american" servings="1">Ice Cream Sundae</recipename> <preptime>5 minutes</preptime> </recipe>
您可以根据需要使用任意数量的属性。要考虑需要添加到文档的细节。如果要对文档分类,属性尤其有用,比如按照菜谱的 type
进行分类。属性名可以包含在元素名中使用的字符,规则也是类似的,即字符之间不能带有空格,名称只能以字母开始。
构造良好并且有效的 XML
能够正确验证并确保存在属性值是非常重要的(避免出现双关语)
验证 就是根据元素规则检查文档的结构,以及如何为每个父元素定义子元素。这些规则是在 文档类型定义(Document Type Definition,DTD)或模式(schema )中定义的。验证要求您创建自己的 DTD 或 schema ,然后在 XML 文件中引用 DTD 或 schema 文件。
为了实现验证,必须在 XML 文档的顶部附近包含文档类型(DOCTYPE
)。这行代码将引用用于验证文档的 DTD 或 schema (元素和规则列表)。
<!DOCTYPE MyDocs SYSTEM "filename.dtd">
这个例子假设元素列表文件的名称是 filename.dtd,并且位于您的计算机上(如果指向公共文件位置,则 SYSTEM
和 PUBLIC
是相对的)。
使用实体
实体 可以是文本短语或特殊字符。它们可以指向内部或外部。必须正确地声明和表示实体,以避免错误和确保正确显示。
您不能直接在内容中输入特殊字符。如果要在文本中使用符号,必须使用它的字符代码将它设置为实体。您可以将短语(比如公司名)设置为实体,然后就可以在内容中使用该实体。为了设置实体,必须先为它创建一个名称,然后将它输入到内容中,以 and 符号(&
)开始,并以分号(;
)结束 — 例如,&coname;
。然后在 DOCTYPE
的方括号([]
)内部输入代码,如 清单 6 所示。这个代码识别表示实体的文本。
清单 6. ENTITY
<!DOCTYPE MyDocs SYSTEM "filename.dtd" [ <!ENTITY coname "Rabid Turtle Industries" ]>
使用实体可以避免反复输入相同的短语和信息。在很多情况下它还使得调整文本更加容易(变更公司名时),只需对实体定义进行简单调整。