草庐IT

java - 使用 xsi :nil and attributes in .Net/Jaxb 创建 XML 元素

我有一个XMLSchema说:            ...              这意味着我必须能够创建一个如下所示的实例:根据XMLSchema规范,我可以(http://www.w3.org/TR/xmlschema-0/#Nils)。根据Microsoft.Net,我不能(http://msdn.microsoft.com/en-us/library/ybce7f69(v=vs.100).aspx),据其他人告诉我,Jaxb也不能。.Net和Jaxb都不兼容吗?我可以以某种方式覆盖以获得所需的输出吗? 最佳答案 在JAX

java - 如何 "canonicalize"任意 xml(通过重新排序所有属性和元素)

我有一些代码可以从一组带有jaxb注释的类生成*.xsd文件:JAXBContextcontext=//buildfromsetofclassesfinalDOMResultresult=newDOMResult();//willholdxsdoutputcontext.generateSchema(newSchemaOutputResolver(){@OverridepublicResultcreateOutput(StringnamespaceUri,StringsuggestedFileName)throwsIOException{returnresult;}});Documen

java - 如何使 JAXB 注释并提供 equals/hashcode 实现

我正在尝试使用JAXB从WSDL生成类,这些类用Jsr303Annotations注释并提供equals和hashcode的实现。这两者都是分开工作的,但是当我尝试同时满足这两个要求时,我得到了错误:发生内部错误:“构建工作区”。com.sun.tools.xjc.Plugin:Providerorg.jvnet.jaxb2_commons.plugin.fixjaxb1058.FixJAXB1058Plugin无法实例化:java.lang.NoClassDefFoundError:org/jvnet/jaxb2_commons/reflection/util/Accessor/p>

java - JAXB 编码,忽略 nillable

我有一个带有注释nillable=true的变量的类,我不希望它们出现在xml中。该类是从无法更改的xsd生成的。例子:一个看起来像这样的类:publicclassHi{...@XmlElement(name="hello",nillable=true)protectedLonghello;...}对象被JAXBContext创建的编码器编码。生成的xml变成:......Hi类是从无法更改的xsd生成的。我的问题是,如果“hello”为空,是否有办法让编码器忽略可空参数并且不向xml输出任何内容? 最佳答案 一种方法是实现deco

java - 将 CSV 映射到模型

我正在用Java编写一个简单的CSV到XML处理器。我正在使用JAXB从DTD生成java模型。我需要将CSV格式处理成这个模型,然后将其编码成符合DTD的XML。我正在使用JAXB将数据从Java模型编码到XML。我必须自己编写CSV模型映射。目前,我想不出比通过读入CSV并将其分配给代码中的模型直接将CSV映射到Java模型更好的解决方案。你能想到一个更优雅的解决方案吗?也许一些可重用的映射库等?提前致谢。 最佳答案 我通常使用flatpack库将CSV解析为Java模型:FlatpackProjectonsourceforge

java - JAXB:解码并不总是填充某些类?

我有一个JAXB类生成问题,希望得到一些帮助。这是我的问题根源的XML部分.........现在这将生成JAXBElement由于choice类型用maxOccurs>1.我想避免这些,所以我通过修改代码以使用“Wrapper”元素并移动maxOccurs来做到这一点。直到序列标签如下...对于类生成,看起来效果很好——JAXB元素被包装器列表替换为String(即List)并编译正常。但是,当我将实际的XML数据解码到生成的类中时,包装类中的数据未填充-但JAXB不会抛出异常。我的问题是:我是否需要以不同的方式更改架构才能使其正常工作?或者我可以在生成的代码或注释中添加/更改/删除某

Java xml 序列化 null 处理

我正在使用JAXB2将对象序列化为xml。有什么方法可以强制它像下面的示例一样创建整个对象结构,即使它没有填充到支持对象中也是如此?即使没有设置受让人属性,这也是我的预期结果。text我使用以下代码进行序列化:JAXBContextjc=JAXBContext.newInstance(dataObject.getClass());Marshallermarshaller=jc.createMarshaller();marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,true);marshaller.setProperty(Ma

xml - JAXB 2 注释和 XSD

在JAXB1.0时代,使用java对象、XSD和XML的推荐方法是从XSD定义开始,使用JAXB从XSD生成java类并维护XSD。但现在有了JAXB2.0注释,从java类生成XSD非常方便。是否建议采用从Java类和注释开始并生成XSD的方法?谢谢, 最佳答案 我建议开发人员从对象模型入手并对其进行注释以获得所需的XML。这为您在创建应用程序时提供了更大的灵active(例如还使用JPA将映射到数据库)。当您想要共享结构时(例如作为WSDL的一部分),您只需要生成XML模式。查看我的博客以获取从模型类开始的JAXB示例:http

ruby - 是否有用于 Ruby(如 JAXB)的 XML 绑定(bind)库?

Ruby是否有任何工具可以将XML(SOAP)转换为对象,反之亦然?如果可能,从XML模式(XSD)生成所有对象(模型)。我曾多次使用JAXB工具(Java语言),我需要类似的东西:从XML模式生成模型轻松创建用于序列化和反序列化的组件轻松创建用于将对象存储到数据库的组件如果可能,根据该模式生成数据库表你知道这方面的工具吗?您会推荐什么方法来完成这样的任务?感谢您的回答。 最佳答案 Savon应该涵盖其中的SOAP部分。 关于ruby-是否有用于Ruby(如JAXB)的XML绑定(bin

java - 如何使用 JAXB 编码消除元素/属性中自动生成的命名空间前缀

问题如何在使用JAXB编码时消除出现在所有元素和属性上的自动生成的命名空间前缀我已经展示了编码后的当前XML输出和预期输出。详情我正在使用JDK1.6更新21提供的默认JaxB实现(Metro)。我的XSD文件如下所示。我使用xjc为此XSD生成Java类,我不想添加/更改任何生成的Java类中的注释,以便我可以继续使用xjc。在代码中,这就是我编码的方式......我使用ObjectFactory等创建MYJAVAOBJECTREE的地方......JAXBContextjcDXD=JAXBContext.newInstance(MDASJ.class);QNameqn=newQNa