XML概念

XML是eXtensible Markup Langguage 缩写,称之为可扩展标记语言。XML 被设计用来传输和存储数据。与HTML不同的是:

HTML被设计用来显示数据,其焦点是数据的外观。

  • XML被设计用来描述数据,其焦点是数据的内容。
  • XML 标签没有被预定义。您需要自行定义标签。
  • XML 被设计为具有自我描述性。
  • XML 是 W3C 的推荐标准

XML的用途

XML 简化数据共享

XML 数据以纯文本格式进行存储,因此提供了一种独立于软件和硬件的数据存储方法。这让创建不同应用程序可以共享的数据变得更加容易。

XML 简化数据传输

通过 XML,可以在不兼容的系统之间轻松地交换数据。

XML 简化平台的变更

XML 数据以文本格式存储。这使得 XML 在不损失数据的情况下,更容易扩展或升级到新的操作系统、新应用程序或新的浏览器。

XML文档结构

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

<?xml version="1.0" encoding="UTF-8"?>
<root>
<child>
<subchild>.....</subchild>
</child>
</root>

1.XML申明

<?xml version="1.0" encoding="ISO-8859-1"?>

申明必须在第一行,在其前面不能有空白、其他的处理指令或注释。

  • 申明版本属性:目前该属性的值通常为1.0

  • 声明编码属性:默认值UTF-8

2.根标记

XML文档中有且仅有一个根标记,其他标记都必须封装在根标记中。

3.树形结构

XML 文档中的元素形成了一棵文档树。这棵树从根部开始,并扩展到树的最底端。所有元素均可拥有子元素,父、子以及同胞等术语用于描述元素之间的关系。

父元素拥有子元素。相同层级上的子元素成为同胞(兄弟或姐妹)。所有元素均可拥有文本内容和属性(类似 HTML 中)。

XML的语法

  • 所有 XML 元素都须有关闭标签

  • XML 标记对大小写敏感
  • XML 标记命名必须以下划线或字母开头,"<"和标记名字 之间不要有空格。
  • XML 必须正确地嵌套,形如:<b><i>This text is bold and italic</i></b>
  • XML 文档必须有根标记
  • XML 的属性值须加引号
  • 在 XML 中,空格会被保留
  • XML 中的注释:<!-- This is a comment -->
  • 实体引用,在XML中的特殊字符应当用引用实体:

&lt;

<

&gt;

>

&amp;

&

&apos;

'

&quot;

"

XML标记

标记由左尖括号(<)和右尖括号(>)以及之间的文本组成。有开始标记(例如 <name>)和结束标记(例如 </name>)。

XML 标记命名必须以下划线或字母,"<"和标记名字之间不要有空格。

XML 标记对大小写敏感

1.空标记

空标记以"<"标识开始,"/>"结束。可以有属性。

<chair width="24" height="12" />

2.非空标记

非空标记必须由“开始标记”和“结束标记”组成,成对出现。

开始标记"<"标识开始,">"结束。可以有属性。

结束标记以"</"开始,">"结束。不能有属性。

<T28>
<开车时间>20点58分</开车时间>
<终到时间>08点18分</终到时间>
</T28>

3.CDATA段

术语 CDATA 指的是不应由 XML 解析器进行解析的文本数据(Unparsed Character Data)。

CDATA段用"<![CDATA["开始,"]]>"结束。之间可以包含任意字符。但CDATA段不能嵌套。

<script>
<![CDATA[
function matchwo(a,b)
{
if (a < b && a < 0) then
{
return 1;
}
else
{
return 0;
}
}
]]>
</script>

在上面的例子中,解析器会忽略 CDATA 部分中的所有内容。

XML元素

元素是开始标记、结束标记以及位于二者之间的所有内容。元素的名字和属性就是该元素内最外层标记的名字和属性。

元素可包含其他元素、文本或者两者的混合物。元素也可以拥有属性。

<bookstore>
<book category="CHILDREN">
<title>Harry Potter</title>
<author>J K. Rowling</author>
</book>
<book category="WEB">
<title>Learning XML</title>
<author>Erik T. Ray</author>
</book>
</bookstore>

在上例中,<bookstore> 和 <book> 都拥有元素内容,因为它们包含了其他元素。<author> 只有文本内容,因为它仅包含文本。

在上例中,只有 <book> 元素拥有属性 (category="CHILDREN")。

XML命名空间

XML 命名空间提供避免元素命名冲突的方法。

命名冲突

假如这两个 XML 文档被一起使用,由于两个文档包含带有不同内容和定义的相同名字的元素,就会发生命名冲突。 XML 解析器无法确定如何处理这类冲突。

使用前缀来避免命名冲突

<h:table>
<h:tr>
<h:td>Apples</h:td>
</h:tr>
</h:table>

使用命名空间(Namespaces)

<f:table xmlns:f="http://www.XXX.com.cn/furniture">
<f:name>African Coffee Table</f:name>
<f:width>80</f:width>
</f:table>

XML Namespace (xmlns) 属性

XML 命名空间属性被放置于元素的开始标签之中,并使用以下的语法:

xmlns:namespace-prefix="namespaceURI"

当命名空间被定义在元素的开始标签中时,所有带有相同前缀的子元素都会与同一个命名空间相关联。

默认的命名空间(Default Namespaces)

为元素定义默认的命名空间可以让我们省去在所有的子元素中使用前缀的工作。

请使用下面的语法:xmlns="namespaceURI"

