/** 使用Apache Xerces解析器 */
org.apache.xerces.parsers.DOMParser mParser =
new org.apache.xerces.parsers.DOMParser();
/** 构造函数 */ // 告诉解析器验证并解析文档
try {
mParser.setFeature( "http://xml.org/sax/features/validation",
true);
}
catch (SAXException e) {
System.out.println("Error setting validation on parser:");
e.printStackTrace();
}
org.apache.xerces.parsers.DOMParser mParser =
new org.apache.xerces.parsers.DOMParser();
/** 构造函数 */ // 告诉解析器验证并解析文档
try {
mParser.setFeature( "http://xml.org/sax/features/validation",
true);
}
catch (SAXException e) {
System.out.println("Error setting validation on parser:");
e.printStackTrace();
}
解决方案 »
- 用java 如何得到实时汇率
- JS怎么得到某天所在周的起始日期
- 菜鸟求助。。急
- hibernate问题
- 求教jFreeChart
- 新手请问LINUX下Apache+Tomcat实现集群及负载均衡的问题
- 救火啊!急!关于spring和hibernate的问题
- 请教一下,在SPRING中更改后缀名为什么程序运行会保错?
- 为什么我rebuild工程的时候,会自动删了我在mystruts/WEB-INF/classes目录下的ApplicationResources.properties文件
- jndi name 重名问题,高手请回答
- 传值?传引用?String a="3";String b=a;b="4";System.out.println(a);
- JB9 与 JBOSS 3的探讨
WellFormed.xsd
<?xml version="1.0" ?>
<xs:schema targetNamespace="WellFormed"
xmlns="WellFormed"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
attributeFormDefault="qualified"
elementFormDefault="qualified">
<xs:element name="Test">
<xs:complexType>
<xs:sequence>
<xs:element name="Name" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema> WellFormed.xml
<?xml version="1.0" encoding="utf-8"?>
<x:Test xmlns:x="WellFormed">
<x:Name>John Doe</x:Name>
<x:temp/>
</x:Test> 这里WellFormed.xml中的x:temp是没有定义的,我希望能检验出来
public boolean parse(String file) {
boolean bParser = false;
DOMParser parser = new DOMParser();
try {
parser.setFeature("http://xml.org/sax/features/validation", true);
parser.setFeature(
"http://apache.org/xml/features/validation/schema", true);
parser.setFeature("http://xml.org/sax/features/namespaces", true); parser.setProperty(
"http://apache.org/xml/properties/schema/external-schemaLocation",
"WellFormed file:///E:/xml/WellFormed.xsd");
parser.parse(file); bParser = true;
} catch (org.xml.sax.SAXNotRecognizedException e) {
e.printStackTrace();
} catch (org.xml.sax.SAXNotSupportedException e) {
e.printStackTrace();
} catch (org.xml.sax.SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return bParser;
}
希望如果解析正确就返回true,否则返回false,但是不好用,只有一个提示信息,没有错误捕捉的,错误信息如下:
[[Error] WellFormed.xml:4:11: cvc-complex-type.2.4.d: Invalid content starting with element 'x:temp'. No child element is expected at this point.希望大家多多帮忙才是
http://www-900.cn.ibm.com/developerWorks/cn/cnedu.nsf/xml-onlinecourse-bytitle/D081A7C970B335BFC8256C3A00211A1F?OpenDocument搞清楚后也告诉我一下
两种解决思路:
1.处理Exception.两种实现办法:一种是实现ErrorHandler接口另一种是继承DefaultHandler.
2.不处理Exception.直接使用DefaultHandler,然后判断返回的Document节点是否为空。在使用JAXP时,上面的例子将返回null.