C#XML(一) - 语法

1. XML定义

XML 被设计用来传输和存储数据(HTML 被设计用来显示数据)

XML 指可扩展标记语言(eXtensible Markup Language)。

可扩展标记语言(英语:Extensible Markup Language,简称:XML)是一种标记语言,是从标准通用标记语言(SGML)中简化修改出来的。它主要用到的有可扩展标记语言、可扩展样式语言(XSL)、XBRL和XPath等。

2. XML特点

1. XML 的设计宗旨是传输数据,而不是显示数据

2. XML 标签没有被预定义,XML 允许创作者定义自己的标签和自己的文档结构。(XML不像HTML是定义好的特定标签代表特定含义,比如HTML中<p>表示段落标签,但是在XML中没有固定标签,都是用户自定义的标签名字)

3. XML 被设计为具有自我描述性。XML 不会做任何事情,它仅仅是包装在 XML 标签中的纯粹的信息。我们需要编写软件或者程序,才能传送、接收和显示出这个文档。

4. HTML和XML的区别:XML 不是 HTML 的替代,XML 和 HTML 为不同的目的而设计; XML 被设计为具有自我描述性;HTML 被设计用来显示数据,其焦点是数据的外观;HTML 旨在显示信息,而 XML 旨在传输信息;

5.  XML 是各种应用程序之间进行数据传输的最常用的工具

3. XML用途

XML 应用于 Web 开发的许多方面,常用于简化数据的存储和共享

1. XML 把数据从 HTML 分离。(如果您需要在 HTML 文档中显示动态数据,那么每当数据改变时将花费大量的时间来编辑 HTML。通过 XML,数据能够存储在独立的 XML 文件中。这样您就可以专注于使用 HTML/CSS 进行显示和布局,并确保修改底层数据不再需要对 HTML 进行任何的改变。通过使用几行 JavaScript 代码,您就可以读取一个外部 XML 文件,并更新您的网页的数据内容。)

2. XML 简化数据共享(在真实的世界中,计算机系统和数据使用不兼容的格式来存储数据。XML 数据以纯文本格式进行存储,因此提供了一种独立于软件和硬件的数据存储方法。这让创建不同应用程序可以共享的数据变得更加容易。)

3. XML 简化数据传输(对开发人员来说,其中一项最费时的挑战一直是在互联网上的不兼容系统之间交换数据。由于可以通过各种不兼容的应用程序来读取数据,以 XML 交换数据降低了这种复杂性。)

4. XML 简化平台变更(升级到新的系统(硬件或软件平台),总是非常费时的。必须转换大量的数据,不兼容的数据经常会丢失。XML 数据以文本格式存储。这使得 XML 在不损失数据的情况下,更容易扩展或升级到新的操作系统、新的应用程序或新的浏览器。)

5. XML 使您的数据更有用(不同的应用程序都能够访问您的数据,不仅仅在 HTML 页中,也可以从 XML 数据源中进行访问。通过 XML,您的数据可供各种阅读设备使用(掌上计算机、语音设备、新闻阅读器等),还可以供盲人或其他残障人士使用。)

6. XML 用于创建新的互联网语言(很多新的互联网语言是通过 XML 创建的。例如:XHTML,用于描述可用的 Web 服务 的 WSDL,作为手持设备的标记语言的 WAP 和 WML,用于新闻 feed 的 RSS 语言,描述资本和本体的 RDF 和 OWL,用于描述针针对 Web 的多媒体 的 SMIL)

4. XML语法

XML 文档形成了一种树结构,它从"根部"开始,然后扩展到"枝叶"。

<?xml version="1.0" encoding="UTF-8"?>
<!--根元素note-->
<note>
<!--to,from,heading,body是根note的4个子元素-->
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
<!--根元素的结尾-->
</note>

1. 第一行是 XML 声明。它定义 XML 的版本(1.0)和所使用的编码(UTF-8 : 万国码, 可显示各种语言)。(第一行是XML 声明文件的可选部分,如果存在需要放在文档的第一行)

2. 在 XML 中,省略关闭标签是非法的。所有元素都必须有关闭标签

3. XML 标签对大小写敏感。标签 <Letter> 与标签 <letter> 是不同的。必须使用相同的大小写来编写打开标签和关闭标签

4. 在 XML 中,所有元素都必须彼此正确地嵌套

