- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何在EclipseLink MOXy 中使用@XmlPath
注释实现@XmlElement.required
标志| 2.4.1版本?
最佳答案
您可以使用 @XmlElement(required=true)
和 @XmlPath
注释来指定叶元素是必需的。
客户
下面是一个示例域模型,其中两个字段用 @XmlPath
映射,其中一个字段我还使用了 @XmlElement(required=true)
。
package forum13854920;
import javax.xml.bind.annotation.*;
import org.eclipse.persistence.oxm.annotations.XmlPath;
@XmlAccessorType(XmlAccessType.FIELD)
public class Customer {
@XmlPath("personal-info/first-name/text()")
private String firstName;
@XmlPath("personal-info/last-name/text()")
@XmlElement(required=true)
private String lastName;
}
jaxb.properties
要将 MOXy 用作您的 JAXB 提供程序,您需要在与域模型相同的包中包含一个名为 jaxb.properties
的文件,其中包含以下条目:
javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory
XML 架构
下面是领域模型对应的XML schema。注意 last-name
元素没有 minOccurs="0"
。
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:complexType name="customer">
<xsd:sequence>
<xsd:element name="personal-info" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="first-name" type="xsd:string" minOccurs="0"/>
<xsd:element name="last-name" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
演示
以下演示代码可用于生成 XML 架构。
package forum13854920;
import java.io.IOException;
import javax.xml.bind.*;
import javax.xml.transform.Result;
import javax.xml.transform.stream.StreamResult;
public class Demo {
public static void main(String[] args) throws Exception {
JAXBContext jc = JAXBContext.newInstance(Customer.class);
jc.generateSchema(new SchemaOutputResolver() {
@Override
public Result createOutput(String namespaceURI, String suggestedFileName) throws IOException {
StreamResult result = new StreamResult(System.out);
result.setSystemId(suggestedFileName);
return result;
}
});
}
}
当前 EclipseLink JAXB (MOXy)对于路径的其他段,在 @XmlElement
注释上没有等效的 required
属性。如果您对此行为感兴趣,请使用以下链接输入增强请求:
关于jaxb - 相当于 EclipseLink MOXy 中 @XmlPath 中的 @XmlElement.required,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13854920/
我有一个非常简单的类,有两个字段,String sourceAddress 和 int port。 我希望它们映射到源/地址和源/端口节点而不是 jaxb 默认的 sourceAddress 和 so
有了这个 Jaxb Xml 定义,我尝试通过添加 @XmlPath(".") 来删除 Map Elements Wrapper但在解码期间会导致异常 @XmlRootElement public ab
我有这个 XML: 123 BT123 1 Test User 1234 My Place
之前发布过EclipseLink MOXy @XmlPath support for axes/parent 我仍在使用@XmlPath 注释,在我看来,不支持谓词不等式? @XmlPath("nod
我一直在努力使下面的程序工作,但我的代码或 @XmlPath 注释似乎存在一些严重的缺陷。我正在尝试解析的 XML: 1 Billing Str
使用org.eclipse.persistence.oxm.annotations.XmlPath可以read相同的元素放入不同的类字段中。有 jackson 的模拟注释吗? 最佳答案 模拟是 Ela
我最近开始使用rest-assured来测试一些xmls。这是一个例子:
给定以下 XML 结构: x ... 1 2 3 我如何使用 MOXy 将其解码为一个基本扁平的 POJO?我尝试了
我正在编写一个脚本来使用 JAXB 和 MOXy 解析 KML 文件,但我很难让 @XmlPath 使用提供的命名空间。 如果我的 KML 如下所示:- Test
MOXy 是否支持如下所示的 XPath 表达式? field[XMLtag!='identifier'] 基本上我有这样的 XML 12345 identifier
是否可以接受以下任何 XPath 表达式?使用 eclipselink 2.3.1 版 @XmlPath("../header/@type") @XmlPath("/root/header/@type
我正在使用 gopkg.in/xmlpath.v2 解析 xml 文档,我发现了一个麻烦......我可以毫无问题地从单个节点获取信息,或者获取迭代器并循环遍历其项目以获取其信息。但是,我被阻止的情况
本文整理了Java中org.n52.security.common.xml.XMLPath.all()方法的一些代码示例,展示了XMLPath.all()的具体用法。这些代码示例主要来源于Github
逻辑运算符在 EclipseLink MOXy 的 XmlPath 注释中工作吗?我尝试过但无法使其工作(没有抛出异常,并且没有任何内容绑定(bind)到“元素”)。 例如,我想在绑定(bind)文件
我不明白为什么我在下面所做的 XmlPath 映射显示为空。我的语法有问题吗?我在其他地方使用类似的语法没有问题。 感谢您提供任何线索..约翰
我有一个 XML,需要映射到 Java 对象,即 DTO。我的 XML 有一些包装器元素,它们在我的 DTO 中没有任何 java 对象。我的 XML 看起来像这样
我有一个深层的 XML 结构,其中有很多无意义的包装器,我正在映射到一个 Java 类。使用@XmlPath 映射简单数据类型就像在公园里散步一样简单,但是当涉及到实际需要自己的类的类型时,我不太确定
我正在查看文档示例 here ,但它只是遍历 XML 树,而不是 HTML。因此,我仍然有些困惑。 例如,如果我想通过名称在 head 标签中找到特定的 meta 标签,似乎我不能?相反,我需要按照它
本文整理了Java中org.eclipse.persistence.oxm.annotations.XmlPath.value()方法的一些代码示例,展示了XmlPath.value()的具体用法。这
本文整理了Java中org.eclipse.persistence.oxm.annotations.XmlPath.()方法的一些代码示例,展示了XmlPath.()的具体用法。这些代码示例主要来源于
我是一名优秀的程序员,十分优秀!