<table xmlns="http://www.w3.org/TR/html4/">
<tr>
<td>Apples</td>
</tr>
</table>

XML认识的更多相关文章

  1. XStream将java对象转换为xml时,对象字段中的下划线“_”,转换后变成了两个的解决办法

            在前几天的一个项目中,由于数据库字段的命名原因 其中有两项:一项叫做"市场价格"一项叫做"商店价格" 为了便于区分,遂分别将其命名为market ...

  2. .NET Core采用的全新配置系统[9]: 为什么针对XML的支持不够好?如何改进?

    物理文件是我们最常用到的原始配置的载体,最佳的配置文件格式主要由三种,它们分别是JSON.XML和INI,对应的配置源类型分别是JsonConfigurationSource.XmlConfigura ...

  3. WebApi接口 - 响应输出xml和json

    格式化数据这东西,主要看需要的运用场景,今天和大家分享的是webapi格式化数据,这里面的例子主要是输出json和xml的格式数据,测试用例很接近实际常用情况:希望大家喜欢,也希望各位多多扫码支持和点 ...

  4. XML技术之DOM4J解析器

    由于DOM技术的解析,存在很多缺陷,比如内存溢出,解析速度慢等问题,所以就出现了DOM4J解析技术,DOM4J技术的出现大大改进了DOM解析技术的缺陷. 使用DOM4J技术解析XML文件的步骤? pu ...

  5. UWP开发之Mvvmlight实践六:MissingMetadataException解决办法(.Net Native下Default.rd.xml配置问题)

    最近完成一款UWP应用,在手机端测试发布版(Release)的时候应用莫名奇妙的强行关闭,而同样的应用包在PC端一点问题都没有,而且Debug版在两个平台都没有问题,唯独手机的Release版有问题. ...

  6. PHP中遍历XML之SimpleXML

    简单来讲述一些XML吧,XML是可扩展标记语言,是一种用于标记电子文件使其具有结构性的标记语言.XML是当今用于传输数据的两大工具之一,另外一个是json. 我们在PHP中使用XML也是用来传输数据, ...

  7. Asp.Net 操作XML文件的增删改查 利用GridView

    不废话,直接上如何利用Asp.NET操作XML文件,并对其属性进行修改,刚开始的时候,是打算使用JS来控制生成XML文件的,但是最后却是无法创建文件,读取文件则没有使用了 index.aspx 文件 ...

  8. Mybatis XML配置

    Mybatis常用带有禁用缓存的XML配置 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE ...

  9. Drawable实战解析:Android XML shape 标签使用详解(apk瘦身,减少内存好帮手)

    Android XML shape 标签使用详解   一个android开发者肯定懂得使用 xml 定义一个 Drawable,比如定义一个 rect 或者 circle 作为一个 View 的背景. ...

  10. C#反序列化XML异常:在 XML文档(0, 0)中有一个错误“缺少根元素”

    Q: 在反序列化 Xml 字符串为 Xml 对象时,抛出如下异常. 即在 XML文档(0, 0)中有一个错误:缺少根元素. A: 首先看下代码: StringBuilder sb = new Stri ...

随机推荐

  1. Mysql创建删除索引

    1.查看某个表中的索引 show index from 表名 2.为某个表创建索引 alter table 表名 add index 索引名(列名)    //此种方式创建一般的索引 alter ta ...

  2. 让QMainWindow也表现出QDialog的exec函数的特征

    前几天在做毕业设计项目的时候,使用的PyQt4,想实现这么样一个功能: 场景描述:主窗口a(QMainWindow类型)和主窗口b(QMainWindow),b是通过a窗口中某一个按钮弹出来的. 功能 ...

  3. PHP页面静态化入门

    <?php /** *PHP页面静态化分为以下步骤: *1.打开输出控制缓存 *2.返回输出缓存区的内容 *3.将一个字符串写入文件 *4.冲刷出缓存区的内容 */ //1.打开输出控制缓存 o ...

  4. JavaScript学习心得(十)

    Ajax Ajax是浏览器中使用JavaScript进行服务器后台请求,读取附加信息或者导致服务器响应的过程. Ajax广泛用于从服务器读取数据,并用所得到的数据更新页面,以及向服务器发送数据 Aja ...

  5. [CSS]文本属性(Text)

      CSS 文本属性(Text) 属性 描述 CSS color 设置文本的颜色. 1 direction 规定文本的方向 / 书写方向. 2 letter-spacing 设置字符间距. 1 lin ...

  6. 不同优化选项对ARM下C语言编译的影响

    我们知道在C语言编译时,有那么几个常用的优化编译选项,分别是-O0,-O1,-O2,-O3以及-Os.之前一直觉得既然是优化选项,顶多是优化一下逻辑,提高一些效率或者减少一下程序大小而已.很少会觉得它 ...

  7. GMM+Kalman Filter+Blob 目标跟踪

    转 http://www.cnblogs.com/YangQiaoblog/p/5462453.html ==========图片版================================== ...

  8. 原生js实现吸顶导航和回到顶部特效

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. [UOJ 74] 【UR #6】破解密码

    题目链接:UOJ - 74 题目分析 题目中,将字符串 S 的第一个字符移到末尾,其他字符向前移动一个位置,f(S) 就从 Hi 变成了 Hi+1. 我们分析一下这个过程:假设第一个字符为 c, (H ...

  10. C/C++中的内存对齐 C/C++中的内存对齐

    一.什么是内存对齐.为什么需要内存对齐? 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特 定的内存地址 ...