我在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>
但是,我尝试使用的模式应该只允许使用字母和数字以及&符号(&amp;)。但是,&符号(&amp;)会破坏xjb验证,并出现以下错误:
实体名称必须紧跟&#39;&amp;&#39;在实体参考中。
如何解决这个问题?
答案 0 :(得分:2)
当您在属性值中使用&符号时,您需要使用XML实体作为&符号:
regexp="[A-Za-z0-9&]{1,8}"
^^^^^