Jaxb 相当于EclipseLink MOXy中@XmlPath中的@xmlement.required

Jaxb 相当于EclipseLink MOXy中@XmlPath中的@xmlement.required,jaxb,eclipselink,moxy,Jaxb,Eclipselink,Moxy,如何在2.4.1版本中使用@XmlPath注释实现@xmlement.required标记?您可以使用@xmlement(required=true)和@XmlPath注释来指定叶元素是必需的 客户 下面是一个示例域模型,其中两个字段映射为@XmlPath,其中一个字段上我也使用了@xmlement(required=true) 用于UM13854920的包; 导入javax.xml.bind.annotation.*; 导入org.eclipse.persistence.oxm.annotat

如何在2.4.1版本中使用
@XmlPath
注释实现
@xmlement.required
标记?

您可以使用
@xmlement(required=true)
@XmlPath
注释来指定叶元素是必需的

客户

下面是一个示例域模型,其中两个字段映射为
@XmlPath
,其中一个字段上我也使用了
@xmlement(required=true)

用于UM13854920的包;
导入javax.xml.bind.annotation.*;
导入org.eclipse.persistence.oxm.annotations.XmlPath;
@XmlAccessorType(XmlAccessType.FIELD)
公共类客户{
@XmlPath(“个人信息/名字/文本()”)
私有字符串名;
@XmlPath(“个人信息/姓氏/文本()”)
@XmlElement(必需=true)
私有字符串lastName;
}
jaxb.properties

要使用MOXy作为JAXB提供程序,您需要在与域模型相同的包中包含一个名为
JAXB.properties
的文件,其中包含以下条目:

javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory
XML模式

下面是与域模型对应的XML模式。注意
last name
元素如何没有
minOccurs=“0”


演示

以下演示代码可用于生成XML模式

用于UM13854920的包;
导入java.io.IOException;
导入javax.xml.bind.*;
导入javax.xml.transform.Result;
导入javax.xml.transform.stream.StreamResult;
公开课演示{
公共静态void main(字符串[]args)引发异常{
JAXBContext jc=JAXBContext.newInstance(Customer.class);
jc.generateSchema(新的SchemaOutputResolver(){
@凌驾
公共结果createOutput(字符串namespaceURI、字符串suggestedFileName)引发IOException{
StreamResult结果=新的StreamResult(System.out);
result.setSystemId(建议的文件名);
返回结果;
}
});
}
}

对于路径的其他段,当前在
@xmlement
注释上没有与
required
属性等效的属性。如果您对此行为感兴趣,请使用以下链接输入增强请求: