草庐IT

java unmarshalling - NULL 值或缺少标记?

我在一个由解码器设置的类中有一个可为空的字段:@XmlElement(name="value",nillable=true)privateBigDecimalvalueVariable;我的问题是我无法判断xml元素是否已被省略或设置为nil:一个。元素XML文件中缺少它,因此它不是必需的。=>(valueVariable==null)为真B.XML文件包含=>(valueVariable==null)为真如果值为xsi:nil,我如何判断一个非字符串变量?还是标签丢失了?更新您可以看到2个好的解决方案,我更喜欢其中一个,但另一个也可以! 最佳答案

java - 使用 JAXB 解码具有不同/动态名称的元素

我正在解析具有如下节点的XML文档:..................元素data1、data2、data3总是一致的。只有父标记不同。在我的对象模型中,我有一个对象代表所有这些情况。在事先不知道元素名称的情况下,如何让JAXB处理这种情况?@XMLAnyElement匹配所有对象,但没有创建适当类型的对象;我得到了一个Node对象列表,而不是我的对象。我的对象目前看起来像:publicclassMyObject{protectedStringotherData;@XmlAnyElement@XmlElementWrapper(name="objects")protectedList

java - 向 JAXB 元素添加属性

我正在努力进行一些JAXB解析,需要一些指导。本质上,我正在尝试向我已经使用@XmlElement声明为元素的类变量添加属性。到目前为止,任何使用@XmlAttribute的尝试都会在类级别设置属性。我目前得到的是:IwishthiselementhadanattributeIwishthiselementhadanattributetoo我想这样做:ThisisbetterSoisthis我看到其他帖子使用@XmlValue将属性添加到单个元素,但是当您有元素时这不起作用,并且不会对多个元素起作用。有没有人想过如何实现这一点?谢谢!杰森 最佳答案

java - 如何通过JAXB xml解析获取特定元素?

我已经使用JAXB解析XML。如何通过JAXBxml解析获取特定元素(即子节点)而不将该元素解析为节点。ANXXXNNNANNNXXXXXTBNNXXXT我已经像这样解码了,它工作正常。为了性能,我不希望元素作为节点。还有其他方法吗?UnmarshallerjaxbUnmarshaller=jaxbContext.createUnmarshaller();DocumentBuilderFactorydbf=DocumentBuilderFactory.newInstance();dbf.setNamespaceAware(true);DocumentBuilderdb=dbf.newD

java - 使用 JAXB 读取 Xml 文件

我想读取一个xml文件(如下所示),但我得到了一个Execption。你能帮我解决这个问题吗?这是我要读取xml文件的代码:publicclassReadXMLFilewithJAXB{privatestaticListcustomer;@SuppressWarnings("unchecked")publicstaticvoidmain(String[]args){try{Filefile=newFile("c:\\FirstXML.xml");JAXBContextjaxbContext=JAXBContext.newInstance(Log.class);Unmarshallerj

java - JAXB 绑定(bind) XML 模式的当前 URL 是什么?

我正在尝试使用xjc从XMLDTD自动生成Java类。生成的Java类必须是可序列化的。帮助解决这个问题的文章添加了指向使用http://java.sun.com/xml/ns/jaxb处架构的绑定(bind)文件的指针。用于JAXBnamespace,但该URL不再有效。网址http://java.sun.com/xml/ns/jaxb重定向到http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/jaxb/index.html反过来说http://java.sun.com/xml/ns/jaxb是最新的URL,但链接到http:

java - 如何在 JAXB 中使用 hashmap 属性?

我已经摆弄JAXB一段时间了,我需要生成如下所示的xml...根元素的属性是动态的,可能来自属性文件或模板。将它放入如上所示的结构中的最佳方法是什么?我正在为动态变量使用散列图,然后尝试使用XmlJavaTypeAdapter对其进行映射,我能做的最好的就是Valuejaxb中是否有一种方法可以说使用hashmap的键作为属性名称,并将该键的值用作xml中该属性的值?或者,如果您认为有更好的方法,我愿意提供建议。我正在考虑使用jaxb的编码器单独添加Root节点。但是,如果我可以只使用jaxb的适配器,那就更好了。谢谢! 最佳答案

java - JAXB Ant Task - 从哪里获得 JAR?

有许多资源可以解释JAXBAnt任务。例如Oracle本身:http://download.oracle.com/docs/cd/E17802_01/webservices/webservices/docs/1.6/jaxb/ant.html.然而,显然,没有任何来源似乎提供了JAXB库,尤其是jaxb-xjc.jar,或者至少给出了在哪里下载它的提示。我的JDK1.6.0_24的XJCJABX编译器是2.1.10版本。JDK中似乎没有提供任何JAXB库。我尝试了诸如jaxb-builderEclipse插件(http://sourceforge.net/projects/jaxb-b

java - 如何从 JAXB 生成的 boolean getter 中删除 "is"

JAXB正在生成如下方法:isIsBuyNow()和isHasBuyNow()当我想要isBuyNow()或hasBuyNow()时。生成的类方法很多,单独自定义生成的方法名是行不通的。我首先想到的是用于自定义JAXB的某种正则表达式规则,但我找不到任何更改方法名称的通用方法。 最佳答案 您可以使用外部绑定(bind)文件来自定义您的属性名称。为了让JAXB将方法识别为属性,它必须遵循以get或is开头的约定(对于boolean类型)。schema.xsdbindings.xml在下面的绑定(bind)文件中,我们为名为is-buy

java - 使用 xmldsig 签名的 JAXB 编码

是否可以创建自动将数字签名添加到xml内容的jaxb编码器。例如,如果我定义了一个类:@XmlRootElement@XmlAccessorType(XmlAccessType.FIELD)publicclassTest{@XmlElementprivateStringinfo;publicStringgetInfo(){returninfo;}publicvoidsetInfo(Stringinfo){this.info=info;}}我的xml由marshaller生成:value我希望它看起来像:4432kZ6c2JPwP3A=Mvbd4603knhh2LZTyE1MIiEF7N