XML简介

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

需要自定义标签,自我描述性,XML是W3C的推荐标准;

XML的特点与作用

特点:

  • xml与操作系统、编程语言的开发平台无关
  • 实现不同系统之间的数据交互

作用:

XML格式:一个xml文档必须要有第一行的声明和它的文档元素的描述信息

xml声明:一般是xml文档的第一行

  • <?xml version="1.0" encoding="字符集编码集" standalone="[ yes | no ]"?>
  • version定义版本号1.0,encoding定义编码格式,standalone定义独立声明

根元素

  • 它是xml文档里面唯一的;它的开始是在最前面,结束是放在最后面

元素

  • 所有的xml元素都必须有一个关闭标签,<p></p><br />
  • xml标签对大小写敏感
  • xml必须正确地嵌套
  • 元素命名:可以包含字母,数字,或其它的字符;不能以数字或者标点符号开始;不能包含空格;
  • 空元素

属性:属性值用双引号包裹;一个元素可以有多个属性

  • 语法:<元素名 属性名=“属性值” 属性名=“属性值”></元素名>;
  • <Student ID=“S100”><Name>Tom</Name></Student>

实体:实体引用来代替产生错误的字符

  • 在xml中,一些字符拥有特殊的意义。如果把字符“<”放在xml元素中,会发生错误,解析器会把它当作新元素的开始
&lt; < 小于 less than
&gt; > 大于 greater than
&amp; & ampersand
&apos; ' 单引号 apostrophe
&quot; " 双引号 quotation 

注释:注释内容中不要出现”--”;不要把注释放在标签中间;注释不能嵌套。

命名空间(xml Namespaces):命名空间是在元素的开始标签的 xmlns 属性中定义的。

  • 命名空间提供避免元素名冲突的方法
  • 在xml中,元素名是开发者定义的,当两个不同的文档使用相同的元素名,就会发生冲突
  • 为标签添加了一个xmlns属性,这样就以前缀赋予了一个与某命名空间相关联的限定名称
  • 语法:xmlns:前缀="URL" ;
  • 默认命名空间:xmlns="namespaceURL";为元素定义默认的命名空间可以让我们省去在所有的子元素中使用前缀的工作

XML验证(约束):

DTD 与 Schema 建议使用Schema因为功能强大

DTD:文档类型定义 Document Type Definition

DTD用来描述xml文档的结构,一个DTD文档包含:  

① 元素的定义规则;② 元素之间的关系规则;③ 属性的定义规则;

关联方式:使用内部DTD、使用外部DTD、使用公共DTD)

内部关联:将约束文档书写在XML内部

<!DOCTYPE  根元素  [...具体规范内容...] >

 <?xml version="1.0" ?>
