XJB模式注释无效字符& (符号)

时间:2017-05-02 17:15:02

标签: java regex

我在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;在实体参考中。

如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

当您在属性值中使用&符号时,您需要使用XML实体作为&符号:

regexp="[A-Za-z0-9&amp;]{1,8}"
                  ^^^^^