f1835f259eac4ffb9f68232700f6a643.png

5. 在 XML 中,XML 的属性值必须加引号。例如:<note date="12/11/2007">

(1)属性值用双引号 " 或单引号 ' 分隔,如果属性值中有单引号,则用双引号分隔;如果有双引号,则用单引号分隔。那么如果属性值中既有单引号还有双引号怎么办?这种要使用实体引用

(2)一个元素可以有多个属性,它的基本格式为:

<元素名 属性名1="属性值1" 属性名2="属性值2">

(3)特定的属性名称在同一个元素标记中只能出现一次

(4)属性值不能包括 <,>,&,如果一定要包含,也要使用实体

(5)属性不能包含多个值(元素可以);属性不能包含树结构(元素可以);属性不容易扩展(为未来的变化);属性难以阅读和维护。请尽量使用元素来描述数据。而仅仅使用属性来提供与数据无关的信息。

(6)元数据(有关数据的数据)应当存储为属性,而数据本身应当存储为元素

c0f41bd31c494710843decb11bef1b8f.png

 

6. 实体引用:一些字符拥有特殊的意义。如果您把字符 "<" 放在 XML 元素中,会发生错误,这是因为解析器会把它当作新元素的开始。为了避免这个错误,请用实体引用来代替 "<" 字符:

在 XML 中,有 5 个预定义的实体引用:

&lt;<less than
&gt;>greater than
&amp;&ampersand
&apos;'apostrophe
&quot;"quotation mark

 注释:在 XML 中,只有字符 "<" 和 "&" 确实是非法的。大于号是合法的,但是用实体引用来代替它是一个好习惯。

7. XML中的注释:<!-- This is a comment -->

8. 在 XML 中,文档中的空格不会被删减,空格会被保留。

9. XML 以 LF 存储换行

5. XML元素

XML 元素指的是从(且包括)开始标签直到(且包括)结束标签的部分。一个元素可以包含:

  • 其他元素
  • 文本
  • 属性
  • 或混合以上所有
<bookstore>
    <book category="CHILDREN">
        <title>Harry Potter</title>
        <author>J K. Rowling</author>
        <year>2005</year>
        <price>29.99</price>
    </book>
    <book category="WEB">
        <title>Learning XML</title>
        <author>Erik T. Ray</author>
        <year>2003</year>
        <price>39.95</price>
    </book>
</bookstore>

在上面的实例中,<bookstore> 和 <book> 都有元素内容,因为他们包含其他元素。<book> 元素也有属性(category="CHILDREN")。<title>、<author>、<year> 和 <price> 有文本内容,因为他们包含文本。

5.1 XML命名规则

XML 元素必须遵循以下命名规则:包含字母、数字和空格以及其他的字符;不能以数字或者标点符号开始;不能以字母 xml(或者 XML、Xml 等等)开始;可使用任何名称,没有保留的字词

  • 使名称具有描述性。使用下划线的名称也很不错:<first_name>、<last_name>。
  • 名称应简短和简单,比如:<book_title>,而不是:<the_title_of_the_book>。
  • 避免 "-" 字符。如果您按照这样的方式进行命名:"first-name",一些软件会认为您想要从 first 里边减去 name。
  • 避免 "." 字符。如果您按照这样的方式进行命名:"first.name",一些软件会认为 "name" 是对象 "first" 的属性。
  • 避免 ":" 字符。冒号会被转换为命名空间来使用(稍后介绍)。
  • XML 文档经常有一个对应的数据库,其中的字段会对应 XML 文档中的元素。有一个实用的经验,即使用数据库的命名规则来命名 XML 文档中的元素。
  • 在 XML 中,éòá 等非英语字母是完全合法的,不过需要留意,您的软件供应商不支持这些字符时可能出现的问题。

5.2 XML元素是可拓展的

XML 元素是可扩展,以携带更多的信息

a410be8d214d4b3eaade66b98b45d517.png

 6. XML验证

通过 DTD 验证的XML是"合法"的 XML。

"形式良好"的 XML 文档拥有正确的语法。在前面的章节描述的语法规则:

  • XML 文档必须有一个根元素
  • XML元素都必须有一个关闭标签
  • XML 标签对大小写敏感
  • XML 元素必须被正确的嵌套
  • XML 属性值必须加引号

61eb40c20c75429893691f5a07efdb4f.png

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值