草庐IT

Java/XSD 解析

我怀疑是否有这样的事情,但我还是想问:有谁知道Java中是否有一个库可以读取xsd文件并“创建”定义的元素,例如以字符串格式在代码中使用?例如。阅读以下模式:并具有以下格式的字符串:自动工具做类似的事情,即解析WSDL并从类型部分创建例如JAXB类,这些类可以是模式中定义的元素的实例。有没有图书馆可以做到这一点?更新:例如,在Eclipse中,当为Web应用程序创建XML描述符时,它会显示一个树形表,其中包含所有必需的元素,供用户根据模式填写。他们是怎么做到的呢?我想他们会解析jars中包含的xsds非常欢迎任何输入。谢谢! 最佳答案

Java(JAXP) DocumentBuilder的XML解析差异

有什么区别吗DocumentBuilder.parse(InputStream)和DocumentBuilder.parse(InputSource)?我只能发现对于第一种情况,解析器会从流中检测编码,因此它更安全,而在后者中我不确定是否需要设置编码。我应该注意的任何其他要点(例如性能)? 最佳答案 主要区别在于,第一个基于InputStream的实现,允许您仅从二进制源读取XML内容。界面。即:直接来自文件(使用FileInputStream)、打开的套接字(来自Socket.getInputStream())等。第二个,Docu

java - SAXParserFactory 与XMLReaderFactory 的区别。选择哪一个?

它们似乎都有相同的目的(创建一个XMLReader)。一些教程包含一个,一些包含另一个。SAXParserFactory:http://docs.oracle.com/javase/7/docs/api/javax/xml/parsers/SAXParserFactory.html似乎更可配置更多样板代码官方支持的api示例代码://SAXParserFactorySAXParserFactoryfactory=SAXParserFactory.newInstance();SAXParserparser=factory.newSAXParser();XMLReaderreader=pa

java - 在 GWT 中导入 Gears API 时找不到 org.apache.xerces.jaxp.SAXParserFactoryImpl

我创建了一个GWT使用Eclipse的项目运行良好(我能够在托管模式和GoogleAppEngine上运行它),直到我尝试导入GearsAPIforGoogleWebToolkit.将以下行添加到我的java源文件后:importcom.google.gwt.gears.client.geolocation.Geolocation;当我尝试编译时出现以下错误:19-Jun-20093:36:09AMcom.google.apphosting.utils.jetty.JettyLoggerwarnWARNING:failedcom.google.apphosting.utils.jett

java - 使用 XSD、目录解析器和用于 XSLT 的 JAXP DOM 验证 XML

背景使用JDK6将XML文件加载到DOM.必须根据XSD验证XML文件。XSD文件位置因运行环境而异。确保XML可以针对XSD进行验证,无论目录结构如何,都需要目录解析器。一旦XML得到验证,就可以对其进行转换。我的理解是DocumentBuilderFactory可用于配置此类验证。这是通过使用DocumentBuilder实现的。用XMLCatalogResolver查找与XML文件关联的XSD文件(以及任何包含的文件)。关于使用目录派生的XSD验证XML文档的问题包括:JAXP-debugXSDcataloglookupJavaXMLSchemavalidatorwithcust

java - 在 Java 中直接使用 JAXP 而不是 DOM/SAX 有什么好处?

作为XML解析的新手,我正在尝试了解不同的技术。针对不同需求的不同技术数量令人困惑:W3C-DOMXOMjDomJAXPJAXBDOM萨克斯StAXTrAX伍德斯托克斯dom4j深红色VTD-XMLXerces-J蓖麻流媒体...仅举几例。DOM和SAX似乎是解析和处理XML的低级方法,因此我决定专注于在不同来源中提到最多的低级方法:DOM、SAX、JAXP。我在stackoverflow上阅读了一般的解析器,JAXP-TutorialfromOracle,XML-Parsingingeneral,等等。我也试过一些教程,比如thisgermanone和其他人。我现在对DOM和SAX有

Java 和 XML (JAXP) - 缓存和线程安全怎么样?

我想知道在使用JavaAPIforXML处理时,哪些对象可以被重用(在相同或不同的文档中),JAXP:DocumentBuilderFactoryDocumentBuilderXPath节点ErrorHandler(编辑:我忘了这必须在我自己的代码中实现,抱歉)建议缓存这些对象还是JAXP实现已经缓存它们?这些对象的(再)使用是否线程安全? 最佳答案 重复使用在同一个线程中,这些对象可以并且应该被重用。例如,您可以使用DocumentBuilder来解析多个文档。线程安全DocumentBuilderFactory曾经明确表示它不是

Java 和 XML (JAXP) - 缓存和线程安全怎么样?

我想知道在使用JavaAPIforXML处理时,哪些对象可以被重用(在相同或不同的文档中),JAXP:DocumentBuilderFactoryDocumentBuilderXPath节点ErrorHandler(编辑:我忘了这必须在我自己的代码中实现,抱歉)建议缓存这些对象还是JAXP实现已经缓存它们?这些对象的(再)使用是否线程安全? 最佳答案 重复使用在同一个线程中,这些对象可以并且应该被重用。例如,您可以使用DocumentBuilder来解析多个文档。线程安全DocumentBuilderFactory曾经明确表示它不是

java - 如何找出正在使用的 JAXP 实现以及它是从哪里加载的?

我想提供有关正在使用的JAXP实现以及从哪个JAR文件加载它的诊断信息。实现此目的的一种方法是在例如DocumentBuilderFactory的实例中创建,然后检查该类的属性:privatestaticStringGetJaxpImplementation(){DocumentBuilderFactorydocumentBuilderFactory=DocumentBuilderFactory.newInstance();Classc=documentBuilderFactory.getClass();Packagep=c.getPackage();CodeSourcesource=

java - 如何找出正在使用的 JAXP 实现以及它是从哪里加载的?

我想提供有关正在使用的JAXP实现以及从哪个JAR文件加载它的诊断信息。实现此目的的一种方法是在例如DocumentBuilderFactory的实例中创建,然后检查该类的属性:privatestaticStringGetJaxpImplementation(){DocumentBuilderFactorydocumentBuilderFactory=DocumentBuilderFactory.newInstance();Classc=documentBuilderFactory.getClass();Packagep=c.getPackage();CodeSourcesource=