设为首页收藏本站
网站公告 | 这是第一条公告
     

 找回密码
 立即注册
缓存时间17 现在时间17 缓存数据 你们知道一个听电音的推到古风是什么感受吗[呆]

你们知道一个听电音的推到古风是什么感受吗[呆] -- 红昭愿

查看: 841|回复: 0

Xml简介_动力节点Java学院整理

[复制链接]

  离线 

TA的专栏

  • 打卡等级:热心大叔
  • 打卡总天数:205
  • 打卡月天数:0
  • 打卡总奖励:3013
  • 最近打卡:2023-08-27 04:24:37
等级头衔

等級:晓枫资讯-上等兵

在线时间
0 小时

积分成就
威望
0
贡献
388
主题
361
精华
0
金钱
4155
积分
765
注册时间
2022-12-22
最后登录
2025-3-15

发表于 2023-2-12 10:09:14 | 显示全部楼层 |阅读模式

XML(简介)

       XML(可扩展标记语言)在 20 世纪 90 年代后期登上舞台后,就一直是众多活动和狂热思索的焦点。XML 只是基于普通文本,但却提供了几乎可以在任何两个应用程序间共享数据的方式。

       虽然 XML 在概念上很简单,但对 XML 的处理却通常很烦琐(需要编写大量重复性的代码)和复杂(很多容易被忽视的细节导致错误)。     

什么时候使用 XML?

       什么时候在Web 应用程序中使用 XML?

  • 你需要处理已经保存在 XML 中的数据时。
  • 你希望用 XML 保存数据并为将来可能的整合做准备时。(XML 在应用程序整合的场景中最有意义)
  • 你希望使用依赖于 XML 的技术时。(Web 服务使用各种建立在 XML 上的标准)
  • 注解:
  •        必须理解的一个重要概念是,存储数据时必须决定两件事情:
  • 确定数据结构化的方式(逻辑格式)
  • 确定数据保存的方式(物理存储)

       XML 是格式的选择而不是存储的选择。也就是说,即使你决定用 XML 保存数据,你还要决定是保存到数据库字段里,还是要插入到一个文件里,或者只是以字符串或其他对象的形式保存在内存中。

XML 简介

       XML 规范是由 W3C(World Wide Web Consortium)定义的一组指南,用于以纯文本的形式描述结构化数据,一种基于尖括号间标签的标记语言。

       XML 没有一组固定的标签。相反,XML 是一种可用于创建其他标记语言的元语言。

       下面的文档显示一个保存产品类别的自定义 XML 格式:

  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <productCatalog>
  3. <catalogName>Acme Fall 2015 Catalog</catalogName>
  4. <expiryDate>2015-01-01</expiryDate>
  5. <products>
  6. <product id="1001">
  7. <productName>Magic Ring</productName>
  8. <productPrice>342.10</productPrice>
  9. <inStock>true</inStock>
  10. </product>
  11. <product id="1002">
  12. <productName>Flying Carpet</productName>
  13. <productPrice>982.99</productPrice>
  14. <inStock>true</inStock>
  15. </product>
  16. </products>
  17. </productCatalog>
复制代码

       标签可以自由使用最能描述你的数据的任意名称,正是这种灵活性使得 XML 非常成功。当然,灵活性也会有缺点。不同公司完全可用不同的标签名来描述相似的数据,尽管所有应用程序都能够解析 XML 数据,但数据的写入者和读取者需要对标签和结构达成共识,才能使读取者可用解释数据并抽取有意义的信息。 

XML 的优点

       今天,XML 比过去任何一天都更为有用。现代应用程序使用 XML 的好处有以下几点:

  • 适应性。XML 无处不在,无论什么时候需要共享数据,XML 都会成为首选目标。
  • 扩展性和灵活性。XML 不会强加任何数据语义的规则,适用于任意数据的类型并且实现的代价很低。
  • 相关标准和工具。XML 成功的另一个原因在于创建和处理 XML 的工具(解析器)和相关标准(XML架构、XPath、XSLT)。这样几乎每种语言的开发者都有现成的组件用于阅读 XML,按某种规则(被称作架构)验证 XML 的有效性,将 XML 转换格式等。 

格式良好的 XML

       XML 是一个非常严格的标准,这种严格性是用于保留广泛的兼容性的。(臭名昭著的 HTML 语言就是在没有这种严格性标准下的产物)

       所有的 XML 解析器都会执行一些基本的质量检查。如果一个 XML 文档不能满足所有标准,它就会被彻底拒绝。否则,它就被认为是格式良好的。格式良好的 XML 未必就是正确的 XML ,例如含有错误数据,但 XML 解析器能够解析它。

       XML 文档必须满足下面这些条件才能被认为是格式良好的:

  • 每个开始标签必须有一个对应的结束标签
  • 空元素必须以“/>”结束
  • 元素可以嵌套但不能交错
  • XML 是严格区分大小写的,因此 不能配对
  • 一个元素不能有两个或更多的同名特性,但是可以嵌套多个同名的元素
  • 一个文档只可以有一个根元素
  • 所有特性在值的前后都要有引号
  • 注释不能放入标签中(它们包含在 标记中) 

