XML基础
XML |
命名空间是为了DTD和Schema解决命名冲突,DTD和Schema是自定义结构,保证数据传输的正确性。
XML定义:
可扩展标记语言(可以自己定义)。设计宗旨是包含和传输数据。
主要应用:
- 系统的配置文件。(现在大部分是XML)
- Ajax中数据传输
- Web Services中传输数据
- 异构平台的数据交换与整合。不同平台的数据,可以用XML来进行整合。
XML特点:
可扩展,灵活,占内存小。为传输数据而设计。相比于HTML,HTML提供了已经定义好的标签,是提供了一个标准。而XML通过DTD和Schema,用户可以根据自己的需要来定义新的结构,新的标签。实现自己想要的功能。
举例:
VS中config文件,就采用这种通俗易懂的语言。借助它可扩展性的特点,我们可以自己写标签进行封装,来实现自己想要的效果。实现开闭原则,当需要修改的时候在config文件中进行,不需要修改院代码。
应用:
支持跨平台,常用于银行间相互数据传输。
DTD |
DTD:(Document Type Definition)自定义结构。
为什么要出现DTD:
用户提前定义自己需要的结构,之后按着这个结构来写代码。可以实现正确进行数据交换。
元素:
元素:<!ELEMENT 元素名称(元素内容)>
空元素:<!ELEMENT 元素名称 EMPTY>
带有任何元素:<!ELEMENT 元素名称 ANY>
属性:
语法:<!ATTLIST 元素名称 属性名称 属性类型 默认值>
举例:
DTD:
<!ATTLIST payment type CDATA "cash">
XML:
<payment type="check"/> 可以赋予
<payment /> 默认值:cash
其他属性:
举例:
liuwei
四种默认属性:
#IMPLIED:
语法:<!ATTLIST 元素名称 属性名称 属性类型 #IMPLIED>
#FIXED:
语法:<!ATTLIST 元素名称 属性名称 属性类型 #FIXED "value">
举例:
DTD:
<!ATTLIST payment type CDATA #FIXED "cash">
XML:
<payment type="cash"/>
<payment/>
实体:
内部声明实体:
<!ENTITY 实体名称 "实体的值">
举例:
DTD:<!ENTITY writer "Bill Gates">
<!ENTITY copyright "Copyright jobedu.com.cn">
XML:
<author>&writer;©right;</author>
输出结果是:Bill Gates Copyright jobedu.com.cn
外部实体声明:(其他地方所定义的)
<!ENTITY 实体名称 SYSTEM "URI/URL">举例:
DTD:
<!ENTITY writer SYSTEM "http://www.baidu.com">
XML:
<author>&writer;</author>
Schema |
定义:
Schema描述XML文档的结构,和DTD相比它是XML文件,比DTD功能强大,是DTD的继任者。会在将来取代DTD。
优势:
- 1.可针对未来需求进行扩展。
- 2.更完善,功能更强大。
- 3.基于XML编写。
- 4.支持数据类型。
应用:
可保护数据通信。
像03-11-2019,可以理解未11月3日,也可以理解为3月11日。但是2019-03-11,定义XML数据类型"date"格式为YYYY-MM-DD;
可扩展的。
特点:
在其他Schema中重复使用自己的Schema.
在相同文件中可以应用多重的Schema。