zoukankan      html  css  js  c++  java
  • XML新手入门 创建构造良好的XML(2)

    本文描述了构建良好的XML需要遵循的规则。作者详细介绍了构建XML需要考虑的元素,如何命名约定、正确的标记嵌套、属性规则、声明和实体,以及DTD和schema的验证,十分便于新手开始学习了解XML。

    AD: 2013大数据全球技术峰会课程PPT下载

    构造良好并且有效的 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 的根本条件。

  • 相关阅读:
    java异常
    Map集和
    获取每个字符出现的次数
    从1-33号球中选取6个红球,且红球数字最多重复不超过3个 从1-16号球中选取一个篮球 由红球和蓝球共同组成一个双色球号码,且红球在左边(按照升序排列),篮球在右边。
    gitlab介绍及使用
    Maven使用介绍
    IDEA集成开发环境安装git,修改代码后文件变色代表的含义
    大数据相关
    开源镜像站汇总
    MySQL配置文件详解
  • 原文地址:https://www.cnblogs.com/hy928302776/p/3156254.html
Copyright © 2011-2022 走看看