<!DOCTYPE note [
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<message>Don't forget me this weekend!</message>
</note>

外部关联模式:<!DOCTYPE 文档根节点 SYSTEM "DTD文件的URL">

<DOCTYPE note SYSTEM "book.dtd">

公共关联模式:<!DOCTYPE 文档根节点 PUBLIC "DTD名称" "DTD文件的URL">

<!--    引用的文件是一个网络上的公共文件-->
<!DOCTYPE note PUBLIC "-//Sun Microsystems,inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">

Schema:W3C 支持一种基于 XML 的 DTD 代替者,它名为 XML Schema

xml Schema是用一套预先规定的xml元素和属性创建的,这些元素和属性定义了xml文档的结构和内容模式。Xml Shema规定xml文档实例的结构和每个元素/属性的数据类型。

shema类似表结构,在表结构里,定义一些数据的限制要求。然后我们xml文档呢就相当于是数据表将来要存储的数据,也就是数据库里面的数据表数据了,所以整体来讲的话schema它就是用于验证xml文档的。

 <?xml version="1.0"?>
<!-- xsd约束-->
<xs:schema
xmlns:xs="http://www.w3.or/2001/XMLSchema"
targetNamespace="http://www.w3cschool.com.cn"
xmlns="http://www.w3cschool.com.cn"
elementFormDefault="qualified"
>
<xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="heading" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
 <?xml version="1.0" encoding="UTF-8">
<note
xmlns="http://www.w3cschool.com.cn"
xmlns:w3="http://www.w3school.com.cn"
xmlns:se="http://www.sikiedu.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3school.com.cn note.xsd"
http://www.sikiedu.com http://www.sikiedu.com/xx/xx/xx.xsd
>
<!-- note.xsd为本地路径xsd文件,http://www.sikiedu.com/xx/xx/xx.xsd为网络上的xsd路径-->
<to></to>
<w3:from></from>
<heading></heading>
<body></body>
</note>

数据交换格式之 - XML的更多相关文章

  1. 常用两种数据交换格式之XML和JSON的比较

    目前,在web开发领域,主要的数据交换格式有XML和JSON,对于XML相信每一个web developer都不会感到陌生: 相比之下,JSON可能对于一些新步入开发领域的新手会感到有些陌生,也可能你 ...

  2. 两种常用的数据交换格式:XML和JSON

    不同编程语言之间的数据传输,需要一种通用的数据交换格式,它需要简洁.易于数据储存.快速读取,且独立于各种编程语言.我们往往传输的是文本文件,比如我们都知道的csv(comma seperated va ...

  3. XML和JSON两种数据交换格式的比较

    在web开发领域,主要的数据交换格式有XML和JSON,对于在 Ajax开发中,是选择XML还是JSON,一直存在着争议,个人还是比较倾向于JSON的.一般都输出Json不输出xml,原因就是因为 x ...

  4. Java 常见数据交换格式——xml、json、yaml

    目录 数据交换格式介绍 XML 使用DOM方式解析 使用SAX方式解析 使用DOM4J方式解析 使用JDOM方式解析 JSON 使用JSONObject方式将数据转换为JSON格式 利用JSONObj ...

  5. 数据交换格式XML和JSON对比

    1.简介: XML:extensible markup language,一种类似于HTML的语言,他没有预先定义的标签,使用DTD(document type definition)文档类型定义来组 ...

  6. 数据交换格式Json与XML

    什么是数据交换格式: 主流的有Json.XML.HTML. 数据交换格式的应用场景: 移动端(安卓,IOS)通讯方式采用http协议+Json格式的restful风格. 很多互联网公司都是用Http协 ...

  7. Atitit.常见软件 数据 交换格式 标准

    Atitit.常见软件 数据 交换格式 标准 1. 常见的数据格式txt ,doc ,pic,music ,vodio1 2. 通用格式json yaml phpstr1 3. 专用格式1 4. 用户 ...

  8. 在.NET使用JSON作为数据交换格式

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://zhoufoxcn.blog.51cto.com/792419/517093 我们 ...

  9. 数据交换格式与SpringIOC底层实现

    1.数据交换格式 1.1 有哪些数据交换格式 客户端与服务器常用数据交换格式xml.json.html 1.2 数据交换格式应用场景 1.2.1 移动端(安卓.iOS)通讯方式采用http协议+JSO ...

随机推荐

  1. 盒子阴影 box-shadow

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  2. JS 变量的数据类型转换

    变量的类型转换,一般情况是JS自动转换的,但也有些时候需要手动转换. 1.其它类型转成布尔型 函数和方法的区别 Boolean(a)  //函数是可以独立使用的 document.write(a)   ...

  3. day23_5_练习_Calculator_使用正则表达式计算复杂表达式

    #!/usr/bin/env python# -*- coding:utf-8 -*-# ------------------------------------------------------- ...

  4. USACO 2013 January Silver Painting the Fence /// oj23695

    题目大意: 输入n,k :n次操作 找到覆盖次数在k及以上的段的总长 一开始位置在0 左右活动范围为1-1000000000 接下来n行描述每次操作的步数和方向 Sample Input 6 22 R ...

  5. [Baltic2009]beetle【区间Dp】

    Online Judge:Bzoj1761 Label:区间Dp 题目描述 在一条直线上有N个点,每个点M升水. 一个虫子在坐标轴0点上,它每个单位时间移动一格,每个点的水每单位时间消失1升. 问虫子 ...

  6. 04.Mybatis输出映射之ResultMap

    当实体类中的字段名与数据库中的字段名不一致时需要手动设置映射关系 在Mapper.xml中定义 <!-- resultMap最终还是要将结果映射到pojo上,type就是指定映射到哪一个pojo ...

  7. 用shell编写小九九乘法表程序

    1.使用for循环 运行结果: 2.方法二:for循环 运行结果: 备注: 1. echo -n 的意思是不自动换行,因为在linux shell中 echo到最后一个字符时会自动换行的,所以echo ...

  8. leetcode-买卖股票最佳时机含冷冻期

    题目描述: 方法一: class Solution: def maxProfit(self, prices: List[int]) -> int: n = len(prices) dp_i_0 ...

  9. IOS学习笔记56-IOS7状态栏适配方法一

    近期由于IOS7的发布,所以应用的适配潮可谓是都搞的锣鼓喧天,甚是热闹,因此呢,因适配IOS7而产生的问题也是铺天盖地的卷来,所以了,我也从简单的状态栏适配开始,先研究了下关于状态栏的适配,特总结如下 ...

  10. Spring简洁总结

    Spring简洁总结  要的对象不是自己建的,而是IOC容器(XML文件)给的,我们通过getbean来调用. 依赖注入的话就是对象(bean)的成员的赋值不是我们手动完成,而是容器(XML文件)给我 ...