之前关于XML一直很好奇,很多地方都说能用到XML来保存数据,传输数据。最近自己看了点XML的资料,总结下。
个人学习记录,欢迎各种拍砖
XML本身是一个由很多自定义的标签组成的描述性语言,写出来的是个.xml的文本
这里的标签叫做<element></element>,一定是有开始标签和结束标签。标签与标签之前是嵌套存在的。
<RootElement> <childElement1> ...... </childElement1> <childElement2> ...... </childElement2> ...... </RootElement>
每一个Element还可以带有属性,attribute来增加标签的信息
<element attribute=""> </element>
这是xml文档最基本的形式。
因为这些标签都是自定义的,所以任何人可以写任何标签。但是如果我是个项目的负责人,我想指定这些element的名字啊,属性啊,然后具体接触数据的人才能根据这个指定格式的xml文件来填写数据。就像我先制定一个规范的表格,然后大家才能统一填写。这样就用到了XML Schema
这个XML Schema通过规定的形式来制定每个指定XML应该有哪些elements,每个elements应该有哪些attribute
以下是个XML Schema的一个例子
<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <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>
上面的Schema定义了根element是note,然后有四个childElement,"to","from","heading","body",他们包含的数据都是string类型的
可以看到其实Schema文档也是用XML的格式来写的,用element来嵌套表示
XML, 和 XML Schema 有很多细节的知识,但是大体上设计思想就是这么多了。
那么XML为什么这么流行呢?
我是这么理解的: XML是一个最基本的表示数据表示形式,它能很格式化的表示数据。它本身就这么多用处了。
通过Schema可以定义很多XML文档的格式。那么这样的话,这个XML就能当成是个协议了(protocol),比如可以做成在web service中的传输协议,SOAP。 可以做成描述服务的WSDL文件。可以做成博客订阅的RSS协议。 用XML来描述这些协议的话,可以做到OS-independent,Language-independent. 只要在服务器端和客户端用程序来解析这个被Schema定义好的XML文档,就能到达数据传输或者数据存储的目的了。
总结:
XML只是一个自定义的标记语言。真正使大家认识到它的是利用XML衍生出来的各种用于web service的服务协议。或者说这就是XML的真正用途。