基础知识
当前位置:首页 > 公文写作 > 基础知识 > 列表页

xml基础知识

小草范文网  发布于:2016-10-07  分类: 基础知识 手机版

篇一:xml基础知识点

第十七天(2012-11-9)

Xml基础 (熟练掌握)

如何写一个格式良好的xml文件

Dtd 规范 ,对xml文件如何编写的规范

Schema 技术 (能看懂官方的规范文件)

Xpath 技术 (了解)

DOM模型解析 (熟练掌握)

Xml的解析过程

Sax jdom dom4j

Xml的基础知识

xml(eXtensible Markup Language)

1、xml是一种标记语言

2、可扩展标记语言

3、xml标记都是自定义的

4、xml设计宗旨是包含和传输数据

5、xml是W3C的推荐标准

Xml实际开发过程中主要用途:

1、 做为数据的存储和传输的媒介来使用

2、 做为系统配置文件来使用 .properties-> .xml->.xsd

3、xml文件不是用来给人看,是给计算机看的啊!!!!!!!

Xml文件如何编写

1、头部声明

<?xml version="1.0" encoding="UTF-8"?>

注意:任何xml都必须以上开头,之前不能有任何代码,否则报错。

Version 表示版本号 encoding字符集表示将来xml文件应该用何种字符集编码来读取(即规定了xml中的内容的编码字符集)

2、XML标签

<标签名>标签体</标签名>

当标签体没有的时候 则可以简写成<标签名/>

标签名的命名规范: 由字母、数字、下划线、$组成 ,但是 数字不能开头,且不能用纯数字 (关键字除外)

Xml标签名要区分大小写

Xml中的标签有开始,必须有结束

Xml中的标签可以支持循环嵌套,但要按规律嵌套,不能乱套。

Xml文件必须有且仅有一个根标签 XML 文档只能有一个顶层元素

注意:将来的xml文件中的内容就是一个字符串

实体

& &

> >

< <

" "

' &apos;

属性

<标签名属性名=’属性值’ />

注释

<!-- -->

CDATA数据 character Data 字符串string

包含在这个标签里面的所有内容全部当做是普通字符串来处理,不进行xml的解析

<![CDATA[ 这里是内容 ]]>

Xml 的指令

<?指令名称 属性名=值 ?>

常用指令

Xml 表示当前文件是xml格式的

xml-stylesheet 当前xml文件的使用那一种类型的样式表来修饰 type=”” href=””

格式良好的XML

<1> XML文件必须有根元素

<2> XML文件必须有关闭标签

<3> XML文件标记对大小写敏感

<4> XML元素必须被正确的嵌套

<5> XML属性必须加引号

作业:

写包含学生信息的xml文件(要求能包含多个学生)

姓名、性别、年龄、出生年月、联系方式、家庭地址

<class>

<student>

<xm>张三</xm>

<xb>男</xb>

…..

</student>

<student>

<xm>张三</xm>

<xb>男</xb>

…..

</student>

</class>

<class>

<student xm=”张三” xb=”男” …/>

</class>

DTD技术

Dcoument Type Definition

对xml文件中编写的内容规范性文档

Xml做为配置文件的时候,一定需要配上dtd规范,特别是在各大框架之中。

DTD语法:

DTD写法:

1、 写在xml文件中

例如

<?xml version="1.0" encoding="utf-8" ?>

<!DOCTYPE 根元素名称[

DTD语法

]>

2、 做为独立的dtd文件存在

编写单独的dtd文件

例如:

student.dtd

<?xml version="1.0" encoding="tuf-8" ?>

<!ELEMENT 学生(基本信息)*>

<!ELEMENT 基本信息(学号,姓名,性别,年龄)>

