技术帮
 

XML入门

本网站内容基本都是原创作品,未得到作者同意也欢迎转载
转载请注明出处:技术帮
说你呢,赶紧长按二维码,然后点击识别图中二维码

任何技术难题可进QQ群提问:【小崔说编程
对于提问的原则是:没有你不能问的,只有我不会答的

1473058358717068189.png XML简介

1998年2月,W3C正式批准了可扩展标记语言的标准定义,可扩展标记语言可以对文档和数据进行结构化处理,从而能够在部门、客户和供应商之间进行交换,实现动态内容生成,企业集成和应用开发。可扩展标记语言可以使我们能够更准确的搜索,更方便的传送软件组件,更好的描述一些事物。例如电子商务交易等。

它被设计用来传输和存储数据它被设计用来传输和存储数据。

超文本标记语言被设计用来显示数据。

它们都是标准通用标记语言的子集。

* 可扩展标记语言是一种很像超文本标记语言的标记语言。

* 它的设计宗旨是传输数据,而不是显示数据。

* 它的标签没有被预定义。您需要自行定义标签。

* 它被设计为具有自我描述性。

* 它是W3C的推荐标准。


XML有三要素:1 标签 2 属性 3 内容

例子:

<?xml version="1.0" encoding="UTF-8"?>
<recipe>
<recipename>Ice Cream Sundae</recipename>
<preptime>5 minutes</preptime>
</recipe>

 XSD是什么?

XSD是指XML结构定义 ( XML Schemas Definition )

XML Schema 是DTD的替代品。XML Schema语言也就是XSD。

XML Schema描述了XML文档的结构。可以用一个指定的XML Schema来验证某个XML文档,以检查该XML文档是否符合其要求。文档设计者可以通过XML Schema指定一个XML文档所允许的结构和内容,并可据此检查一个XML文档是否是有效的。XML Schema本身是一个XML文档,它符合XML语法结构。可以用通用的XML解析器解析它。

  一个XML Schema会定义:文档中出现的元素、文档中出现的属性、子元素、子元素的数量、子元素的顺序、元素是否为空、元素和属性的数据类型、元素或属性的默认和固定值。

  XSD是DTD替代者的原因,一是据将来的条件可扩展,二是比DTD丰富和有用,三是用XML书写,四是支持数据类型,五是支持命名空间。

  XSD文件的后缀名为.xsd。

  XML Schema的优点:

  1) XML Schema基于XML,没有专门的语法 

  2) XML可以象其他XML文件一样解析和处理 

  3) XML Schema支持一系列的数据类型(int、float、Boolean、date等) 

  4) XML Schema提供可扩充的数据模型。 

  5) XML Schema支持综合命名空间 

  6) XML Schema支持属性组。


在Eclipse中使用xsd文件验证xml。

例子

定义一个student.xsd文件:

<?xml version="1.0" encoding="utf-8" ?>
<xs:schema  xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="qualified">
	<xs:element name="student">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="name" type="nameType" />
				<xs:element ref="age" />
				<xs:element ref="sex" />
				<xs:element ref="phone" />
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:simpleType name="nameType">
		<xs:restriction base="xs:string">
			<xs:minLength value="4" />
			<xs:maxLength value="18" />
		</xs:restriction>
	</xs:simpleType>

	<xs:element name="age">
		<xs:simpleType>
			<xs:restriction base="xs:int">
				<xs:minInclusive value="1" />
				<xs:maxInclusive value="100" />
			</xs:restriction>
		</xs:simpleType>
	</xs:element>

	<xs:element name="sex">
		<xs:simpleType>
			<xs:restriction base="xs:string">
				<xs:enumeration value="男" />
				<xs:enumeration value="女" />
			</xs:restriction>
		</xs:simpleType>
	</xs:element>

	<xs:element name="phone">
		<xs:simpleType>
			<xs:restriction base="xs:string">
				<xs:pattern value="\d{3}-\d{8}" />
			</xs:restriction>
		</xs:simpleType>
	</xs:element>
</xs:schema>


定义一个student.xml文件:

<?xml version="1.0" encoding="utf-8"  standalone="no"?>
<student xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="student.xsd">
</student>

在eclipse的项目中,将这两个文件放到相同的文件夹下或包下。

然后编辑student标签内部的内容,输入一个 < 符号,自动就会提示用户输入name age phone sex等标签,非常方便。

xsi:noNamespaceSchemaLocation="student.xsd"指定了xsd文件的路径


类似XSD对xml进行验证的技术还包括DTD。