package com.tlq.dom4j;
import java.io.InputStream;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.xml.sax.EntityResolver;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
public class Dom4jTest {
/**
* @param args
*/
public static void main(String[] args) {
Dom4jTest dt = new Dom4jTest();
try {
//Document doc = dt.read("/org/soft/resource/shiporder.xml");
//直接传给它地址
//Document doc = dt.read("E:/myworkspace/Dom4jTest_XSD/src/com/tlq/dom4j/shiporder2.xml");
Document doc = dt.read("/com/tlq/dom4j/shiporder.xml");
Element element = dt.getRootElement(doc);
System.out.println(element.getPath());
} catch (DocumentException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
}
}
public Document read(String fileName) throws DocumentException,
SAXException {
SAXReader reader = new SAXReader(true);
EntityResolver resolver = new EntityResolver() {
public InputSource resolveEntity(String publicId, String systemId) {
//InputStream in = reader.read("/aa/shiporder3.xsd");
InputStream in = this.getClass().getResourceAsStream("/com/tlq/dom4j/shiporder.xsd");
return new InputSource(in);
}
};
reader.setEntityResolver(resolver);
reader.setFeature("http://xml.org/sax/features/validation", true);
reader.setFeature("http://apache.org/xml/features/validation/schema", true);
reader.setFeature("http://apache.org/xml/features/validation/schema-full-checking",true);
// reader.setProperty(
// "http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation",
// "shiporder.xsd");
//获得一个路役
// Document doc = reader.read("E:/myworkspace/Dom4jTest_XSD/src/com/tlq/dom4j/shiporder2.xml");
//Document doc = reader.read(fileName);
Document doc = reader.read(this.getClass().getResourceAsStream(fileName));
return doc;
}
public Element getRootElement(Document doc) {
return doc.getRootElement();
}
}
XSD 文件
<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<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">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{6}"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:element name="shiporder">
<xs:complexType>
<xs:sequence>
<xs:element name="orderperson" 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" maxOccurs="unbounded">
<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:sequence>
<xs:attribute ref="orderid" use="required" />
</xs:complexType>
</xs:element>
</xs:schema>
XML文件
<?xml version="1.0" encoding="UTF-8"?>
<shiporder orderid="889923"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="shiporder.xsd">
<orderperson>George Bush</orderperson>
<shipto>
<name>John Adams</name>
<address>Oxford Street</address>
<city>London</city>
<country>UK</country>
</shipto>
<item>
<title>Empire Burlesque</title>
<note>Special Edition</note>
<quantity>1</quantity>
<price>10.90</price>
</item>
<item>
<title>Hide your heart</title>
<quantity>1</quantity>
<price>9.90</price>
</item>
</shiporder>
分享到:
相关推荐
xerces-c++ 2.8应用,主要报错xml文件的解析,创建,修改保存。schema验证的。希望对初学者有所帮助.
ava校验XML是件很扯淡的事情,... 下面不扯这些废话了,我用DOM4j结合javaxml api使用XSD来校验一个xml有效性,下面这个例子虽然和蹩脚,但是也费了一番功夫,放出来大家研究吧,有更好的实现也希望能和我一同分享。
dom4j是现在见到的解析xml效率最高的jar包,并且支持XPath定位,xml schema验证等功能。
自己开发的XML DOM计数程序DOMCount,使用DOM API解析XML文件,构造DOM树,然后遍历DOM树并计算元素个数(仅使用一个API调用)。 DOMCount解析XML文件,计算其元素数并打印。 用法: DOMCount [options]<XML file...
中文名: XML入门经典(第四版) 原名: Beginning XML 4th Edition 作者: (美)亨特 (美)拉夫特 (美)福思特 译者: 吴文国 资源格式: PDF 版本: 扫描版 出版社: (美)亨特 (美)拉夫特 (美)福思特 书号: 9787302194651 发行...
126页 XML 简介 编写 XML 文档 使用 DTD 验证 XML 文档 使用 Schema 定义和验证 XML 文档 了解 XML 命名空间 使用 XSLT 转换 XML 文档 使用 DOM 读取和操作 XML 文档 使用 SAX 读取 XML 文档
主要内容包括:XML语法和格式良好的XML,XML命名空间,利用DTD和XML Schema进行XML验证,使用SOAP和Web服务,以及运用ADO.NET进行数据库访问等。本书还用两个案例分析来展示XML的具体应用。 本书适合于有一定的...
TinyXml是一个基于DOM模型的、非验证的轻量级C++解释器 一. XML解析模型: 目前XML的解析主要有两大模型:SAX和DOM。 SAX是基于事件的,其基本工作流程是分析XML文档,当发现了一个新的元素时,产生一个对应...
可是一大堆的概念和术语往往让人望而生畏,很多朋友问我:XML到底有什么用,我们是否需要学习它?我想就我个人学习过程的心得和经验,写一篇比较全面的介绍文章。首先有两点是需要肯定的: 第一:XML肯定是未来的...
XML概述 <br>2.1 XML的概念 2.1.1 XML元素 2.1.2 XML属性 2.1.3 XML解析器...使用注释 2.3 验证XML文档的有效性 2.3.1 文档类型定义 2.3.2 XML Schema 2.3.3 XML编码 2.4 小结 <br>第3章...
2010年09月23日 的版本。 ...XHTML XHTML 1.0 ...TCP/IP CSS 2.0 XML教程 JavaScript XML jQuery ...XML DOM HTML DOM XSL XML DOM ...Schema XSL-FO ...HTML DOM HTML 实例 ... 验证XML 验证WML
HTML教程 HTML XHTML CSS TCP/IP XML教程 XML XSL XSLT XSL-FO XPath XQuery XLink XPointer DTD Schema XML DOM XForms SOAP WSDL RDF RSS ...HTML DOM ...HTML DOM XML DOM ...XML DOM 实例 ...验证XML 验证
最新版w3school帮助文档,集成了最新的jQuery 高压缩 只有不足6M的文件 包含的技术有: ...XHTML CSS TCP/IP XML教程 ...XML DOM ...Schema ...HTML DOM ...HTML DOM XML DOM ...HTML DOM 实例 ...验证XML 验证WML
XHTML CSS TCP/IP XML教程 XML XSL XSLT XSL-FO ...Schema XML DOM ...HTML DOM ...通过使用我们的在线编辑器,你可以编辑这些例子,并对代码进行实验。...快捷易懂的学习方式 一寸光阴一寸金,因此,...验证XML 验证WML
哟两个w3school chm,一个版本比较新,一个是旧版,可以结合使用 ... ... XHTML CSS ...Schema ...XML DOM ...HTML DOM ...通过使用我们的在线编辑器,你可以编辑这些例子,并对代码进行实验。...验证XML 验证WML
只需使用xmllint类的工具来读取您的配置并根据Schema对其进行验证,例如 xmllint --schema phpunit.xsd phpunit.xml 如果要从PHP文件进行验证,则可以使用DOM扩展名,例如 $dom = new DOMDocument; $dom->load('/...
xstream可以完美转换xml,与以往的解析xml工具dom相比,xstream是一个易用的、开源 的库,使用起来简单、小巧,容易理解,可以轻易的将java对象和xml文档相互转换,而 且可以修改某个特定的属性和节点名称。...
正式文件的数据类型多样化导致了数据有效性验证的复杂化,这已经对信息化交流产生越来越大的...针对这个问题提出一种新的数据验证通用模板,这种模板采用新的验证机制,结合XML,XPath,Java,DOM来验证数据的有效性。