Java JAXB required=true不';似乎不需要
我们有这个JAXB注释:Java JAXB required=true不';似乎不需要,java,xml,jaxb,Java,Xml,Jaxb,我们有这个JAXB注释: @XmlElement(name = "Strategy", required = true) protected List<Strategy> strategy; @xmlement(name=“Strategy”,required=true) 受保护名单战略; 如果不存在策略元素,则不会引发异常。。为什么会这样?我们不应该得到一个例外吗?JAXB参考实现没有使用这个属性进行验证,它只是为了文档目的 如果需要验证文档,则需要使用SchemaFact
@XmlElement(name = "Strategy", required = true)
protected List<Strategy> strategy;
@xmlement(name=“Strategy”,required=true)
受保护名单战略;
如果不存在
策略元素,则不会引发异常。。为什么会这样?我们不应该得到一个例外吗?JAXB参考实现没有使用这个属性进行验证,它只是为了文档目的
如果需要验证文档,则需要使用SchemaFactory
定义XML模式,并将其注入Marshaller
或Unmarshaller
中,此外,还可以使用beforemashall
和afterUnmarshal
方法验证和中指定的输入
访问这些方法的方案还允许您在方法声明中添加任意的throws
子句。这意味着,在实现这些方法时,您可以安全地使用javax.xml.bind.marshaleexception
和javax.xml.bind.unmarshaleexception
(或者您想要的任何类型的异常
)向验证错误发送信号。请参阅从JAXBContext
加载模式
以用于Marshaller
/解组器
的示例。我不会说它纯粹用于文档化-它还用于模式生成。当您从Java类生成XSD,并且您具有required=true
时,XSD中的元素声明将使用minOccurs=“1”
生成。然后可以使用XSD验证XML。