草庐IT

xml - 让 JAXB 运行得更快

我有一个8兆的文件。使用JAXB编码需要1082毫秒,使用DOM需要862毫秒,使用SAX需要438毫秒。这是使用JDK1.6的所有默认设置,没有使用额外的配置,例如使用woodstox。为了从JAXB获得更好的性能,我尝试通过以下方式使其使用SAX解析...FileReaderfr=newFileReader("myfile.xml");JAXBContextjc=JAXBContext.newInstance(MyObjectList.class);Unmarshallerunmarshaller=jc.createUnmarshaller();XMLInputFactoryxml

php - 用于 PHP 的 JAXB(PAXB?)

PHP是否有像JAXB这样的框架?我需要一个框架,作为JAXB,从一个对象创建一个XML文件。该框架必须知道如何将对象映射到XML,并在需要时遵守其结构(子对象、列表等)。此外,它还需要进行逆向工程,即将(有效的)XML文件转换为原始对象。换句话说,框架必须能够编码一个对象和解编一个XML文件。我知道JAXB有多棒,但我不能在我目前正在做的这个项目中使用Java,这真的很糟糕。 最佳答案 我认为您正在寻找PHP对象XML序列化器/反序列化器。这可能有帮助:PHPObjectasXMLDocument

java - WAS 8.5 : java. lang.ClassCastException : org. apache.xerces.jaxp.SAXParserFactoryImpl 与 javax.xml.parsers.SAXParserFactory 不兼容

我正在WebsphereApplicationServer8.5中部署J2EEWeb应用程序。Web应用程序有一个与所有第三方库共享的库。所有内部编码库都在WEB-INF/lib文件夹中。问题是只有一些jspsWAS抛出以下异常。我认为它与xercesImpl-2.8.1.jar有关,但我不明白为什么会抛出这个异常,为什么它只抛出一些页面。在tomcat中它运行完美。java.lang.ClassCastException:org.apache.xerces.jaxp.SAXParserFactoryImplincompatiblewithjavax.xml.parsers.SAXPa

java - 使用 JAXP(JEE6) 解析简单的 XML 文档

我想为我的网络应用程序创建一个授权过滤器(以便能够限制对某些页面的访问)。我创建了一个简单的.xml文件,其中包含允许每个用户访问的页面:buyoffer.xhtmlfaq.xhtmlindex.jsplogin.xhtmlmain.xhtmlregistrationSucceded.xhtmlsellerpanel.xhtmlfaq.xhtmlindex.jsplogin.xhtmlmain.xhtmlregistrationSucceded.xhtmlsellerpanel.xhtmlfaq.xhtmlindex.jsplogin.xhtmlmain.xhtmlregistrati

java - 不支持 maxOccurs 大于 5000 的 XMLSchema 的解决方法

我的问题是解析XSD模式,该模式的元素maxOccurs大于5000(但不是unbounded)。这实际上是Xerces(我正在使用,版本2.9.1)或JAXP中的已知问题,如下所述:http://bugs.sun.com/view_bug.do;jsessionid=85335466c2c1fc52f0245d20b2e?bug_id=4990915我已经知道,如果我将我的XSD中的maxOccurs数字从大于5000的数字更改为unbounded,一切都会正常进行。遗憾的是,这不是一个选项在我的情况下(我不能干预XSD文件)。我的问题是:是否有人知道Xerces中针对此问题的其他解

java - 将 XML 目录与内部使用 JAXP 的 Java 库一起使用

我正在使用Apache网络服务xmlrpc库向rpc服务发出请求。该过程中的某处是一个xml文档,其中包含对http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd的DTD引用,库在解析XML时尝试下载。该下载失败并显示503状态代码,因为w3c阻止从Java客户端重复下载这个主要是静态的文档。解决方案是使用XML目录在本地缓存DTD。然而,虽然我可以找到直接在JAXPSAXParser实例上设置EntityHandler以启用目录解析器支持的示例,但我实际上无法访问这里的底层解析器。它只是被xmlrpc库使用。有什么方法可以设置全局属性或告诉

java - 在 JAXP 中使用 XPath 检索 XML 节点和节点属性的值

给定一个如下所示的xml文档:STANDARD300f000-703-GM2-20101109-15502010-12-24T02:25:43Z2010-12-24T02:26:09ZAGENTQMGR我想打印“key”属性和元素的值,如下所示:agentType=STANDARDDestinationTransferStates=AgentStatusPublishRate=300agentVersion=f000-703-GM2-20101109-1550CommandTimeUTC=2010-12-24T02:25:43ZPublishTimeUTC=2010-12-24T02:

java - 如何根据 Java 中的 Schematron 模式验证文档?

据我所知,JAXPbydefaultsupportsW3CXMLSchemaandRelaxNGfromJava6.我可以在schematron.comlinkspage上看到一些API,大部分是实验性的或不完整的。.是否有一种在Java中验证schematron的方法完整、高效并且可以与JAXPAPI一起使用? 最佳答案 Jing支持pre-ISOSchematron验证(请注意,Jing的实现也基于XSLT)。还有一些XSLT实现可以很容易地从Java中调用。您需要确定您感兴趣的Schematron版本,然后获得相应的样式表——

java - JAXP:如何根据 XML 模式验证 org.w3c.dom.Document

如何使用JAXP针对XML模式验证(已解析的)org.w3c.dom.Document? 最佳答案 您可以使用javax.xml.validation用于此的API。SchemaFactorysf=SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);URLschemaURL=//TheURLtoyourXMLSchema;Schemaschema=sf.newSchema(schemaURL);Validatorvalidator=schema.newValid

java - JAXP、JDOM、DOM4J 和 XERCES 有什么区别?

它们有什么区别?据说JAXP只是一个APISpecification,JDOM和DOM4J实现了,对不对?而且它们都需要一个XML解析器,就像XERCES一样,对吗?提前致谢! 最佳答案 JAXP(JSR-206)是一组用于JavaXML解析器的标准API。它涵盖以下领域:DOM(org.w3c.dom包)SAX(org.xml.sax包)StAX/JSR-173(java.xml.stream)XSLT(javax.xml.transform)XPath(javax.xml.xpath)验证(javax.xml.validatio