`

spring xercesImpl xml 解析问题

 
阅读更多

spring xercesImpl xml 解析问题

分类: spring 1248人阅读 评论(0) 收藏 举报
 
 

问题描述:

jboss应用服务器,使用spring

无法启动服务,错误日志:

[org.apache.xerces.jaxp.DocumentBuilderFactoryImpl@155d3a3] does not support XML Schema. Are you running on Java 1.4 or below with Apache Crimson? Upgrade to Apache Xerces (or Java 1.5) for full XSD support.

 

问题解决:

1.确定jdk版本问题,应该是jdk1.5;

2.确认依赖包中的 xercesImpl.jar 和 xml-apis.jar 版本是否一致,可以下载新版本测试。

 

问题原因:

应用的WEB-INF/lib中 xercesImpl.jar 和 xml-apis.jar没有问题;

但是,jboss的lib中 存在的 xercesImpl.jar 和 xml-apis.jar两个版本不一致,替换为一致的版本;

jboss的lib中存在 旧版的 xerces.jar 包,可能造成冲突,打开xercesImpl.jar,发现 xercesImpl已经包含了 xerces.jar的内容,删除xerces.jar。

正常启动服务。

 

 

以下是转载有关 xml解析的知识:

 

 

Unable to validate using XSD異常的解決

[org.apache.xerces.jaxp.DocumentBuilderFactoryImpl@155d3a3] does not support XML Schema. Are you running on Java 1.4 or below with Apache Crimson? Upgrade to Apache Xerces (or Java 1.5) for full XSD support.
這個問題是在解析xml時出現的問題,很明顯,是parser不支持schema,只支持低版本的dtd,兩種可能性,一種你使用的是只支持dtd解析的 parser,另一種就是,你的類路徑中包含了不同版本的xml-api或parser,比如:你使用的是j2ee1.4的xml-api,而又在類路徑中加入了xerces.jar

具體的情況可能不同,你分析一下自己引入的jar

 

 

 

 

由xercesImpl.jar引出的问题

在项目进行中,由于使用JDK1.4,在解析xml过程中,抛了一个xml的解析异常,在网络搜索之后,发现问题的是缺少xerces.jar所致,由于在JDK1.4中没有集成xerces.jar,所以需要在使用的lib中加入该 jar,但是在JDK1.5中已经集成了xerces类似的解析器。

1 xerces.jar的问题由来:

1.1 XML DTD( Document Type Definition)和XSD(W3C XML Schema Definition)都属于描述和规范XML文档结构、约束的XML模式语法语言。

1.2 XML DTD(XML的文档类型定义)是近几年来XML技术领域所使用的最广泛的一种模式。但是,由于XML DTD并不能完全满足XML自动化处理的要求,例如不能很好实现应用程序不同模块间的相互协调,缺乏对文档结构、属性、数据类型等约束的足够描述等等,所以W3C于2001年5月正式推荐XML Schema为XML 的标准模式。显然,W3C希望以XML Schema来作为XML模式描述语言的主流,并逐渐代替XML DTD。

xsd官网:http://www.w3school.com.cn/schema/index.asp

1.3 xml模式与xml格式

XML 模式是指用来描述XML结构、约束等因素的语言,例如XML Schema、XML DTD、XDR,SOX等等。XML格式则是XML文档本身所具有的格式。本文以XML Schema来代表W3C所推荐的XML Schema模式标准,而以"XML模式"来代表所有的XML模式描述语言。

从模式的描述语言来说,XML Schema和XML DTD都属于语法模式。与概念模式不同,语法模式在对同一事物描述时,可以采用不同的语法,例如在对关系模式描述时,无论是使用XML Schema还是XML DTD,都既可以用元素也可以用属性来描述关系模式的列。

模式必须以某种格式来表示,XML Schema的格式与XML DTD的格式有着非常明显的区别,XML Schema事实上也是XML的一种应用,也就是说XML Schema的格式与XML的格式是完全相同的,而作为SGML DTD的一个子集,XML DTD具有着与XML格式完全不同的格式。这种区别会给XML Schema的使用带来许多好处:

  1. XML用户在使用XML Schema的时候,不需要为了理解XML Schema而重新学习,节省了时间;
  2. 由于XML Schema本身也是一种XML,所以许多的XML编辑工具、API 开发包、XML语法分析器可以直接的应用到XML Schema,而不需要修改。
  3. 作为XML的一个应用,XML Schema理所当然的继承了XML的自描述性和可扩展性,这使得XML Schema 更具有可读性和灵活性。
  4. 由于格式完全与XML一样,XML Schema除了可以像XML一样处理外,也可以同它所描述的XML文档以同样的方式存储在一起,方便管理。
  5. XML Schema与XML格式的一致性,使得以XML为数据交换的应用系统之间,也可以方便的进行模式交换。
  6. XML有非常高的合法性要求,XML DTD对XML的描述,往往也被用作验证XML合法性的一个基础,但是XML DTD本身的合法性却缺少较好的验证机制,必需独立处理。XML Schema则不同,它与XML有着同样的合法性验证机制。

2 DTD与XSD的应用区别

一个简单的 XML 文档:

请看这个名为 "note.xml" 的 XML 文档:

<?xml version="1.0"?> <note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note>

DTD 文件

下面这个例子是名为 "note.dtd" 的 DTD 文件,它对上面那个 XML 文档的元素进行了定义:

<!ELEMENT note (to, from, heading, body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)>

XML Schema

下面这个例子是一个名为 "note.xsd" 的 XML Schema 文件,它定义了上面那个 XML 文档的元素:

<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.w3school.com.cn" xmlns="http://www.w3school.com.cn" elementFormDefault="qualified"> <xs:element name="note"> <xs:complexType> <xs:sequence> <xs:element name="to" type="xs:string"/> <xs:element name="from" type="xs:string"/> <xs:element name="heading" type="xs:string"/> <xs:element name="body" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
  

对 DTD 的引用

此文件包含对 DTD 的引用:

<?xml version="1.0"?> <!DOCTYPE note SYSTEM "http://www.w3school.com.cn/dtd/note.dtd">

 <note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note>

对 XML Schema 的引用

此文件包含对 XML Schema 的引用:

<?xml version="1.0"?> <note xmlns="http://www.w3school.com.cn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3school.com.cn note.xsd"

> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note>
3 用法参考:http://www.w3school.com.cn/schema/schema_simple.asp









引自:http://blog.csdn.net/chen_shuqing/archive/2009/12/14/5003582.aspx 陈树青的专栏

 谢谢原创作者。
分享到:
评论

相关推荐

    xfireSpring集成需要的Jar包

    3. **XML解析库** - 如`xercesImpl.jar`和`xml-apis.jar`,它们用于处理XML文档,是Xfire处理SOAP消息的基础。 4. **AOP Alliance** - `aopalliance.jar`,它是AOP框架之间的一个接口定义,使得Spring的AOP可以与...

    xfire集成spring的jar包

    4. **xercesImpl-2.6.2.jar**:Xerces是一个开源的XML解析器,用于解析XML文档,是处理XML的基础组件。 5. **xfire-all-1.2.6.jar**:XFire的核心库,包含了开发和部署Web服务所需的所有组件,如SOAP绑定、WS-...

    spring中用到的ant包

    7. **xml-apis.jar** 和 **xercesImpl.jar**:提供了XML解析的支持,对于处理XML配置文件至关重要。 在Spring项目中使用Ant,开发者可以定义自定义的构建过程,例如: - **编译源代码**:使用`javac`任务编译Java...

    xfire集成spring必须要的jar

    还有可能需要`xercesImpl.jar`和`xml-apis.jar`,它们是XML解析器的相关库。 集成步骤通常包括: 1. 添加以上提到的JAR文件到项目类路径。 2. 在Spring配置文件中定义XFire服务,使用`&lt;xfire:service&gt;`等元素声明...

    compass+ssh2集成 hibernategps问题

    3. `xercesImpl-2.6.2.jar`:Xerces是一个开源的XML解析器,用于处理XML文档。 4. `xfire-all-1.2.6.jar`:XFire是早期的Web服务实现,提供了SOAP和RESTful服务的支持。 5. `wss4j-1.5.1.jar`:Web Services ...

    Quartz Spring整合——附带webservice Demo

    6. **XML 处理**:文件列表中的 `xercesImpl` 和 `xmlsec` 提供了 XML 解析和安全处理的功能,它们在处理 SOAP 消息或者进行 XML 加密解密时可能会用到。 7. **网络通信**:`commons-httpclient` 和 `jetty-util` ...

    网页开发包

    6. **Spring框架中的XML配置**:Spring框架允许使用XML配置文件来定义bean和依赖关系,理解XML Schema有助于更好地理解和维护Spring配置。 7. **Web服务**:在SOAP(Simple Object Access Protocol)类型的Web服务...

    struts2.1.2+spring2.0.8+hibernate3.3.1架构需要的jar包

    6. xercesImpl-2.8.1.jar:Xerces是一个开源的XML解析器,用于处理XML文档的解析和验证。在Java应用程序中,它帮助处理XML配置文件。 7. freemarker-2.3.12.jar:FreeMarker是一个模板引擎,常用于Struts2视图层,...

    SSH整合所需jar包

    - `xml-apis.jar`:XML API库,提供了标准的XML解析接口。 此外,还有`servlet.jar`、`sqljdbc.jar`等标准的Web应用和数据库连接相关的jar包。特别提到的是,对于XML处理,除了上述的`dom4j-1.6.1.jar`外,还提到了...

    java调用webservice最精简的jar包

    如`xercesImpl.jar`是Xerces XML解析器的实现,`xml-apis.jar`包含了XML API的基本接口。 5. **HTTP客户端库**:调用Web服务通常涉及HTTP通信,因此需要HTTP客户端库,如`httpclient.jar`和`httpcore.jar`(来自...

    面向服务的架构用XFIRE配置webService服务;

    3. xercesImpl-2.6.2.jar:Xerces是开源的XML解析器,用于处理XML文档。 4. wss4j-1.5.1.jar:Web Services Security for Java,提供了安全相关的API,如数字签名、加密和身份验证。 5. wstx-asl-3.2.0.jar:...

    web service开发包

    5. **xercesImpl-2.6.2.jar**:Xerces是Apache的一个XML解析器实现,它实现了XML 1.0和1.1规范,以及相关的DOM、SAX和XML Schema接口。这个库对于处理XML文档至关重要。 6. **xfire-all-1.2.6.jar**:XFire是早期的...

    xfire 初体验

    3. **xercesImpl-2.6.2.jar**:Xerces是Apache组织提供的XML解析器,用于处理XML文档,是Xfire解析WSDL和XML Schema文档的重要组件。 4. **xfire-all-1.2.6.jar**:Xfire的核心库,包含了所有必需的组件,如服务...

    ssh lib包2

    10. **xercesImpl-2.6.2.jar**:Xerces是Apache的一个XML解析器,实现了W3C的DOM、SAX和XML Schema规范,用于解析和验证XML文档。 这些库组合在一起,可以构建出一个功能强大的Java应用,包括SSH连接、数据库操作、...

    busnessMIS_JAR包

    2. **xerces.jar** 和 **xercesImpl.jar**:这两个文件与Xerces XML解析器有关。Xerces是Apache软件基金会的一个开源项目,提供高性能的XML解析功能。xerces.jar可能是API接口,而xercesImpl.jar是其实现。它们一起...

    xfire lib目录所有的jar包

    5. **xercesImpl-2.6.2.jar**:Xerces是Apache的一个XML解析器,负责解析XML文档。这个版本是Xerces的早期版本,为XFire提供了XML解析能力。 6. **jaxb-impl-2.0.1.jar**:与`jaxb-xjc-2.0.1.jar`一起,它们构成了...

    xfire webservice集成最少8个包

    3. **XML解析包**:XML是Web服务的主要数据交换格式,因此需要一个XML解析库,如`xfire-xmlbeans.jar`或`xfire-xercesImpl.jar`,它们分别使用XMLBeans或Xerces实现XML文档的解析和生成。 4. **JAXB绑定包**:Java ...

    jqgrid and java

    `xercesImpl.jar`是一个XML解析器,用于处理XML文档;`mvel.jar`则是一个轻量级的脚本语言,可以在Java代码中进行表达式计算,有时可能会用于动态生成JSON数据。 总的来说,jqGrid与Java的整合涉及到前端展示、后端...

    XFire完整jar包

    5. **xercesImpl-2.6.2.jar**:这是一个XML解析器,用于读取和处理XML文档。Xerces是Apache软件基金会的一个项目,提供高性能和符合标准的XML处理。 6. **xfire-all-1.2.6.jar**:这是XFire的核心库,包含了所有...

Global site tag (gtag.js) - Google Analytics