草庐IT

java - JAXB 是否支持 xsd :restriction?

所以我希望它像这样转换为Java代码:publicvoidsetAge(intage){if(age120){//throwsomeexception}//settingtheageasitisavalidvalue}在JAXB中可以吗?见过一些WebService客户端stub生成器这样做可能是axis2webservice,但不确定。 最佳答案 JAXB(JSR-222)规范不包括在域模型中生成快速失败逻辑。现在的一种常见做法是以注释(或XML)的形式表达验证规则并对其进行验证。BeanValidation(JSR-303)对此

java - 如何让 Groovy 和 JAXB 一起玩得很好

我试图让JAXB与我的一个groovy类一起工作,但是,它似乎不起作用,但java版本可以。这是代码...以下是场景:如果未注释2和3,则可以正常工作。如果未注释1和4,我会得到:com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException:2countsofIllegalAnnotationExceptionsgroovy.lang.MetaClassisaninterface,andJAXBcan'thandleinterfaces.如果未注释1和5,我会得到:javax.xml.bind.JAXBExceptio

java - 如何使用 JAXB 从 XML 模式生成 Java 枚举?

我正在使用maven插件maven-jaxb2-plugin从XSDSchema文件生成POJO。这工作正常。唯一真正困扰我的是,xml模式枚举没有映射到Java枚举类型中。我的maven插件正在从我称为schemachooser.xsd的文件中生成javapojosschemachooser.xsd:它会生成文件,但不会生成"new"枚举类“MyEnumType”。我是不是用错了绑定(bind)? 最佳答案 如果您想将JAXB注释与XML模式分开,那么您需要使用JAXB绑定(bind)文件:bindings.xmlmyNormal

java - 旧的 JaxB 和 JDK 8 元空间内存不足问题

我们正在开发一个10多年以来开发的业务应用程序(超过100万个LOC)。在切换到JDK8时,我们遇到了JDK8元空间的问题。这似乎与com.sun.xml.ws:webservices-rt:1.4(Metro1.4)中引用的JaxB-Version有关。由于应用程序中的紧密链接以及通过JaxB创建类/实例的遗留问题,因此动态切换旧库并不容易。目前我们正在研究这个问题。我们创建了一个重现此行为的示例程序:importjava.io.ByteArrayInputStream;importjavax.xml.bind.JAXBContext;importjavax.xml.bind.JAX

java - Jaxb:如何解码 xs:任何 XML 字符串部分?

我有一个应用程序使用Jaxb进行XML转换,并使用maven-jaxb2-plugin自动生成类。在我的架构深处,我可以输入“ANY”xml。更新:这更好地描述了我的架构。一些已知的XML包装了一个完全未知的部分(“任何”部分)。....这(通过jaxb)映射到这样的内部类。@XmlAccessorType(XmlAccessType.FIELD)@XmlType(name="",propOrder={"any"})publicstaticclassXmlAnyPayload{@XmlAnyElement(lax=true)protectedObjectany;当我解码整个结构时,没问

java - JAXB 可以分块解析大型 XML 文件吗

我需要解析可能很大的XML文件,其中的模式已经在多个XSD文件中提供给我,因此XML绑定(bind)非常受欢迎。我想知道是否可以使用JAXB分block解析文件,如果可以,如何。 最佳答案 因为代码很重要,这里是PartialUnmarshaller谁将大文件读入block中。可以这样使用newPartialUnmarshaller(stream,YourClass.class)importjavax.xml.bind.JAXBContext;importjavax.xml.bind.JAXBException;importjava

java - JAXB 与 DOM 和 SAX

一段时间以来,我一直在使用DOM来解析我的小型xml文档。在阅读了有关JAXB(http://www.oracle.com/technetwork/articles/javase/index-140168.html)的信息后,我打算使用JAXB代替DOM。请让我知道这是否是正确的方法。 最佳答案 JAXB不能与DOM和SAX直接比较。JavaDOM和SAX解析API是用于解析XML文档的低级API,而JAXB(用于XML绑定(bind)的JavaAPI)是用于将XML元素和属性转换为Java对象层次结构(反之亦然)的高级API。JA

java - 有没有办法处理 JAXB 中多个 .xsd 文件中的重复元素定义?

我有几十个.xsd文件要为其自动生成代码。当我尝试同时生成所有文件时,其中一些文件的名称会发生​​冲突。我只专注于尝试让其中2个发挥作用。当我得到这2个工作时,我会解决其余的问题。但我现在只关注其中两个文件。我无法控制它们,它们来自供应商并遵循“标准”,因此出于多种原因编辑它们不是一种选择。我正在使用maven-jaxb2-plugin来处理这些文件。我添加了一个binding.xjb文件,如matb的答案中的链接和我在网上找到的其他说明中所建议的那样。但是我收到以下错误,没有输出。出现以下错误[ERROR]Errorwhileparsingschema(s).Location[fil

java - JAXB 可以处理 java.time 对象吗?

我知道JAXB(JavaArchitectureforXMLBinding)可以编码/取消编码java.util.Date对象,如thisanswerbyBlaiseDoughan中所示.但是新的java.timepackage呢?Java8中的对象,如ZonedDateTime?是否已更新JAXB以处理这种新的内置数据类型? 最佳答案 在JavaSE8中,JAXB尚未更新以支持java.time类型。确实有一个issue在引用实现中与此相关。您需要创建和使用XmlAdapter处理这些类型。使用类似于Joda-Time的方法如本帖

java - JAXB, XJC -> 创建多个类文件

我是第一次使用JAXB和XJC。我想从XML文件生成Java类,所以我使用thisonlinehelper从XML文件生成架构。之后我只是使用这个命令行来生成Java类:xjcmyschema.xsd它可以工作,但我只收到一个Java文件和其中的许多静态类。请问这是否可以生成许多java文件,每个文件只包含一个类?谢谢 最佳答案 默认JAXB(JSR-222)将为嵌套的复杂类型创建静态内部类以防止类名冲突。您可以使用外部绑定(bind)文件来禁用此行为。binding.xml绑定(bind)文件允许您自定义如何从XML模式生成Jav