- 用过 XML 的人都知道可用 DTD(Document Type Definition) 来验证语法,不过微软主导了新一代验证语法的 XML Schema,并且风头正劲,大有一统江湖之势。看看我们身边的几个变化就明白了。
web.xml 从 web-app_2_3.dtd 到 web-app_2_4.xsd
spring 配置文件从 spring-beans.dtd 到 spring-beans-2.0.dtd 到 spring-beans-2.0.xsd,直至灵活的自定义 Schema
quartz_jobs.xml 配置文件从 job_scheduling_data_1_5.dtd 到 job_scheduling_data_1_5.xsd
XML Schema 简介
XML Schema 是一个比 DTD 具有更细致描述语法功能的验证技术,并且它本身也是一个 XML 文件,不像 DTD 用是是独有的语法。既然 XML Schema 和 DTD 都是用来验证 XML 的,并能大抢风头,固然有它值得称道的地方。所以先说说 DTD 的的不足和 XML Schema 的特点。 Read More - 对于 XML 文件中不带命名空间(NameSpace) 的节点,如
<blog_Content>
用 JDOM 的 XPath 来搜索这个节点时可用下面之中任一代码:
① List<Element> elements = XPath.selectNodes(document,"//blog_Content");
② XPath xpath = XPath.newInstance("//blog_Content");
List<Element> elements = xpath.selectNodes(document);
但是如果是查找带命名空间的节点,如 Read More 
1. 命名空间 (Namespace) 的引入
比如有两份 XML 数据和1<labourer> 2 <name>Unmi</name> 3 <address>fantasia@sina.com</address> 4</labourer>1<labourer> 2 <name>Unmi</name> 3 <address>Gaoxin Nanyi Road, NanShan District, Shenzhen</address> 4</labourer>
集成在一起时就是 Read More
通常一些应用框架都会用 XML 作为配置,而且很多都支持多个 XML 文件,例如 Struts 框架可以配置多个 struts-config-xxx.xml 文件,Spring 也允许你用多个 applicationContext-xxx.xml 文件,再比如 DWR 也是可以由多个 dwr-xxx.xml 依功能或其他方式分开来配置。我们知道, 这样的多个 XML 有相同的规范定义,那么程序如何一并解析它们呢?我看过 ActionServlet 是对 struts-config-xxx.xml 逐个解析的。 我这里介绍的一种方法是把那些有着相同规范定义的 XML 合成一个 Document 然后对这个 Document 对象进行处理,如 XPath 查找、进行 DOM 对象操作, 就不需要每次到多个 Document 中去查找一遍。
众所周知,对 XML 的操作有两种方式,DOM:XML 映射在内存中一颗树;SAX:基于事件的方式。常用的 XML Java 解析组件有 DOM4J(Apache的)、JDOM、和JAXP(Sun的),它们都提供了 DOM 和 SAX 实现和 Xpath 查找。 Read More