我在 xjb 上有以下代码片段:
<jaxb:bindings node="xs:complexType[@name='MyType']/xs:sequence/xs:element[@name='field']">
<annox:annotate target="field">
<annox:annotate annox:class="javax.validation.constraints.Pattern" regexp="[A-Za-z0-9&]{1,8}" groups="javax.validation.groups.Default" message="Invalid pattern" />
</annox:annotate>
</jaxb:bindings>
但是,我尝试使用的模式应该只允许使用字母和数字以及与号 (&)。但是,与号 (&) 破坏了 xjb 验证,并出现以下错误:
实体名称必须紧跟在实体引用中的“&”之后。
如何解决这个问题?
最佳答案
您需要使用 XML 实体作为 & 符号,就像在属性值中使用它一样:
regexp="[A-Za-z0-9&]{1,8}"
^^^^^
关于java - XJB 模式注释无效字符 &(与号),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43743705/