Y 分钟速成 XML

源代码下载: learnxml-cn.xml

XML 是一种标记语言,被设计用来存储数据和传输数据。

不像 HTML , XML 不指定怎样显示或格式化数据,只是携带它。

  • XML 语法
<!-- XML中的注解像这样 -->

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
  <book category="COOKING">
    <title lang="en">Everyday Italian</title>
    <author>Giada De Laurentiis</author>
    <year>2005</year>
    <price>30.00</price>
  </book>
  <book category="CHILDREN">
    <title lang="en">Harry Potter</title>
    <author>J K. Rowling</author>
    <year>2005</year>
    <price>29.99</price>
  </book>
  <book category="WEB">
    <title lang="en">Learning XML</title>
    <author>Erik T. Ray</author>
    <year>2003</year>
    <price>39.95</price>
  </book>
</bookstore>

<!-- 上面是一个典型的XML文件。
  它以一个声明开始,通知一些元数据(自选的)
  
  XML使用一个树的结构。上面的文件中,根节点是'bookstore',它有三个孩子节点,
  所有的'books'。那些节点有更多的孩子节点,等等。。。
  
  节点用开放/关闭标签创建, 并且孩子就是在开发和关闭标签之间的节点。-->



<!-- XML 携带两类信息:
  1 - 属性 -> 那是关于一个元素的元数据。
      通常,XML解析器使用这些信息去正确地存储数据。
      它通过在开放标签里出现在插入语中来表示。
  2 - 元素 -> 那是纯数据。
      那就是解析器将从XML文件提取的东西。
      元素出现在开放和关闭标签之间,没插入语。-->
      
  
<!-- 下面, 一个有两个属性的元素-->
<file type="gif" id="4293">computer.gif</file>

  • 良好格式的文件 x 验证

一个 XML 文件是良好格式的如果它是语法正确的。
但是, 使用文件定义,比如 DTD 和 XML 概要,在文件中插入更多的限制是可能的。

一个遵守一个文件定义的 XML 文件被叫做有效的,对于那个文件来说。

有了这个工具,你能够在应用逻辑之外检查 XML 数据。

<!-- 下面, 你能够看到一个简化版本的增加了DTD定义的bookstore文件。-->

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE note SYSTEM "Bookstore.dtd">
<bookstore>
  <book category="COOKING">
    <title >Everyday Italian</title>
    <price>30.00</price>
  </book>
</bookstore>

<!-- 这个DTD可能是像这样的:-->

<!DOCTYPE note
[
<!ELEMENT bookstore (book+)>
<!ELEMENT book (title,price)>
<!ATTLIST book category CDATA "Literature">
<!ELEMENT title (#PCDATA)>
<!ELEMENT price (#PCDATA)>
]>


<!-- 这个DTD以一个声明开始。
  接下来, 根节点被声明, 它需要一个或多个孩子节点'book'。 
  每个 'book' 应该准确包含一个 'title' 和 'price' 和
  一个被叫做'category'的缺省值为"Literature"的属性。
  这个'title' 和 'price'节点包含一个解析过的字符数据。-->

<!-- 这个DTD可以在XML文件中本身被声明。-->

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

<!DOCTYPE note
[
<!ELEMENT bookstore (book+)>
<!ELEMENT book (title,price)>
<!ATTLIST book category CDATA "Literature">
<!ELEMENT title (#PCDATA)>
<!ELEMENT price (#PCDATA)>
]>

<bookstore>
  <book category="COOKING">
    <title >Everyday Italian</title>
    <price>30.00</price>
  </book>
</bookstore>

有建议?或者发现什么错误?在Github上开一个 issue ,或者发起 pull request


原著 João Farias ,并由0个好心人修改。
© 2022 João Farias
Translated by: Zach Zhang
本作品采用 CC BY-SA 3.0 协议进行许可。


Learn X in Y minutes
Take a whirlwind tour of your next favorite language.
3 声望
2 粉丝
0 条评论
推荐阅读
Y 分钟速成 Git
源代码下载: gitGit 是一个分布式版本控制及源代码管理工具。Git 可以为你的项目保存若干快照,以此来对整个项目进行版本管理。版本什么是版本控制版本控制系统就是根据时间来记录一个或多个文件的更改情况的系...

小X学技术阅读 1.2k

三十分钟入门基础Go(Java小子版)
Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态、强类型、编译型语言。Go 语言语法与 C 相近,但功能上有:内存安全,GC,结构形态及 CSP-style 并发计算。

京东云开发者3阅读 647

封面图
微服务拆分治理最佳实践
部门中维护了一个老系统,功能都耦合在一个单体应用中(300+接口),表也放在同一个库中(200+表),导致系统存在很多风险和缺陷。经常出现问题:如数据库的单点、性能问题,应用的扩展受限,复杂性高等问题。

京东云开发者2阅读 317

封面图
poetry 下运行 dbt(qbit)
dbt 是 Data Build Tool 的简称,目前由 dbt labs 公司负责开发和维护,公司的前身是Fishtown Analytics。

qbit阅读 1k

SVG 安全
一 目录不折腾的前端,和咸鱼有什么区别目录一 目录二 任务目标三 SVG 简要介绍四 SVG 漏洞认知&emsp;4.1 跨站脚本(XSS)&emsp;4.2 HTML 注入&emsp;4.3 XML 实体导致的 Billion Laughs 攻击&emsp;4.4 Dos(拒绝...

jsliang阅读 941

封面图
VOP 消息仓库演进之路|如何设计一个亿级企业消息平台
VOP作为京东企业业务对外的API对接采购供应链解决方案平台,一直致力于从企业采购数字化领域出发,发挥京东数智化供应链能力,通过产业链上下游耦合与链接,有效助力企业客户的成本优化与资产效能提升。本文将介...

京东云开发者2阅读 164

封面图
数据字典标准与统一的重要性(码表&枚举值)
在日常的软件开发当中,开发者经常会听到“公共代码、编码、码表、枚举值”这样的名词,对这些概念可能会有些混淆和认知不透彻,那么这篇文章会详细论述一下关于数据字典的相关概念、应用、标准与统一的重要性及其...

我要飞的更高阅读 687

封面图
3 声望
2 粉丝
宣传栏