<!ELEMENT 学号(#PCDATA)>

<!ELEMENT 姓名(#PCDATA)>

<!ELEMENT 性别(#PCDATA)>

<!ELEMENT 年龄(#PCDATA)>

在xml文件中引入dtd文件有两种方式

(1)本地dtd文件引入 :

<!DOCTYPE xml根元素名称 SYSTEM dtd文件的名称>

<?xml version="1.0" encoding="utf-8" ?>

<!DOCTYPE 学生 SYSTEM "student.dtd">

(2)标准组织的dtd引入

<!DOCTYPE xml根元素名称 PULBIC DTD唯一标记 DTD文件URL地址 >

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "">

<!ELEMENT CATALOG (PRODUCT+)>

<!ELEMENT PRODUCT

(SPECIFICATIONS+,OPTIONS?,PRICE+,NOTES?)>

<!ATTLIST PRODUCT

NAME CDATA #IMPLIED

CATEGORY (HandTool|Table|Shop-Professional) "HandTool" PARTNUM CDATA #IMPLIED

PLANT (Pittsburgh|Milwaukee|Chicago) "Chicago"

INVENTORY (InStock|Backordered|Discontinued) "InStock">

<!ELEMENT SPECIFICATIONS (#PCDATA)>

<!ATTLIST SPECIFICATIONS

WEIGHT CDATA #IMPLIED

POWER CDATA #IMPLIED>

<!ELEMENT OPTIONS (#PCDATA)>

<!ATTLIST OPTIONS

FINISH ((转自:wWw.XiAocAoFanWeN.cOm 小 草 范文网:xml基础知识)Metal|Polished|Matte) "Matte"

ADAPTER (Included|Optional|NotApplicable) "Included" CASE (HardShell|Soft|NotApplicable) "HardShell">

篇二:XML基础知识总结

XML基础知识(Sky整理)

源文出处:/developerworks/cn/xml/x-newxml/

TinyXML:一个开源的解析XML的解析库,能够用于C++,能够在windows和Linux中编译。 讲解详见:/phinecos/archive/2008/03/11/1100912.html 源码详见:/tinyxml/

XML简介

XML 是可扩展标记语言(Extensible Markup Language)的缩写,其中的 标记(markup)是关键部分。您可以创建内容,然后使用限定标记标记它,从而使每个单词、短语或块成为可识别、可分类的信息。您创建的文件,或文档实例 由元素(标记)和内容构成。当从打印输出读取或以电子形式处理文档时,元素能够帮助更好地理解文档。元素的描述性越强,文档各部分越容易识别。自从出现标记至今,带有标记的内容就有一个优势,即在计算机系统缺失时,仍然可以通过标记理解打印出来数据。

标记语言从早期的私有公司和政府制定形式逐渐演变成标准通用标记语言(Standard Generalized Markup Language,SGML)、超文本标记语言(Hypertext Markup Language,HTML),并且最终演变成 XML。SGML 比较复杂,HTML(实际上仅是一组元素集)在识别信息方面不够强大。XML 则是一种易于使用和易于扩展的标记语言。

您可以使用 XML 创建自己的元素,从而能够更精确地表示自己的信息。您可以在文档内部识别每个部分,而不是将文档看作仅由标题和段落组成。为了提高效率,您可能需要定义数量一定的元素,并统一使用它们。(您可以在文档类型定义(Document Type Definition, DTD )或模式 (schema)中定义元素,稍后我将对此进行简要的描述)。一旦习惯使用 XML 之后,就可以在构建文件时尝试处理元素名称。

构建 XML

如前所述,XML 文件由内容和标记组成。您通过以标记包围内容的方式将大部分内容包含在元素中。例如,假设您需要创建一本 XML 烹饪书。您需要用 XML 编写名为 Ice Cream Sundae 的食谱。为了标记食谱名,您需要将这个文本包含到元素中,即分别在文本的首末两端添加开始和结束标记。可以将元素命名为 recipename。要标记元素的开始标记,像这样将元素名放到尖括号中(<>):<recipename>。然后输入文本 Ice Cream Sundae。在文本的后面输入结束标记,即将元素名放在尖括号内,然后在元素名前面加上一个终止斜杠(/),比如:</recipename>。这些标记构成一个元素,您可以在元素的内部添加内容或其他元素。 您可以为某个文档或文档集创建元素名。可以创建规则让元素根据您的特定需求组合起来。元素名可以是比较具有针对性的,也可以是比较通用的。您还可以创建决定添加何种元素的规则。这些规则可以是严格的,也可以是松散的,这完全由您决定。一定要为文档创建元素,以识别您认为重要的部分。

开始创建 XML 文件

XML 文档的第一行可以是一个 XML 声明。这是文件的可选部分,它将文件识别为 XML 文

件,有助于工具和人类识别 XML(不会误认为是 SGML 或其他标记)。可以将这个声明简单地写成 <?xml?>,或包含 XML 版本(<?xml version="1.0"?>),甚至包含字符编码,比如针对 Unicode 的 <?xml version="1.0" encoding="utf-8"?>。因为这个声明必须出现在文件的开头,所以如果打算将多个小的 XML 文件合并为一个大 XML 文件,则可以忽略这个可选信息。

创建根元素

根元素的开始和结束标记用于包围 XML 文档的内容。一个文件只能有一个根元素,并且需要使用 “包装器” 包含它。清单 1 显示了经过删节的示例,其中的根元素名为 <recipe>。

在构建文档时,内容和其他标记必须放在 <recipe> 和 </recipe> 之间。

命名元素

到目前为止,都使用 <recipe> 作为根元素。在 XML 中,先要为元素选择名称,然后再根据这些名称定义相应的 DTD 或 schema。创建名称时可以使用英文字母、数字和特殊字符,比如下划线(_)。下面给出命名时需要注意的地方:

? 元素名中不能出现空格。

? 名称只能以英文字母开始,不能是数字或符号。(在第一个字母之后就可以使用字母、

数字或规定的符号,或它们的混合)。

? 对大小写没有限制,但前后要保持一致,以免造成混乱。

我们继续以前面的示例为例,如果添加了名为 <recipename> 的元素,它将有一个开始标记 <recipename> 和相应的结束标记</recipename>。

XML 文档可以使用内部不包含任何内容的空标记,这些标记可以表示为单个标记,而不是一组开始和结束标记。以类似于 HTML 的文件为例,里面的 <img src="mylogo.gif"> 是一个独立的元素。它不包含任何子元素或文本,因此它是一个空元素,您可以将它表示为 <img src="mylogo.gif" />(以一个空格和熟悉的终止斜杠结束)。

嵌套元素

嵌套即把某个元素放到其他元素的内部。这些新的元素称为子元素,

包含它们的元素称为父 元素。<recipe> 根元素中嵌套有几个其他元素,如 清单3所示。这些嵌套的子元素包括 <recipename>、<ingredlist> 和 <preptime>。<ingredlist> 元素内部包含多个子元素 <listitem>。XML 文档可以使用多层嵌套。

一个常见的语法错误是父元素和子元素的错误嵌套。任何子元素都要完全包含在其父元素的开始和结束标记内部。每个同胞(Sibling)元素必须在下一个同胞元素开始之前结束。 清单 3 的代码显示了正确的嵌套。这些标记的开始和结束没有与其他标记混合 在一起。

添加属性

有时候要为元素添加属性。属性由一个名称-值对构成,值包含在双引号中("),比如:type="dessert"。属性是在使用元素时存储额外信息的一种方式。在同一个文档中,可以根据需要对每个元素的不同实例采用不同的属性值。

您可以在元素的开始标记内部输入一个或多个属性,比如:<recipe type="dessert">。如果要添加多个属性,各个属性之间使用空格分开,比如:<recipename cuisine="american" servings="1">。清单 4 显示了当前的 XML 文件。

您可以根据需要使用任意数量的属性。要考虑需要添加到文档的细节。如果要对文档分类,属性尤其有用,比如按照菜谱的 type 进行分类。属性名可以包含在元素名中使用的字符,规则也是类似的,即字符之间不能带有空格,名称只能以字母开始。

构造良好并且有效的 XML

如果您根据结构规则创建 XML,就很容易实现构造良好的 XML。构造良好的 XML 即遵循所有 XML 规则创建的 XML:正确的元素命名,嵌套,属性命名等等。

要实现构造良好的 XML 取决于如何处理 XML。但考虑一下前面提到的示例,它要求根据菜谱类型进行分类。您需要确保每个 <recipe> 元素都包含 type 属性,以对菜谱进行分类。能够正确验证并确保存在属性值是非常重要的(避免出现双关语)。

验证就是根据元素规则检查文档的结构,以及如何为每个父元素定义子元素。这些规则是在 文档类型定义(Document Type Definition,DTD)或模式(schema )中定义的。验证要求您创建自己的 DTD 或 schema ,然后在 XML 文件中引用 DTD 或 schema 文件。

为了实现验证,必须在 XML 文档的顶部附近包含文档类型(DOCTYPE)。这行代码将引用用于验证文档的 DTD 或 schema (元素和规则列表)。例如,DOCTYPE 可能类似于 清单 5。

这个例子假设元素列表文件的名称是 filename.dtd,并且位于您的计算机上(如果指向公共文件位置,则 SYSTEM 和 PUBLIC 是相对的)。

使用实体

实体 可以是文本短语或特殊字符。它们可以指向内部或外部。必须正确地声明和表示实体,以避免错误和确保正确显示。

您不能直接在内容中输入特殊字符。如果要在文本中使用符号,必须使用它的字符代码将它设置为实体。您可以将短语(比如公司名)设置为实体,然后就可以在内容中使用该实体。为了设置实体,必须先为它创建一个名称,然后将它输入到内容中,以 and 符号(&)开始,并以分号(;)结束 — 例如,&coname;。然后在 DOCTYPE 的方括号([])内部输入代码,如 清单 6 所示。这个代码识别表示实体的文本。

使用实体可以避免反复输入相同的短语和信息。在很多情况下它还使得调整文本更加容易(变更公司名时),只需对实体定义进行简单调整。(类似为C语言中的宏定义)

避免错误

在学习创建 XML 文件时,在 XML 编辑器中打开它,以检查它的结构是否良好,并且确保您遵循 XML 规则。例如,如果您使用 Windows? Internet Explorer?,就可以在浏览器中打开 XML。如果它能够显示 XML 元素、属性和内容,则表明 XML 是构造良好的。相反,如果显示错误,则很可能是出现语法错误,您需要小心检查文档,看看是不是丢失标记和标点符号或输入错误。

如在 嵌套元素 小节中提到的一样,包含其他元素的元素就是被包含元素的父元素。在下面的示例中,<recipe> 是根元素,并且包含文件的完整内容。父元素 <recipe> 包含的子元素有 <recipename>、<ingredlist>、<directions> 等等。在这种结构中,<recipename>、<ingredlist> 和 <directions> 成了同胞元素。此外,还要正确嵌套同胞 元素。清单 7 给出了构造良好并且正确嵌套的 XML。

篇三:XML 新手入门基础知识

XML 新手入门基础知识使用正确的标记

如果您是 XML 新手,本文将为您介绍 XML 文档的基础结构,以及创建构造良好的 XML 需要遵循的规则,包括命名约定、正确的标记嵌套、属性规则、声明和实体。您还可以从本文了解到 DTD 和 schema 的验证。

0 评论:

Kay Whatley, 技术作家, 自由职业者

关闭 [x]

Kay Whatley 是一个技术培训讲师和出版作家。她是 XML Weekend Crash Course for Hungry Minds(Wiley,2000)的合著者,是 Advanced FrameMaker(TIPS,2004)的主要作者,也是 XML and FrameMaker(Apress,2004)的作者。她最新的技术书籍为 XML: Problem-Design-Solution,(Wiley,2006)。除了著书之外,Kay 经常为行业杂志和 Web 站点撰写文章。

2009 年 3 月 16 日

内容

构建 XML构造良好并且有效的 XML使用实体避免错误查看 XML结束语下载参考资料 评论XML 是可扩展标记语言(Extensible Markup Language)的缩写,其中的 标记(markup)是关键部分。您可以创建内容,然后使用限定标记标记它,从而使每个单词、短语或块成为可识别、可分类的信息。您创建的文件,或文档实例 由元素(标记)和内容构成。当从打印输出读取或以电子形式处理文档时,元素能够帮助更好地理解文档。元素的描述性越强,文档各部分越容易识别。自从出现标记至今,带有标记的内容就有一个优势,即在计算机系统缺失时,仍然可以通过标记理解打印出来数据。

标记语言从早期的私有公司和政府制定形式逐渐演变成标准通用标记语言(Standard Generalized Markup Language,SGML)、超文本标记语言(Hypertext Markup Language,HTML),并且最终演变成 XML。SGML 比较复杂,HTML(实际上仅是一组元素集)在识别信息方面不够强大。XML 则是一种易于使用和易于扩展的标记语言。

您可以使用 XML 创建自己的元素,从而能够更精确地表示自己的信息。您可以在文档内部识别每个部分,而不是将文档看作仅由标题和段落组成。为了提高效率,您可能需要定义数量一定的元素,并统一使用它们。(您可以在文档类型定义(Document Type Definition, DTD )或模式 (schema)中定义元素,稍后我将对此进行简要的描述)。一旦习惯使用 XML 之后,就可以在构建文件时尝试处理元素名称。

构建 XML

如前所述,XML 文件由内容和标记组成。您通过以标记包围内容的方式将大部分内容包含在元素中。例如,假设您需要创建一本 XML 烹饪书。您需要用 XML 编写名为 Ice Cream Sundae 的食谱。为了标记食谱名,您需要将这个文本包含到元素中,即分别在文本的首末两端添加开始和结束标记。可以将元素命名为 recipename。要标记元素的开始标记,像这样将元素名放到尖括号中(<>):<recipename>。然后输入文本 Ice Cream Sundae。在文本的后面输入结束标记,即将元素名放在尖括号内,然后在元素名前面加上一个终止斜杠(/),比如:</recipename>。这些标记构成一个元素,您可以在元素的内部添加内容或其他元素。

您可以为某个文档或文档集创建元素名。可以创建规则让元素根据您的特定需求组合起来。元素名可以是比较具有针对性的,也可以是比较通用的。您还可以创建决定添加何种元素的规则。这些规则可以是严格的,也可以是松散的,这完全由您决定。一定要为文档创建元素,以识别您认为重要的部分。

开始创建 XML 文件

XML 文档的第一行可以是一个 XML 声明。这是文件的可选部分,它将文件识别为 XML 文件,有助于工具和人类识别 XML(不会误认为是 SGML 或其他标记)。可以将这个声明简单地写成 <?xml?>,或包含 XML 版本(<?xml version="1.0"?>),甚至包含字符编码,比如针对 Unicode 的 <?xml version="1.0" encoding="utf-8"?>。因为这个声明必须出现在文件的开头,所以如果打算将多个小的 XML 文件合并为一个大 XML 文件,则可以忽略这个可选信息。

创建根元素

根元素的开始和结束标记用于包围 XML 文档的内容。一个文件只能有一个根元素,并且需要使用 “包装器” 包含它。清单 1 显示了经过删节的示例,其中的根元素名为 <recipe>。(参见 下载 小节获得完整的 XML 文件)。

清单 1. 根元素

<?xml version="1.0" encoding="UTF-8"?>

<recipe>

</recipe>在构建文档时,内容和其他标记必须放在 <recipe> 和 </recipe> 之间。

命名元素

标记的大小写保持一致

创建 XML 时,要确保开始和结束标记的大小写是一致的。如果大小写不一致,在使用或查看 XML 时将出现错误。例如,如果大小写不一致,Internet Explorer 将不能显示文件的内容,但它会显示开始和结束标记不一致的消息。

到目前为止,都使用 <recipe> 作为根元素。在 XML 中,先要为元素选择名称,然后再根据这些名称定义相应的 DTD 或 schema。创建名称时可以使用英文字母、数字和特殊字符,比如下划线(_)。下面给出命名时需要注意的地方:

元素名中不能出现空格。

名称只能以英文字母开始,不能是数字或符号。(在第一个字母之后就可以使用字母、数字或规定的符号,或它们的混合)。

对大小写没有限制,但前后要保持一致,以免造成混乱。

我们继续以前面的示例为例,如果添加了名为 <recipename> 的元素,它将有一个开始标记 <recipename> 和相应的结束标记 </recipename>。

清单 2. 更多元素

<?xml version="1.0" encoding="UTF-8"?>

<recipe>

<recipename>Ice Cream Sundae</recipename>

<preptime>5 minutes</preptime>

</recipe>XML 文档可以使用内部不包含任何内容的空标记,这些标记可以表示为单个标记,而不是一组开始和结束标记。以类似于 HTML 的文件为例,里面的 <img src="mylogo.gif"> 是一个独立的元素。它不包含任何子元素或文本,因此它是一个空元素,您可以将它表示为 <img src="mylogo.gif" />(以一个空格和熟悉的终止斜杠结束)。

嵌套元素

嵌套 即把某个元素放到其他元素的内部。这些新的元素称为子 元素,包含它们的元素称为父 元素。<recipe> 根元素中嵌套有几个其他元素,如 清单 3 所示。这些嵌套的子元素包括 <recipename>、<ingredlist> 和 <preptime>。<ingredlist> 元素内部包含多个子元素 <listitem>。XML 文档可以使用多层嵌套。

一个常见的语法错误是父元素和子元素的错误嵌套。任何子元素都要完全包含在其父元素的开始和结束标记内部。每个同胞(Sibling)元素必须在下一个同胞元素开始之前结束。

清单 3 的代码显示了正确的嵌套。这些标记的开始和结束没有与其他标记混合 在一起。

清单 3. 正确嵌套的 XML 元素

<?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">。清单 4 显示了当前的 XML 文件。

清单 4. 带有元素和属性的 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

如果您根据结构规则创建 XML,就很容易实现构造良好的 XML。构造良好的 XML 即遵循所有 XML 规则创建的 XML:正确的元素命名,嵌套,属性命名等等。

要实现构造良好的 XML 取决于如何处理 XML。但考虑一下前面提到的示例,它要求根据菜谱类型进行分类。您需要确保每个 <recipe> 元素都包含 type 属性,以对菜谱进行分类。能够正确验证并确保存在属性值是非常重要的(避免出现双关语)。

验证 就是根据元素规则检查文档的结构,以及如何为每个父元素定义子元素。这些规则是在 文档类型定义(Document Type Definition,DTD)或模式(schema )中定义的。验证要求您创建自己的 DTD 或 schema ,然后在 XML 文件中引用 DTD 或 schema 文件。

为了实现验证,必须在 XML 文档的顶部附近包含文档类型(DOCTYPE)。这行代码将引用用于验证文档的 DTD 或 schema (元素和规则列表)。例如,DOCTYPE 可能类似于 清单 5。

清单 5. DOCTYPE

<!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"

]>使用实体可以避免反复输入相同的短语和信息。在很多情况下它还使得调整文本更加容易(变更公司名时),只需对实体定义进行简单调整。

--------------------------------------------------------------------------------

回页首

避免错误

在学习创建 XML 文件时,在 XML 编辑器中打开它,以检查它的结构是否良好,并且确保您遵循 XML 规则。例如,如果您使用 Windows? Internet Explorer?,就可以在浏览器中打开 XML。如果它能够显示 XML 元素、属性和内容,则表明 XML 是构造良好的。相反,如果显示错误,则很可能是出现语法错误,您需要小心检查文档,看看是不是丢失标记和标点符号或输入错误。

如在 嵌套元素 小节中提到的一样,包含其他元素的元素就是被包含元素的父元素。在下面的示例中,<recipe> 是根元素,并且包含文件的完整内容。父元素 <recipe> 包含的子元素有 <recipename>、<ingredlist>、<directions> 等等。在这种结构中,<recipename>、<ingredlist> 和 <directions> 成了同胞元素。此外,还要正确嵌套同胞 元素。清单 7 给出了构造良好并且正确嵌套的 XML。

清单 7. 构造良好的 XML

<?xml version="1.0" encoding="UTF-8"?>

<recipe type="dessert">

<recipename cuisine="american" servings="1">Ice Cream Sundae</recipename>

<ingredlist>

<listitem><quantity units="cups">0.5</quantity>

<itemdescription>vanilla ice cream</itemdescription></listitem>

<listitem><quantity units="tablespoons">3</quantity>

<itemdescription>chocolate syrup or chocolate fudge</itemdescription></listitem>

<listitem><quantity units="tablespoons">1</quantity>

<itemdescription>nuts</itemdescription></listitem>

<listitem><quantity units="each">1</quantity>

<itemdescription>cherry</itemdescription></listitem>

</ingredlist>

<utensils>

<listitem><quantity units="each">1</quantity>

<utensilname>bowl</utensilname></listitem>

<listitem><quantity units="each">1</quantity>

<utensilname>spoons</utensilname></listitem>

<listitem><quantity units="each">1</quantity>

本文已影响