- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个用 @XmlElement(required=false, nillable=true)
注释的 java 属性.当对象被编码为 xml 时,它总是以 xsi:nil="true"
输出属性。
是否有 jaxbcontext/marshaller 选项来指示编码器不写入元素,而不是使用 xsi:nil
写入元素?
我已经寻找了这个问题的答案,也看了代码,afaics,它总是会写 xsi:nil
如果 nillable = true
.我错过了什么吗?
最佳答案
如果该属性带有 @XmlElement(required=false, nillable=true)
注释如果值为空,则用 xsi:nil="true"
写出.
如果你只用 @XmlElement
注释它你会得到你正在寻找的行为。
导入 javax.xml.bind.annotation.XmlAccessType;
导入 javax.xml.bind.annotation.XmlAccessorType;
导入 javax.xml.bind.annotation.XmlElement;
导入 javax.xml.bind.annotation.XmlRootElement;
示例
鉴于以下类:
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Root {
@XmlElement(nillable=true, required=true)
private String elementNillableRequired;
@XmlElement(nillable=true)
private String elementNillbable;
@XmlElement(required=true)
private String elementRequired;
@XmlElement
private String element;
}
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
public class Demo {
public static void main(String[] args) throws Exception {
JAXBContext jc = JAXBContext.newInstance(Root.class);
Root root = new Root();
Marshaller marshaller = jc.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.marshal(root, System.out);
}
}
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<root>
<elementNillableRequired xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<elementNillbable xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
</root>
关于Jaxb marshaller 总是写 xsi :nil (even when @XmlElement(required=false, nillable=true)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5897785/
有没有办法让 JAXB 正确打印 xmlns:xsi和 xsi:nill在 nillable @XmlRootElement ? public class XmlValueTest { pub
我有一个客户要求我的 required字符串元素有 nillable="false" , 目前 wsdl 中的所有字符串都会nillable="true" 出来, IE: 我该如何更改 nillab
为了避免值被包裹在 JAXBElement ,我使用以下绑定(bind)文件从 XSD 生成类: 但是,nillable 有问题。字段。对于以下 XSD:
我有一个无法修改的简单XSD(由第三方提供)。我正在尝试使用 XJC 为 XSD 生成 java 类。非常简化的 XSD 是: 我想将一个对象编码为 XML,以便将元素设置为 nil。当我
我使用 JAXB 2.2.4 生成具有以下绑定(bind)文件的 Java 代码: 不幸的是,生成的代码有一个 nillable = true 注释。请参阅以下示例: @XmlElement(n
对于我的 Web 服务请求,我想区分请求的 null 值和缺少的标记。换句话说,我需要以下元素定义: 我开发了 web 服务代码优先,所以我使用 JAXBElementRef 定义了元素: @Xml
我有一个带有注释 nillable=true 的变量的类,我不希望它们出现在 xml 中。该类是从无法更改的 xsd 生成的。 例子:一个看起来像这样的类: public class Hi {
我正在努力获取一个 xml 文件以根据 XSD 架构进行验证,但我在验证时遇到了问题。每次我验证时都会收到错误提示 “模式有效性错误:元素‘{http://services.website.com/P
我刚和我的同事发现了一个关于 JAXB 的奇怪案例。 我用 @XmlElement(required = true) 声明了一个字段,默认为 nillable = false。 但我无意中试图编码一个
我正在创建一个 Web 服务并与 Axis2 生成契约(Contract)(WSDL),就像 POJO Web 服务一样,这反过来又给我这样的输出 而所需的是这个 是否有任何注释可以让我做到这一点
我正在重构一些代码以使用 JAXB 和反射将代码输出到客户端,它目前正在使用 XMLWriter 并且每次都手动创建标签。 我遇到的问题是,由于客户端的限制,对于 java 类中的任何空字段,我需要在
的文档 required 说: If required() is true, then Javabean property is mapped to an XML schema element dec
我反复将元素设置为 minOccurs="0" 和 nillable="true"。 我正在阅读 this文章和现在在我的 WSDL 中,我不确定同时使用两者是否值得。这篇文章提供了一个很好的示例来表
在我的 wsdl 中我有一个元素: 我知道 nillable true 允许空值,这是否意味着它可以允许 xml 空标记?即 最佳答案 设置nillable="true"意味着 标记可以如下所示:
这是我想根据以下 XML 架构验证的 xml 文件。 0123987654 In front of PNB 2002-09-24 XML 架构 在验证过程中,虽然
相当于什么 从 XML 到 JAVA?我正在研究 SOAP,所以我不得不问。 还有类似的元素 Java 中的对象需要这些吗?或者我可以直接为它们分配空值吗? 最佳答案 在 Java 中,没有像
Java 类 @XmlElement(nillable = true) 中的变量前面是什么意思。是不是说xml中的字段是可选的? 例如:@XmlElement(nillable = true) pro
这是一个错误吗? 我的 xsd 架构中需要 nillable = "true"。从我的 java 代码生成这样一个元素的唯一方法是使用 @XmlElement(nillable = true),对吗?
我正在使用 JAX-WS 创建 Web 服务。它是使用 sun-jaxws.xml 从 @WebService 带注释的类创建的。 我对某些字段有一个新要求,既可选又可为空。对于这样的字段,如果传递了
目前我正在使用 javax.xml.validation.Validator 来根据给定的 xsd 验证 xml。 Sample xsd: xml : 在上面的例子
我是一名优秀的程序员,十分优秀!