XML文档
来定义语义约束,要复杂一些,但是功能强大的多。
XML Schema指定丰富的类型,而且允许开发者自定义数据类型,因此完全可以处理更加复杂的语义约束场景。
XML Schema简称XSD(XML Schema Definition ),是DTD的替代者,既可以定义XML文档结构,也可以定义XML文档的内容约束
==============================================================================
可读性强:本身就是一个XML文档
支持数据类型:比如日期类型,并且限制日期范围都没有问题
可扩展:导入其他的Schema,自定义数据类型、一个XML文档使用多个XML Schema
JavaEE、JavaEE开源框架中都大量使用了XML文档,其语义约束也己经陆续从之前的DTD约束升级为Schema约束
==========================================================================================
<?xml version="1.0" encoding="ISO-8859-1" ?><xs:schema xmlns:xs=“http://www.w3.org/2001/XMLSchema”>
<xs:element name=“orderperson” type=“xs:string”/>
<xs:element name=“name” type=“xs:string”/>
<xs:element name=“address” type=“xs:string”/>
<xs:element name=“city” type=“xs:string”/>
<xs:element name=“country” type=“xs:string”/>
<xs:element name=“title” type=“xs:string”/>
<xs:element name=“note” type=“xs:string”/>
<xs:element name=“quantity” type=“xs:positiveInteger”/>
<xs:element name=“price” type=“xs:decimal”/>
<xs:attribute name=“orderid” type=“xs:string”/>
<xs:element name=“shipto”>
xs:complexType
xs:sequence
<xs:element ref=“name”/>
<xs:element ref=“address”/>
<xs:element ref=“city”/>
<xs:element ref=“country”/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name=“item”>
xs:complexType
xs:sequence
<xs:element ref=“title”/>
<xs:element ref=“note” minOccurs=“0”/>
<xs:element ref=“quantity”/>
<xs:element ref=“price”/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name=“shiporder”>
xs:complexType
xs:sequence
<xs:element ref=“orderperson”/>
<xs:element ref=“shipto”/>
<xs:element ref=“item” maxOccurs=“unbounded”/>
</xs:sequence>
<xs:attribute ref=“orderid” use=“required”/>
</xs:complexType>
</xs:element>
</xs:schema>
=======================================================================
========================================================================
XML作为一种数据传输工具,肯定离不开XML文档的读写。XML本身是结构化文档,如果依旧使用普通的IO流读写,效率低下,编程繁琐。目前常用的XML解析技术主要有四种
DOM和SAX
是XML解析的两种规范,目前主流的XML解析器都会为DOM和SAX提供实现
使用这两种技术解析XML比较繁琐,代码冗长,可读性也不高。
所以Java领域中又出现了两个开源的XML解析器:
DOM4J和JDOM
其中DOM4J是面向接口编程,而JDOM是面向实现编程。DOM4j比JDOM更灵活,性能表现也比较优异
DOM:Document Object Model 文档对象模型
=======================================================================&#