XML新手入门 创建构造良好的XML(2)
本文描述了构建良好的XML需要遵循的规则。作者详细介绍了构建XML需要考虑的元素,如何命名约定、正确的标记嵌套、属性规则、声明和实体,以及DTD和schema的验证,十分便于新手开始学习了解XML。
构造良好并且有效的 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﹥
﹤utensilname﹥ice cream scoop﹤/utensilname﹥﹤/listitem﹥
﹤/utensils﹥
﹤directions﹥
﹤step﹥Using ice cream scoop, place vanilla ice cream into bowl.﹤/step﹥
﹤step﹥Drizzle chocolate syrup or chocolate fudge over the ice cream.﹤/step﹥
﹤step﹥Sprinkle nuts over the mound of chocolate and ice cream.﹤/step﹥
﹤step﹥Place cherry on top of mound with stem pointing upward.﹤/step﹥
﹤step﹥Serve.﹤/step﹥
﹤/directions﹥
﹤variations﹥
﹤option﹥Replace nuts with raisins.﹤/option﹥
﹤option﹥Use chocolate ice cream instead of vanilla ice cream.﹤/option﹥
﹤/variations﹥
﹤preptime﹥5 minutes﹤/preptime﹥
﹤/recipe﹥
注意:换行符方便您阅读代码,它不会影响 XML。
您可以在测试文件上进行实践,去掉开始和结束标记,熟悉因此显示的错误消息。
查看 XML
在 图 1 中,Internet Explorer 清晰显示了所有元素。内容包含在开始和结束标记之间。父元素旁边有小加号(+)和小减号(-),它们允许您展开或收缩嵌套在内部的所有元素(它们的后代)。
图 1. 收缩了一些同胞元素的示例 XML 实例(文件)

结束语
除了一些简单的规则之外,您可以随意设计 XML 元素和属性。XML 的规则并不难。真正困难的是 根据可分类性和可搜索性找出文档中有价值的内容,然后根据您的需要设计元素和属性。
当您有了明确的目标,并知道如何标记内容的时候,您可以构建高效的元素和属性了。从这个角度看,小心进行标记是创建构造良好并且有效的 XML 的根本条件。
XML新手入门 创建构造良好的XML(2)的更多相关文章
- XML新手入门 创建构造良好的XML(1)
XML新手入门 创建构造良好的XML(1) 2009-03-19 09:24 Kay Whatley IBM Developerworks 我要评论(0) 字号:T | T 本文描述了构建良好的XML ...
- XML 新手入门基础知识(复制,留着自己看)
如果您是 XML 新手,本文将为您介绍 XML 文档的基础结构,以及创建构造良好的 XML 需要遵循的规则,包括命名约定.正确的标记嵌套.属性规则.声明和实体.您还可以从本文了解到 DTD 和 sch ...
- XML 新手入门基础知识
XML 是可扩展标记语言(Extensible Markup Language)的缩写,其中的 标记(markup)是关键部分.您可以创建内容,然后使用限定标记标记它,从而使每个单词.短语或块成为可识 ...
- XML系列之--创建电文格式的XML(一)
关于XML,学校那会,老师在口中仅仅提及,自己也未曾深入接触过,仅是些将最基本XML文件内容显示在web定义的表格中之类的简单操作,如今项目中的收发电文涉及到复杂XML的操作.趁此契机好好回顾下XML ...
- XML系列之--解析电文格式的XML(二)
上一节介绍了XML的结构以及如何创建.讲到了XML可作为一种简单文本存储数据,把数据存储起来,以XML的方式进行传递.当接收到XML时,必不可少的就是对其进行解析,捞取有效数据,或者将第三方数据以节点 ...
- 使用.NET中的XML注释(二) -- 创建帮助文档入门篇
一.摘要 在本系列的第一篇文章介绍了.NET中XML注释的用途, 本篇文章将讲解如何使用XML注释生成与MSDN一样的帮助文件.主要介绍NDoc的继承者:SandCastle. 二.背景 要生成帮助文 ...
- XML学习入门
很久没更新博客了.来一发! 关于XML,当时没学过感觉难吧?其实XML还是蛮好学的,这里留下一些入门级别的内容. XML中dtd(文档类型定义)的主要用处是约束xml,也可以去约束html,xhtml ...
- XML从入门到深入(超详细)
一:什么是XML XML (eXtensible Markup Language)指可扩展标记语言,标准通用标记语言的子集,简称XML.是一种用于标记电子文件使其具有结构性的标记语言. XML可以标记 ...
- ASP.NET - 演练:创建网页以显示 XML 数据
数据通常是以 XML 格式提供给 Web 应用程序的.但是,XML 数据本质上是分层的,因此您可能希望能够在基于列表的控件中使用 XML 数据,如 GridView 或 DropDownList 控件 ...
随机推荐
- R语言学习笔记(数据预处理)
setwd("d:/r/r-data/")data=read.table("salary.txt",header=T)attach(data)mean(Sala ...
- MVC 模型、视图、控制及其单入口文件的mvc的工作原理
什么是mvc,mvc就是模型视图控制,模型就是model,在项目中负责数据库相关的操作,视图就是view ,负责页面的展示和数据的展示,控制就是controller ,负责中间的逻辑转换,数 ...
- Tomcat学习笔记 - 错误日志 - NetBeans配置tomcat出错情况总结 -- 部署错误: 启动 Tomcat 失败。-- '127.0.0.1' 不是内部或外部命令,也不是可运行的程序
真的管用,不知道为啥管用.转载自:http://blog.sina.com.cn/s/blog_709548200102vgy4.html 问题描述: 新安装的NetBeans8.0.2,安装过程中还 ...
- 关于androidAsyncHttp支持https
一.AsyncHttpClient asycnHttpClient = new AsyncHttpClient(true, 80, 443); 二.或者参照源码,添加证书验证 You need imp ...
- EcStore中的App是什么东西?
Ecstore中的App不是手机上的App,它是一个Web应用包,集合了Web应用的后端PHP程序.Mysql数据表定义,以及前端HTML+CSS+JS展现,通常是实现某个业务功能,如购物车.促销.支 ...
- Delphi 10.1 Berlin 与 Delphi 10 Seattle 共存
以下安装环境是win7 64位 1. 安装Delphi10.1 Berlin 版本. 2.修改C:\Program Files (x86)\Embarcadero\Studio\18.0\cglm.i ...
- 关于python的面向对象编程
先写上代码,有代码才好理解: #filename:classdemo.py class test: '''just person''' a=1 b=2 c=0 def __init__(self): ...
- 风雨哈佛路(Homeless to Harvard: The Liz Murray Story)-献给困境中的人
今天无意中看到一部很老的电影<风雨哈佛路>,一曲感人励志向上的美国影片,整个故事震撼人心. ...
- T-SQL 基于列的逻辑表达式 (CASE)
CASE简介 基于列的逻辑表达式,其实就是CASE表达式.可以用在SELECT,UPDATE,DELETE,SET以及IN,WHERE,ORDER BY和HAVING子句之后.由于这里讲的是T-SQL ...
- T-SQL 创建、修改、删除数据库,表语法
CREATE 语句 CREATE语句的开头都是一样的,然后是特定的细节. CREATE <object type> <object name> 一.CREATE DATABAS ...