XML 命名空间

       随着 XML 标准的成长,已创建了数十种 XML 标记语言(通常叫做 XML 语法)。其中很多属于特定的行业、流程和信息类型。如果你需要同时组合两个具有相同名称元素的 XML 语法,会发生什么呢?另一个更典型的问题是如何区分它们?

       解决办法在于 XML 命名空间标准。这个标准的核心思想是所有的 XML 标记语言都拥有能够唯一区分相关元素的命名空间。简单的说,命名空间可以在整合时消除同名元素的歧义。

       所有的 XML 命名空间都使用 URI(Universal Resource Identifiers,统一资源标识符),一般看起来和网页的 URL 相似。例如,http://www.mycompany.com/mystandard 是一种典型的命名空间,但这不是必要的(也不应该被假设),命名空间可以是任意文本序列,标准是为了确保它的唯一性。

       要指定某个元素属于特定的命名空间,只需在开始标签中加入 xmlns(XML Name Space)特性表明要使用的命名空间即可。例如,下面这个元素是http://mycompany/OrderML 命名空间的一部分。

  1. <order xmlns="http://mycompany/OrderML"></order>
  2. 你一定会厌倦在所有元素上加入这个特性的烦琐操作,幸好,如果像下面这样加入命名空间,它会成为所有子元素默认的命名空间:
  3. <product xmlns="http://mycompany/OrderML">
  4. <productName>Flying Carpet</productName>
  5. <productPrice>982.99</productPrice>
  6. <inStock>true</inStock>
  7. </product>
  8. 你还可以自定义命名空间前缀,在 xmlns 特性中插入一个冒号和一个你想用作前缀的字符:
  9. <ord:order xmlns:ord="http://mycompany/OrderML"
  10. xmlns:cli="http://mycompany/ClientML">
  11. <cli:client>
  12. <cli:firstName>...</cli:firstName>
  13. <cli:lastName>...</cli:lastName>
  14. </cli:client>
  15. <ord:orderItem>...</ord:orderItem>
  16. <ord:orderItem>...</ord:orderItem>
  17. </ord:order>
复制代码

XML 架构

       XML 的灵活性也带来了一些问题。世界各地的开发人员都使用你的 XML 格式,怎样才能保证所有人都遵守规则?

       解决办法是创建一个格式文档,它定义你的自定义标记语言的规则,它被称为架构。这些规则不会包括语法细节(那是 XML 标准所要规定的),架构文档需要定义的是符合你的数据类型的逻辑规则,它包括以下几项:

  • 文档词汇。它定义了哪些元素或特性的名字可以出现在你的 XML 文档中。
  • 文档结构。它定义了标签放在哪儿,可以指定标签之间的顺序,还可以指定某个元素可以出现的次数。
  • 支持的数据类型。可以定义数据是文本,或者必须是可以解析的数值数据、日期信息等。
  • 允许的数据范围。可将数值限制在范围内,文本限定在特定长度内,强迫正则表达式模式匹配,或者限制仅可以是某些特定的值。

       下面的这个 XML 架构定义了前面所示的产品类别规则:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  3. <xsd:element name="productCatalog">
  4. <xsd:complexType>
  5. <xsd:sequence>
  6. <xsd:element name="CatalogName" type="xsd:string" />
  7. <xsd:element name="expiryDate" type="xsd:date" />
  8. <xsd:element name="products">
  9. <xsd:complexType>
  10. <xsd:sequence>
  11. <xsd:element name="product" type="productType" maxOccurs="unbounded" />
  12. </xsd:sequence>
  13. </xsd:complexType>
  14. </xsd:element>
  15. </xsd:sequence>
  16. </xsd:complexType>
  17. </xsd:element>
  18. <xsd:complexType name="productType">
  19. <xsd:sequence>
  20. <xsd:element name="productName" type="xsd:string" />
  21. <xsd:element name="productPrice" type="xsd:decimal" />
  22. <xsd:element name ="inStock" type="xsd:boolean" />
  23. </xsd:sequence>
  24. <xsd:attribute name="id" type="xsd:integer" use="required" />
  25. </xsd:complexType>
  26. </xsd:schema>
复制代码
  • 所有的架构文档都是以根元素 开头的 XML 文档
  • 所有可用的元素都已经在 XML 架构空间定义了(http://www.w3.org/2001/XMLSchema)
  • 你的架构文档必须使用正确的命名空间名(前缀一般是 xsd 或 xs ,你也可以自定义)
  • 在 元素内,有两种类型的定义
  • 定义目标文档必须遵循的结构
  • 定义文档结构较小的数据结构
  • 标签是架构的核心,同时它也是所有验证的起点

       在这个示例中,标签确定产品类别必须以一个叫做的根元素开始。元素内部是一个由3个元素组成的序列。第一个是,它包含普通文本;第二个是,它包含符合日期呈现规则的文本;第三个是,它包含元素的列表。

       每个元素都是一个复杂的类型,因此文档后面又使用进行了定义。这个复杂类型(名为)由含有产品信息的 3 个元素所组成的序列构成。这些元素分别保存文本()、十进制数()、布尔值()。这个复杂类型还包括一个必须的特性 id。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
晓枫资讯-科技资讯社区-免责声明
免责声明:以上内容为本网站转自其它媒体,相关信息仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同其观点或证实其内容的真实性。
      1、注册用户在本社区发表、转载的任何作品仅代表其个人观点,不代表本社区认同其观点。
      2、管理员及版主有权在不事先通知或不经作者准许的情况下删除其在本社区所发表的文章。
      3、本社区的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,举报反馈:点击这里给我发消息进行删除处理。
      4、本社区一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
      5、以上声明内容的最终解释权归《晓枫资讯-科技资讯社区》所有。
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~
严禁发布广告,淫秽、色情、赌博、暴力、凶杀、恐怖、间谍及其他违反国家法律法规的内容。!晓枫资讯-社区
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|晓枫资讯--科技资讯社区 本站已运行

CopyRight © 2022-2025 晓枫资讯--科技资讯社区 ( BBS.yzwlo.com ) . All Rights Reserved .

晓枫资讯--科技资讯社区

本站内容由用户自主分享和转载自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

如有侵权、违反国家法律政策行为,请联系我们,我们会第一时间及时清除和处理! 举报反馈邮箱:点击这里给我发消息

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表